Committed by
Gerrit Code Review
Cherry pick ONOS-4835 fix
Change-Id: I82ecb542dad4430d55af0fc684f8d13d6e45b45e
Showing
4 changed files
with
29 additions
and
18 deletions
| ... | @@ -44,6 +44,7 @@ import javax.ws.rs.core.UriInfo; | ... | @@ -44,6 +44,7 @@ import javax.ws.rs.core.UriInfo; |
| 44 | import java.io.IOException; | 44 | import java.io.IOException; |
| 45 | import java.io.InputStream; | 45 | import java.io.InputStream; |
| 46 | 46 | ||
| 47 | +import org.onlab.util.HexString; | ||
| 47 | import static org.onlab.util.Tools.nullIsNotFound; | 48 | import static org.onlab.util.Tools.nullIsNotFound; |
| 48 | 49 | ||
| 49 | /** | 50 | /** |
| ... | @@ -115,7 +116,12 @@ public class GroupsWebResource extends AbstractWebResource { | ... | @@ -115,7 +116,12 @@ public class GroupsWebResource extends AbstractWebResource { |
| 115 | public Response getGroupByDeviceIdAndAppCookie(@PathParam("deviceId") String deviceId, | 116 | public Response getGroupByDeviceIdAndAppCookie(@PathParam("deviceId") String deviceId, |
| 116 | @PathParam("appCookie") String appCookie) { | 117 | @PathParam("appCookie") String appCookie) { |
| 117 | final DeviceId deviceIdInstance = DeviceId.deviceId(deviceId); | 118 | final DeviceId deviceIdInstance = DeviceId.deviceId(deviceId); |
| 118 | - final GroupKey appCookieInstance = new DefaultGroupKey(appCookie.getBytes()); | 119 | + |
| 120 | + if (!appCookie.startsWith("0x")) { | ||
| 121 | + throw new IllegalArgumentException("APP_COOKIE must be a hex string starts with 0x"); | ||
| 122 | + } | ||
| 123 | + final GroupKey appCookieInstance = new DefaultGroupKey(HexString.fromHexString( | ||
| 124 | + appCookie.split("0x")[1], "")); | ||
| 119 | 125 | ||
| 120 | Group group = nullIsNotFound(groupService.getGroup(deviceIdInstance, appCookieInstance), | 126 | Group group = nullIsNotFound(groupService.getGroup(deviceIdInstance, appCookieInstance), |
| 121 | GROUP_NOT_FOUND); | 127 | GROUP_NOT_FOUND); |
| ... | @@ -179,7 +185,12 @@ public class GroupsWebResource extends AbstractWebResource { | ... | @@ -179,7 +185,12 @@ public class GroupsWebResource extends AbstractWebResource { |
| 179 | public Response deleteGroupByDeviceIdAndAppCookie(@PathParam("deviceId") String deviceId, | 185 | public Response deleteGroupByDeviceIdAndAppCookie(@PathParam("deviceId") String deviceId, |
| 180 | @PathParam("appCookie") String appCookie) { | 186 | @PathParam("appCookie") String appCookie) { |
| 181 | DeviceId deviceIdInstance = DeviceId.deviceId(deviceId); | 187 | DeviceId deviceIdInstance = DeviceId.deviceId(deviceId); |
| 182 | - GroupKey appCookieInstance = new DefaultGroupKey(appCookie.getBytes()); | 188 | + |
| 189 | + if (!appCookie.startsWith("0x")) { | ||
| 190 | + throw new IllegalArgumentException("APP_COOKIE must be a hex string starts with 0x"); | ||
| 191 | + } | ||
| 192 | + GroupKey appCookieInstance = new DefaultGroupKey(HexString.fromHexString( | ||
| 193 | + appCookie.split("0x")[1], "")); | ||
| 183 | 194 | ||
| 184 | groupService.removeGroup(deviceIdInstance, appCookieInstance, null); | 195 | groupService.removeGroup(deviceIdInstance, appCookieInstance, null); |
| 185 | return Response.noContent().build(); | 196 | return Response.noContent().build(); | ... | ... |
| ... | @@ -67,6 +67,11 @@ | ... | @@ -67,6 +67,11 @@ |
| 67 | "description": "types of the group", | 67 | "description": "types of the group", |
| 68 | "example": "ALL" | 68 | "example": "ALL" |
| 69 | }, | 69 | }, |
| 70 | + "deviceId": { | ||
| 71 | + "type": "string", | ||
| 72 | + "description": "device identifier", | ||
| 73 | + "example": "of:0000000000000003" | ||
| 74 | + }, | ||
| 70 | "appId": { | 75 | "appId": { |
| 71 | "type": "string", | 76 | "type": "string", |
| 72 | "description": "application identifier", | 77 | "description": "application identifier", |
| ... | @@ -154,4 +159,4 @@ | ... | @@ -154,4 +159,4 @@ |
| 154 | } | 159 | } |
| 155 | } | 160 | } |
| 156 | } | 161 | } |
| 157 | -} | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 162 | +} | ... | ... |
| ... | @@ -3,7 +3,6 @@ | ... | @@ -3,7 +3,6 @@ |
| 3 | "title": "group", | 3 | "title": "group", |
| 4 | "required": [ | 4 | "required": [ |
| 5 | "type", | 5 | "type", |
| 6 | - "deviceId", | ||
| 7 | "appCookie", | 6 | "appCookie", |
| 8 | "groupId", | 7 | "groupId", |
| 9 | "buckets" | 8 | "buckets" |
| ... | @@ -13,10 +12,6 @@ | ... | @@ -13,10 +12,6 @@ |
| 13 | "type": "string", | 12 | "type": "string", |
| 14 | "example": "ALL" | 13 | "example": "ALL" |
| 15 | }, | 14 | }, |
| 16 | - "deviceId": { | ||
| 17 | - "type": "string", | ||
| 18 | - "example": "of:0000000000000001" | ||
| 19 | - }, | ||
| 20 | "appCookie": { | 15 | "appCookie": { |
| 21 | "type": "string", | 16 | "type": "string", |
| 22 | "description": "application cookie. Arbitrary length byte array represented in hex string", | 17 | "description": "application cookie. Arbitrary length byte array represented in hex string", |
| ... | @@ -82,4 +77,4 @@ | ... | @@ -82,4 +77,4 @@ |
| 82 | } | 77 | } |
| 83 | } | 78 | } |
| 84 | } | 79 | } |
| 85 | -} | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 80 | +} | ... | ... |
| ... | @@ -95,14 +95,14 @@ public class GroupsResourceTest extends ResourceTest { | ... | @@ -95,14 +95,14 @@ public class GroupsResourceTest extends ResourceTest { |
| 95 | final Device device2 = new DefaultDevice(null, deviceId2, Device.Type.OTHER, | 95 | final Device device2 = new DefaultDevice(null, deviceId2, Device.Type.OTHER, |
| 96 | "", "", "", "", null); | 96 | "", "", "", "", null); |
| 97 | 97 | ||
| 98 | - final MockGroup group1 = new MockGroup(deviceId1, 1, "111", 1); | 98 | + final MockGroup group1 = new MockGroup(deviceId1, 1, "0x111", 1); |
| 99 | - final MockGroup group2 = new MockGroup(deviceId1, 2, "222", 2); | 99 | + final MockGroup group2 = new MockGroup(deviceId1, 2, "0x222", 2); |
| 100 | 100 | ||
| 101 | - final MockGroup group3 = new MockGroup(deviceId2, 3, "333", 3); | 101 | + final MockGroup group3 = new MockGroup(deviceId2, 3, "0x333", 3); |
| 102 | - final MockGroup group4 = new MockGroup(deviceId2, 4, "444", 4); | 102 | + final MockGroup group4 = new MockGroup(deviceId2, 4, "0x444", 4); |
| 103 | 103 | ||
| 104 | - final MockGroup group5 = new MockGroup(deviceId3, 5, "555", 5); | 104 | + final MockGroup group5 = new MockGroup(deviceId3, 5, "0x555", 5); |
| 105 | - final MockGroup group6 = new MockGroup(deviceId3, 6, "666", 6); | 105 | + final MockGroup group6 = new MockGroup(deviceId3, 6, "0x666", 6); |
| 106 | 106 | ||
| 107 | /** | 107 | /** |
| 108 | * Mock class for a group. | 108 | * Mock class for a group. |
| ... | @@ -462,7 +462,7 @@ public class GroupsResourceTest extends ResourceTest { | ... | @@ -462,7 +462,7 @@ public class GroupsResourceTest extends ResourceTest { |
| 462 | .andReturn(group5).anyTimes(); | 462 | .andReturn(group5).anyTimes(); |
| 463 | replay(mockGroupService); | 463 | replay(mockGroupService); |
| 464 | final WebTarget wt = target(); | 464 | final WebTarget wt = target(); |
| 465 | - final String response = wt.path("groups/" + deviceId3 + "/" + "111") | 465 | + final String response = wt.path("groups/" + deviceId3 + "/" + "0x111") |
| 466 | .request().get(String.class); | 466 | .request().get(String.class); |
| 467 | final JsonObject result = Json.parse(response).asObject(); | 467 | final JsonObject result = Json.parse(response).asObject(); |
| 468 | assertThat(result, notNullValue()); | 468 | assertThat(result, notNullValue()); |
| ... | @@ -484,7 +484,7 @@ public class GroupsResourceTest extends ResourceTest { | ... | @@ -484,7 +484,7 @@ public class GroupsResourceTest extends ResourceTest { |
| 484 | .andReturn(null).anyTimes(); | 484 | .andReturn(null).anyTimes(); |
| 485 | replay(mockGroupService); | 485 | replay(mockGroupService); |
| 486 | final WebTarget wt = target(); | 486 | final WebTarget wt = target(); |
| 487 | - final Response response = wt.path("groups/" + deviceId3 + "/" + "222").request().get(); | 487 | + final Response response = wt.path("groups/" + deviceId3 + "/" + "0x222").request().get(); |
| 488 | 488 | ||
| 489 | assertEquals(404, response.getStatus()); | 489 | assertEquals(404, response.getStatus()); |
| 490 | } | 490 | } |
| ... | @@ -522,7 +522,7 @@ public class GroupsResourceTest extends ResourceTest { | ... | @@ -522,7 +522,7 @@ public class GroupsResourceTest extends ResourceTest { |
| 522 | 522 | ||
| 523 | WebTarget wt = target(); | 523 | WebTarget wt = target(); |
| 524 | 524 | ||
| 525 | - String location = "/groups/1/111"; | 525 | + String location = "/groups/1/0x111"; |
| 526 | 526 | ||
| 527 | Response deleteResponse = wt.path(location) | 527 | Response deleteResponse = wt.path(location) |
| 528 | .request(MediaType.APPLICATION_JSON_TYPE) | 528 | .request(MediaType.APPLICATION_JSON_TYPE) | ... | ... |
-
Please register or login to post a comment