ONOS-4835 fix
Change-Id: Ic384b39e6cfd111b38c72ade01677831831ec3c0
Showing
4 changed files
with
28 additions
and
17 deletions
... | @@ -43,6 +43,7 @@ import java.io.InputStream; | ... | @@ -43,6 +43,7 @@ import java.io.InputStream; |
43 | import java.net.URI; | 43 | import java.net.URI; |
44 | import java.net.URISyntaxException; | 44 | import java.net.URISyntaxException; |
45 | 45 | ||
46 | +import org.onlab.util.HexString; | ||
46 | import static org.onlab.util.Tools.nullIsNotFound; | 47 | import static org.onlab.util.Tools.nullIsNotFound; |
47 | 48 | ||
48 | /** | 49 | /** |
... | @@ -110,7 +111,12 @@ public class GroupsWebResource extends AbstractWebResource { | ... | @@ -110,7 +111,12 @@ public class GroupsWebResource extends AbstractWebResource { |
110 | public Response getGroupByDeviceIdAndAppCookie(@PathParam("deviceId") String deviceId, | 111 | public Response getGroupByDeviceIdAndAppCookie(@PathParam("deviceId") String deviceId, |
111 | @PathParam("appCookie") String appCookie) { | 112 | @PathParam("appCookie") String appCookie) { |
112 | final DeviceId deviceIdInstance = DeviceId.deviceId(deviceId); | 113 | final DeviceId deviceIdInstance = DeviceId.deviceId(deviceId); |
113 | - final GroupKey appCookieInstance = new DefaultGroupKey(appCookie.getBytes()); | 114 | + |
115 | + if (!appCookie.startsWith("0x")) { | ||
116 | + throw new IllegalArgumentException("APP_COOKIE must be a hex string starts with 0x"); | ||
117 | + } | ||
118 | + final GroupKey appCookieInstance = new DefaultGroupKey(HexString.fromHexString( | ||
119 | + appCookie.split("0x")[1], "")); | ||
114 | 120 | ||
115 | Group group = nullIsNotFound(groupService.getGroup(deviceIdInstance, appCookieInstance), | 121 | Group group = nullIsNotFound(groupService.getGroup(deviceIdInstance, appCookieInstance), |
116 | GROUP_NOT_FOUND); | 122 | GROUP_NOT_FOUND); |
... | @@ -172,7 +178,12 @@ public class GroupsWebResource extends AbstractWebResource { | ... | @@ -172,7 +178,12 @@ public class GroupsWebResource extends AbstractWebResource { |
172 | public void deleteGroupByDeviceIdAndAppCookie(@PathParam("deviceId") String deviceId, | 178 | public void deleteGroupByDeviceIdAndAppCookie(@PathParam("deviceId") String deviceId, |
173 | @PathParam("appCookie") String appCookie) { | 179 | @PathParam("appCookie") String appCookie) { |
174 | DeviceId deviceIdInstance = DeviceId.deviceId(deviceId); | 180 | DeviceId deviceIdInstance = DeviceId.deviceId(deviceId); |
175 | - GroupKey appCookieInstance = new DefaultGroupKey(appCookie.getBytes()); | 181 | + |
182 | + if (!appCookie.startsWith("0x")) { | ||
183 | + throw new IllegalArgumentException("APP_COOKIE must be a hex string starts with 0x"); | ||
184 | + } | ||
185 | + GroupKey appCookieInstance = new DefaultGroupKey(HexString.fromHexString( | ||
186 | + appCookie.split("0x")[1], "")); | ||
176 | 187 | ||
177 | groupService.removeGroup(deviceIdInstance, appCookieInstance, null); | 188 | groupService.removeGroup(deviceIdInstance, appCookieInstance, null); |
178 | } | 189 | } | ... | ... |
... | @@ -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", | ... | ... |
... | @@ -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 | +} | ... | ... |
... | @@ -94,14 +94,14 @@ public class GroupsResourceTest extends ResourceTest { | ... | @@ -94,14 +94,14 @@ public class GroupsResourceTest extends ResourceTest { |
94 | final Device device2 = new DefaultDevice(null, deviceId2, Device.Type.OTHER, | 94 | final Device device2 = new DefaultDevice(null, deviceId2, Device.Type.OTHER, |
95 | "", "", "", "", null); | 95 | "", "", "", "", null); |
96 | 96 | ||
97 | - final MockGroup group1 = new MockGroup(deviceId1, 1, "111", 1); | 97 | + final MockGroup group1 = new MockGroup(deviceId1, 1, "0x111", 1); |
98 | - final MockGroup group2 = new MockGroup(deviceId1, 2, "222", 2); | 98 | + final MockGroup group2 = new MockGroup(deviceId1, 2, "0x222", 2); |
99 | 99 | ||
100 | - final MockGroup group3 = new MockGroup(deviceId2, 3, "333", 3); | 100 | + final MockGroup group3 = new MockGroup(deviceId2, 3, "0x333", 3); |
101 | - final MockGroup group4 = new MockGroup(deviceId2, 4, "444", 4); | 101 | + final MockGroup group4 = new MockGroup(deviceId2, 4, "0x444", 4); |
102 | 102 | ||
103 | - final MockGroup group5 = new MockGroup(deviceId3, 5, "555", 5); | 103 | + final MockGroup group5 = new MockGroup(deviceId3, 5, "0x555", 5); |
104 | - final MockGroup group6 = new MockGroup(deviceId3, 6, "666", 6); | 104 | + final MockGroup group6 = new MockGroup(deviceId3, 6, "0x666", 6); |
105 | 105 | ||
106 | public GroupsResourceTest() { | 106 | public GroupsResourceTest() { |
107 | super(CoreWebApplication.class); | 107 | super(CoreWebApplication.class); |
... | @@ -460,7 +460,7 @@ public class GroupsResourceTest extends ResourceTest { | ... | @@ -460,7 +460,7 @@ public class GroupsResourceTest extends ResourceTest { |
460 | .andReturn(group5).anyTimes(); | 460 | .andReturn(group5).anyTimes(); |
461 | replay(mockGroupService); | 461 | replay(mockGroupService); |
462 | final WebResource rs = resource(); | 462 | final WebResource rs = resource(); |
463 | - final String response = rs.path("groups/" + deviceId3 + "/" + "111").get(String.class); | 463 | + final String response = rs.path("groups/" + deviceId3 + "/" + "0x111").get(String.class); |
464 | final JsonObject result = Json.parse(response).asObject(); | 464 | final JsonObject result = Json.parse(response).asObject(); |
465 | assertThat(result, notNullValue()); | 465 | assertThat(result, notNullValue()); |
466 | 466 | ||
... | @@ -481,7 +481,7 @@ public class GroupsResourceTest extends ResourceTest { | ... | @@ -481,7 +481,7 @@ public class GroupsResourceTest extends ResourceTest { |
481 | .andReturn(null).anyTimes(); | 481 | .andReturn(null).anyTimes(); |
482 | replay(mockGroupService); | 482 | replay(mockGroupService); |
483 | final WebResource rs = resource(); | 483 | final WebResource rs = resource(); |
484 | - final ClientResponse response = rs.path("groups/" + deviceId3 + "/" + "222").get(ClientResponse.class); | 484 | + final ClientResponse response = rs.path("groups/" + deviceId3 + "/" + "0x222").get(ClientResponse.class); |
485 | 485 | ||
486 | assertEquals(404, response.getStatus()); | 486 | assertEquals(404, response.getStatus()); |
487 | } | 487 | } |
... | @@ -517,7 +517,7 @@ public class GroupsResourceTest extends ResourceTest { | ... | @@ -517,7 +517,7 @@ public class GroupsResourceTest extends ResourceTest { |
517 | 517 | ||
518 | WebResource rs = resource(); | 518 | WebResource rs = resource(); |
519 | 519 | ||
520 | - String location = "/groups/1/111"; | 520 | + String location = "/groups/1/0x111"; |
521 | 521 | ||
522 | ClientResponse deleteResponse = rs.path(location) | 522 | ClientResponse deleteResponse = rs.path(location) |
523 | .type(MediaType.APPLICATION_JSON_TYPE) | 523 | .type(MediaType.APPLICATION_JSON_TYPE) | ... | ... |
-
Please register or login to post a comment