Committed by
Gerrit Code Review
ONOS-4077: REST API's for virtual networks, devices, ports, links: add missing o…
…nos.rsModel statements + fix example field in JSON files Change-Id: I1ae2300143a0a56e5413f8837cea3016d964cb6c
Showing
12 changed files
with
256 additions
and
28 deletions
... | @@ -43,8 +43,8 @@ public class VirtualDeviceCodec extends JsonCodec<VirtualDevice> { | ... | @@ -43,8 +43,8 @@ public class VirtualDeviceCodec extends JsonCodec<VirtualDevice> { |
43 | checkNotNull(vDev, NULL_OBJECT_MSG); | 43 | checkNotNull(vDev, NULL_OBJECT_MSG); |
44 | 44 | ||
45 | ObjectNode result = context.mapper().createObjectNode() | 45 | ObjectNode result = context.mapper().createObjectNode() |
46 | - .put(ID, vDev.id().toString()) | 46 | + .put(NETWORK_ID, vDev.networkId().toString()) |
47 | - .put(NETWORK_ID, vDev.networkId().toString()); | 47 | + .put(ID, vDev.id().toString()); |
48 | 48 | ||
49 | return result; | 49 | return result; |
50 | } | 50 | } |
... | @@ -60,6 +60,13 @@ public class VirtualDeviceCodec extends JsonCodec<VirtualDevice> { | ... | @@ -60,6 +60,13 @@ public class VirtualDeviceCodec extends JsonCodec<VirtualDevice> { |
60 | return new DefaultVirtualDevice(nId, dId); | 60 | return new DefaultVirtualDevice(nId, dId); |
61 | } | 61 | } |
62 | 62 | ||
63 | + /** | ||
64 | + * Extract member from JSON ObjectNode. | ||
65 | + * | ||
66 | + * @param key key for which value is needed | ||
67 | + * @param json JSON ObjectNode | ||
68 | + * @return member value | ||
69 | + */ | ||
63 | private String extractMember(String key, ObjectNode json) { | 70 | private String extractMember(String key, ObjectNode json) { |
64 | return nullIsIllegal(json.get(key), key + MISSING_MEMBER_MSG).asText(); | 71 | return nullIsIllegal(json.get(key), key + MISSING_MEMBER_MSG).asText(); |
65 | } | 72 | } | ... | ... |
... | @@ -42,9 +42,11 @@ public class VirtualLinkCodec extends JsonCodec<VirtualLink> { | ... | @@ -42,9 +42,11 @@ public class VirtualLinkCodec extends JsonCodec<VirtualLink> { |
42 | public ObjectNode encode(VirtualLink vLink, CodecContext context) { | 42 | public ObjectNode encode(VirtualLink vLink, CodecContext context) { |
43 | checkNotNull(vLink, NULL_OBJECT_MSG); | 43 | checkNotNull(vLink, NULL_OBJECT_MSG); |
44 | 44 | ||
45 | + ObjectNode result = context.mapper().createObjectNode() | ||
46 | + .put(NETWORK_ID, vLink.networkId().toString()); | ||
45 | JsonCodec<Link> codec = context.codec(Link.class); | 47 | JsonCodec<Link> codec = context.codec(Link.class); |
46 | - ObjectNode result = codec.encode(vLink, context); | 48 | + ObjectNode linkResult = codec.encode(vLink, context); |
47 | - result.put(NETWORK_ID, vLink.networkId().toString()); | 49 | + result.setAll(linkResult); |
48 | return result; | 50 | return result; |
49 | } | 51 | } |
50 | 52 | ... | ... |
... | @@ -75,6 +75,7 @@ public class VirtualNetworkWebResource extends AbstractWebResource { | ... | @@ -75,6 +75,7 @@ public class VirtualNetworkWebResource extends AbstractWebResource { |
75 | * Returns all virtual networks. | 75 | * Returns all virtual networks. |
76 | * | 76 | * |
77 | * @return 200 OK | 77 | * @return 200 OK |
78 | + * @onos.rsModel VirtualNetworks | ||
78 | */ | 79 | */ |
79 | @GET | 80 | @GET |
80 | @Produces(MediaType.APPLICATION_JSON) | 81 | @Produces(MediaType.APPLICATION_JSON) |
... | @@ -92,6 +93,7 @@ public class VirtualNetworkWebResource extends AbstractWebResource { | ... | @@ -92,6 +93,7 @@ public class VirtualNetworkWebResource extends AbstractWebResource { |
92 | * | 93 | * |
93 | * @param tenantId tenant identifier | 94 | * @param tenantId tenant identifier |
94 | * @return 200 OK, 404 not found | 95 | * @return 200 OK, 404 not found |
96 | + * @onos.rsModel VirtualNetworks | ||
95 | */ | 97 | */ |
96 | @GET | 98 | @GET |
97 | @Produces(MediaType.APPLICATION_JSON) | 99 | @Produces(MediaType.APPLICATION_JSON) |
... | @@ -106,7 +108,7 @@ public class VirtualNetworkWebResource extends AbstractWebResource { | ... | @@ -106,7 +108,7 @@ public class VirtualNetworkWebResource extends AbstractWebResource { |
106 | /** | 108 | /** |
107 | * Creates a virtual network from the JSON input stream. | 109 | * Creates a virtual network from the JSON input stream. |
108 | * | 110 | * |
109 | - * @param stream TenantId JSON stream | 111 | + * @param stream tenant identifier JSON stream |
110 | * @return status of the request - CREATED if the JSON is correct, | 112 | * @return status of the request - CREATED if the JSON is correct, |
111 | * BAD_REQUEST if the JSON is invalid | 113 | * BAD_REQUEST if the JSON is invalid |
112 | * @onos.rsModel TenantId | 114 | * @onos.rsModel TenantId |
... | @@ -150,6 +152,7 @@ public class VirtualNetworkWebResource extends AbstractWebResource { | ... | @@ -150,6 +152,7 @@ public class VirtualNetworkWebResource extends AbstractWebResource { |
150 | * | 152 | * |
151 | * @param networkId network identifier | 153 | * @param networkId network identifier |
152 | * @return 200 OK | 154 | * @return 200 OK |
155 | + * @onos.rsModel VirtualDevices | ||
153 | */ | 156 | */ |
154 | @GET | 157 | @GET |
155 | @Produces(MediaType.APPLICATION_JSON) | 158 | @Produces(MediaType.APPLICATION_JSON) |
... | @@ -164,7 +167,7 @@ public class VirtualNetworkWebResource extends AbstractWebResource { | ... | @@ -164,7 +167,7 @@ public class VirtualNetworkWebResource extends AbstractWebResource { |
164 | * Creates a virtual device from the JSON input stream. | 167 | * Creates a virtual device from the JSON input stream. |
165 | * | 168 | * |
166 | * @param networkId network identifier | 169 | * @param networkId network identifier |
167 | - * @param stream Virtual device JSON stream | 170 | + * @param stream virtual device JSON stream |
168 | * @return status of the request - CREATED if the JSON is correct, | 171 | * @return status of the request - CREATED if the JSON is correct, |
169 | * BAD_REQUEST if the JSON is invalid | 172 | * BAD_REQUEST if the JSON is invalid |
170 | * @onos.rsModel VirtualDevice | 173 | * @onos.rsModel VirtualDevice |
... | @@ -220,6 +223,7 @@ public class VirtualNetworkWebResource extends AbstractWebResource { | ... | @@ -220,6 +223,7 @@ public class VirtualNetworkWebResource extends AbstractWebResource { |
220 | * @param networkId network identifier | 223 | * @param networkId network identifier |
221 | * @param deviceId virtual device identifier | 224 | * @param deviceId virtual device identifier |
222 | * @return 200 OK | 225 | * @return 200 OK |
226 | + * @onos.rsModel VirtualPorts | ||
223 | */ | 227 | */ |
224 | @GET | 228 | @GET |
225 | @Produces(MediaType.APPLICATION_JSON) | 229 | @Produces(MediaType.APPLICATION_JSON) |
... | @@ -236,7 +240,7 @@ public class VirtualNetworkWebResource extends AbstractWebResource { | ... | @@ -236,7 +240,7 @@ public class VirtualNetworkWebResource extends AbstractWebResource { |
236 | * | 240 | * |
237 | * @param networkId network identifier | 241 | * @param networkId network identifier |
238 | * @param virtDeviceId virtual device identifier | 242 | * @param virtDeviceId virtual device identifier |
239 | - * @param stream Virtual device JSON stream | 243 | + * @param stream virtual port JSON stream |
240 | * @return status of the request - CREATED if the JSON is correct, | 244 | * @return status of the request - CREATED if the JSON is correct, |
241 | * BAD_REQUEST if the JSON is invalid | 245 | * BAD_REQUEST if the JSON is invalid |
242 | * @onos.rsModel VirtualPort | 246 | * @onos.rsModel VirtualPort |
... | @@ -309,6 +313,7 @@ public class VirtualNetworkWebResource extends AbstractWebResource { | ... | @@ -309,6 +313,7 @@ public class VirtualNetworkWebResource extends AbstractWebResource { |
309 | * | 313 | * |
310 | * @param networkId network identifier | 314 | * @param networkId network identifier |
311 | * @return 200 OK | 315 | * @return 200 OK |
316 | + * @onos.rsModel VirtualLinks | ||
312 | */ | 317 | */ |
313 | @GET | 318 | @GET |
314 | @Produces(MediaType.APPLICATION_JSON) | 319 | @Produces(MediaType.APPLICATION_JSON) |
... | @@ -323,7 +328,7 @@ public class VirtualNetworkWebResource extends AbstractWebResource { | ... | @@ -323,7 +328,7 @@ public class VirtualNetworkWebResource extends AbstractWebResource { |
323 | * Creates a virtual network link from the JSON input stream. | 328 | * Creates a virtual network link from the JSON input stream. |
324 | * | 329 | * |
325 | * @param networkId network identifier | 330 | * @param networkId network identifier |
326 | - * @param stream Virtual device JSON stream | 331 | + * @param stream virtual link JSON stream |
327 | * @return status of the request - CREATED if the JSON is correct, | 332 | * @return status of the request - CREATED if the JSON is correct, |
328 | * BAD_REQUEST if the JSON is invalid | 333 | * BAD_REQUEST if the JSON is invalid |
329 | * @onos.rsModel VirtualLink | 334 | * @onos.rsModel VirtualLink |
... | @@ -358,7 +363,7 @@ public class VirtualNetworkWebResource extends AbstractWebResource { | ... | @@ -358,7 +363,7 @@ public class VirtualNetworkWebResource extends AbstractWebResource { |
358 | * Removes the virtual network link from the JSON input stream. | 363 | * Removes the virtual network link from the JSON input stream. |
359 | * | 364 | * |
360 | * @param networkId network identifier | 365 | * @param networkId network identifier |
361 | - * @param stream deviceIds JSON stream | 366 | + * @param stream virtual link JSON stream |
362 | * @return 200 OK, 404 not found | 367 | * @return 200 OK, 404 not found |
363 | * @onos.rsModel VirtualLink | 368 | * @onos.rsModel VirtualLink |
364 | */ | 369 | */ | ... | ... |
... | @@ -7,12 +7,14 @@ | ... | @@ -7,12 +7,14 @@ |
7 | ], | 7 | ], |
8 | "properties": { | 8 | "properties": { |
9 | "networkId": { | 9 | "networkId": { |
10 | - "type": "String", | 10 | + "type": "int64", |
11 | - "example": "Network identifier" | 11 | + "description": "Network identifier", |
12 | + "example": 3 | ||
12 | }, | 13 | }, |
13 | "deviceId": { | 14 | "deviceId": { |
14 | "type": "String", | 15 | "type": "String", |
15 | - "example": "Device identifier" | 16 | + "description": "Device identifier", |
17 | + "example": "of:0000000000000042" | ||
16 | } | 18 | } |
17 | } | 19 | } |
18 | } | 20 | } | ... | ... |
1 | +{ | ||
2 | + "type": "object", | ||
3 | + "title": "VirtualDevices", | ||
4 | + "required": [ | ||
5 | + "devices" | ||
6 | + ], | ||
7 | + "properties": { | ||
8 | + "devices": { | ||
9 | + "type": "array", | ||
10 | + "xml": { | ||
11 | + "name": "devices", | ||
12 | + "wrapped": true | ||
13 | + }, | ||
14 | + "items": { | ||
15 | + "type": "object", | ||
16 | + "title": "vdev", | ||
17 | + "required": [ | ||
18 | + "networkId", | ||
19 | + "deviceId" | ||
20 | + ], | ||
21 | + "properties": { | ||
22 | + "networkId": { | ||
23 | + "type": "int64", | ||
24 | + "description": "Network identifier", | ||
25 | + "example": 3 | ||
26 | + }, | ||
27 | + "deviceId": { | ||
28 | + "type": "String", | ||
29 | + "description": "Device identifier", | ||
30 | + "example": "of:0000000000000042" | ||
31 | + } | ||
32 | + } | ||
33 | + } | ||
34 | + } | ||
35 | + } | ||
36 | +} |
... | @@ -10,8 +10,9 @@ | ... | @@ -10,8 +10,9 @@ |
10 | ], | 10 | ], |
11 | "properties": { | 11 | "properties": { |
12 | "networkId": { | 12 | "networkId": { |
13 | - "type": "String", | 13 | + "type": "int64", |
14 | - "example": "Network identifier" | 14 | + "description": "Network identifier", |
15 | + "example": 3 | ||
15 | }, | 16 | }, |
16 | "src": { | 17 | "src": { |
17 | "type": "object", | 18 | "type": "object", |
... | @@ -22,8 +23,8 @@ | ... | @@ -22,8 +23,8 @@ |
22 | ], | 23 | ], |
23 | "properties": { | 24 | "properties": { |
24 | "port": { | 25 | "port": { |
25 | - "type": "string", | 26 | + "type": "int64", |
26 | - "example": "3" | 27 | + "example": 3 |
27 | }, | 28 | }, |
28 | "device": { | 29 | "device": { |
29 | "type": "string", | 30 | "type": "string", |
... | @@ -40,8 +41,8 @@ | ... | @@ -40,8 +41,8 @@ |
40 | ], | 41 | ], |
41 | "properties": { | 42 | "properties": { |
42 | "port": { | 43 | "port": { |
43 | - "type": "string", | 44 | + "type": "int64", |
44 | - "example": "2" | 45 | + "example": 2 |
45 | }, | 46 | }, |
46 | "device": { | 47 | "device": { |
47 | "type": "string", | 48 | "type": "string", | ... | ... |
1 | +{ | ||
2 | + "type": "object", | ||
3 | + "title": "VirtualLinks", | ||
4 | + "required": [ | ||
5 | + "links" | ||
6 | + ], | ||
7 | + "properties": { | ||
8 | + "links": { | ||
9 | + "type": "array", | ||
10 | + "xml": { | ||
11 | + "name": "links", | ||
12 | + "wrapped": true | ||
13 | + }, | ||
14 | + "items": { | ||
15 | + "type": "object", | ||
16 | + "title": "vlink", | ||
17 | + "required": [ | ||
18 | + "networkId", | ||
19 | + "src", | ||
20 | + "dst", | ||
21 | + "type", | ||
22 | + "state" | ||
23 | + ], | ||
24 | + "properties": { | ||
25 | + "networkId": { | ||
26 | + "type": "int64", | ||
27 | + "description": "Network identifier", | ||
28 | + "example": 3 | ||
29 | + }, | ||
30 | + "src": { | ||
31 | + "type": "object", | ||
32 | + "title": "src", | ||
33 | + "required": [ | ||
34 | + "port", | ||
35 | + "device" | ||
36 | + ], | ||
37 | + "properties": { | ||
38 | + "port": { | ||
39 | + "type": "int64", | ||
40 | + "example": 3 | ||
41 | + }, | ||
42 | + "device": { | ||
43 | + "type": "string", | ||
44 | + "example": "of:0000000000000002" | ||
45 | + } | ||
46 | + } | ||
47 | + }, | ||
48 | + "dst": { | ||
49 | + "type": "object", | ||
50 | + "title": "dst", | ||
51 | + "required": [ | ||
52 | + "port", | ||
53 | + "device" | ||
54 | + ], | ||
55 | + "properties": { | ||
56 | + "port": { | ||
57 | + "type": "int64", | ||
58 | + "example": 2 | ||
59 | + }, | ||
60 | + "device": { | ||
61 | + "type": "string", | ||
62 | + "example": "of:0000000000000003" | ||
63 | + } | ||
64 | + } | ||
65 | + }, | ||
66 | + "type": { | ||
67 | + "type": "string", | ||
68 | + "example": "VIRTUAL" | ||
69 | + }, | ||
70 | + "state": { | ||
71 | + "type": "string", | ||
72 | + "example": "ACTIVE" | ||
73 | + } | ||
74 | + } | ||
75 | + } | ||
76 | + } | ||
77 | + } | ||
78 | +} |
1 | +{ | ||
2 | + "type": "object", | ||
3 | + "title": "VirtualNetworks", | ||
4 | + "required": [ | ||
5 | + "vnets" | ||
6 | + ], | ||
7 | + "properties": { | ||
8 | + "vnets": { | ||
9 | + "type": "array", | ||
10 | + "xml": { | ||
11 | + "name": "vnets", | ||
12 | + "wrapped": true | ||
13 | + }, | ||
14 | + "items": { | ||
15 | + "type": "object", | ||
16 | + "title": "vnet", | ||
17 | + "required": [ | ||
18 | + "networkId", | ||
19 | + "tenantId" | ||
20 | + ], | ||
21 | + "properties": { | ||
22 | + "networkId": { | ||
23 | + "type": "int64", | ||
24 | + "description": "Network identifier", | ||
25 | + "example": 3 | ||
26 | + }, | ||
27 | + "tenantId": { | ||
28 | + "type": "String", | ||
29 | + "description": "Tenant identifier", | ||
30 | + "example": "Tenant123" | ||
31 | + } | ||
32 | + } | ||
33 | + } | ||
34 | + } | ||
35 | + } | ||
36 | +} |
... | @@ -10,24 +10,29 @@ | ... | @@ -10,24 +10,29 @@ |
10 | ], | 10 | ], |
11 | "properties": { | 11 | "properties": { |
12 | "networkId": { | 12 | "networkId": { |
13 | - "type": "String", | 13 | + "type": "int64", |
14 | - "example": "Network identifier" | 14 | + "description": "Network identifier", |
15 | + "example": 3 | ||
15 | }, | 16 | }, |
16 | "deviceId": { | 17 | "deviceId": { |
17 | "type": "String", | 18 | "type": "String", |
18 | - "example": "Virtual device identifier" | 19 | + "description": "Virtual device identifier", |
20 | + "example": "of:0000000000000042" | ||
19 | }, | 21 | }, |
20 | "portNum": { | 22 | "portNum": { |
21 | - "type": "String", | 23 | + "type": "int64", |
22 | - "example": "Virtual device port number" | 24 | + "description": "Virtual device port number", |
25 | + "example": 34 | ||
23 | }, | 26 | }, |
24 | "physDeviceId": { | 27 | "physDeviceId": { |
25 | "type": "String", | 28 | "type": "String", |
26 | - "example": "Physical device identifier" | 29 | + "description": "Physical device identifier", |
30 | + "example": "of:0000000000000003" | ||
27 | }, | 31 | }, |
28 | "physPortNum": { | 32 | "physPortNum": { |
29 | - "type": "String", | 33 | + "type": "int64", |
30 | - "example": "Physical device port number" | 34 | + "description": "Physical device port number", |
35 | + "example": 2 | ||
31 | } | 36 | } |
32 | } | 37 | } |
33 | } | 38 | } | ... | ... |
1 | +{ | ||
2 | + "type": "object", | ||
3 | + "title": "VirtualPorts", | ||
4 | + "required": [ | ||
5 | + "ports" | ||
6 | + ], | ||
7 | + "properties": { | ||
8 | + "ports": { | ||
9 | + "type": "array", | ||
10 | + "xml": { | ||
11 | + "name": "ports", | ||
12 | + "wrapped": true | ||
13 | + }, | ||
14 | + "items": { | ||
15 | + "type": "object", | ||
16 | + "title": "vport", | ||
17 | + "required": [ | ||
18 | + "networkId", | ||
19 | + "deviceId", | ||
20 | + "portNum", | ||
21 | + "physDeviceId", | ||
22 | + "physPortNum" | ||
23 | + ], | ||
24 | + "properties": { | ||
25 | + "networkId": { | ||
26 | + "type": "int64", | ||
27 | + "description": "Network identifier", | ||
28 | + "example": 3 | ||
29 | + }, | ||
30 | + "deviceId": { | ||
31 | + "type": "String", | ||
32 | + "description": "Virtual device identifier", | ||
33 | + "example": "of:0000000000000042" | ||
34 | + }, | ||
35 | + "portNum": { | ||
36 | + "type": "int64", | ||
37 | + "description": "Virtual device port number", | ||
38 | + "example": 34 | ||
39 | + }, | ||
40 | + "physDeviceId": { | ||
41 | + "type": "String", | ||
42 | + "description": "Physical device identifier", | ||
43 | + "example": "of:0000000000000003" | ||
44 | + }, | ||
45 | + "physPortNum": { | ||
46 | + "type": "int64", | ||
47 | + "description": "Physical device port number", | ||
48 | + "example": 2 | ||
49 | + } | ||
50 | + } | ||
51 | + } | ||
52 | + } | ||
53 | + } | ||
54 | +} |
-
Please register or login to post a comment