blob: 25915e9862f01f02cc0050fbc2dcfebce4bb0f13 [file] [log] [blame]
Teone7241e262016-04-18 14:39:41 -07001FORMAT: 1A
2
3# XOS
4
5
Matteo Scandolod7d70472016-04-29 09:56:48 -07006# Group Deployments
7
8List of the XOS deployments
9
10## Deployments [/api/core/deployments/{id}/]
11
12### List all deployments [GET]
13
14+ Response 200 (application/json)
15
Matteo Scandolob82a85d2016-05-02 15:29:37 -070016 [
17 {
18 "humanReadableName": "MyDeployment",
19 "id": 1,
20 "created": "2016-04-29T16:19:03.549901Z",
21 "updated": "2016-04-29T16:19:05.624151Z",
22 "enacted": null,
23 "policed": null,
24 "backend_register": "{}",
25 "backend_status": "0 - Provisioning in progress",
26 "deleted": false,
27 "write_protect": false,
28 "lazy_blocked": false,
29 "no_sync": true,
30 "name": "MyDeployment",
31 "accessControl": "allow all",
32 "images": [
33 "1"
34 ],
35 "sites": [
36 "1"
37 ],
38 "flavors": [
39 "1",
40 "2",
41 "3"
42 ],
43 "dashboardviews": [
44 "1"
45 ]
46 }
47 ]
48
Matteo Scandolo28c5cb82016-05-02 15:51:34 -070049### Create a deployment [POST]
50
Matteo Scandoloc41467a2016-05-02 18:15:57 -070051+ Request (application/json)
52
53 {
54 "humanReadableName": "MyDeployment",
55 }
56
Matteo Scandolo28c5cb82016-05-02 15:51:34 -070057+ Response 200 (application/json)
58
59 {
60 "humanReadableName": "MyDeployment",
61 "id": 1,
62 "created": "2016-04-29T16:19:03.549901Z",
63 "updated": "2016-04-29T16:19:05.624151Z",
64 "enacted": null,
65 "policed": null,
66 "backend_register": "{}",
67 "backend_status": "0 - Provisioning in progress",
68 "deleted": false,
69 "write_protect": false,
70 "lazy_blocked": false,
71 "no_sync": true,
72 "name": "MyDeployment",
73 "accessControl": "allow all",
74 "images": [
75 "1"
76 ],
77 "sites": [
78 "1"
79 ],
80 "flavors": [
81 "1",
82 "2",
83 "3"
84 ],
85 "dashboardviews": [
86 "1"
87 ]
88 }
89
Matteo Scandolob82a85d2016-05-02 15:29:37 -070090### View a Deployment Detail [GET]
91
92+ Parameters
93 + id: 1 (number) - ID of the Deployment in the form of an integer
94
95+ Response 200 (application/json)
96
Matteo Scandolod7d70472016-04-29 09:56:48 -070097 {
98 "humanReadableName": "MyDeployment",
99 "id": 1,
Matteo Scandolob82a85d2016-05-02 15:29:37 -0700100 "created": "2016-04-27T21:46:57.354544Z",
101 "updated": "2016-04-27T21:47:05.221720Z",
Matteo Scandolod7d70472016-04-29 09:56:48 -0700102 "enacted": null,
103 "policed": null,
104 "backend_register": "{}",
105 "backend_status": "0 - Provisioning in progress",
106 "deleted": false,
107 "write_protect": false,
108 "lazy_blocked": false,
109 "no_sync": true,
110 "name": "MyDeployment",
111 "accessControl": "allow all",
Matteo Scandolob82a85d2016-05-02 15:29:37 -0700112 "images": [],
Matteo Scandolod7d70472016-04-29 09:56:48 -0700113 "sites": [
114 "1"
115 ],
116 "flavors": [
Matteo Scandolob82a85d2016-05-02 15:29:37 -0700117 "3",
Matteo Scandolod7d70472016-04-29 09:56:48 -0700118 "2",
Matteo Scandolob82a85d2016-05-02 15:29:37 -0700119 "1"
Matteo Scandolod7d70472016-04-29 09:56:48 -0700120 ],
121 "dashboardviews": [
Matteo Scandolob82a85d2016-05-02 15:29:37 -0700122 "3"
Matteo Scandolod7d70472016-04-29 09:56:48 -0700123 ]
124 }
Matteo Scandolob82a85d2016-05-02 15:29:37 -0700125
Matteo Scandolo28c5cb82016-05-02 15:51:34 -0700126### Delete a Deployment [DELETE]
127
128+ Parameters
129 + id: 1 (number) - ID of the Deployment in the form of an integer
130
131+ Response 204
Matteo Scandolod7d70472016-04-29 09:56:48 -0700132
133
134# Group Flavors
135
136List of the XOS flavors
137
138## Flavors [/api/core/flavors/{id}/]
139
140### List all flavors [GET]
141
142+ Response 200 (application/json)
143
144 [
145 {
146 "humanReadableName": "m1.large",
147 "id": 1,
148 "created": "2016-04-29T16:19:01.979548Z",
149 "updated": "2016-04-29T16:19:03.568238Z",
150 "enacted": null,
151 "policed": null,
152 "backend_register": "{}",
153 "backend_status": "0 - Provisioning in progress",
154 "deleted": false,
155 "write_protect": false,
156 "lazy_blocked": false,
157 "no_sync": true,
158 "name": "m1.large",
159 "description": null,
160 "flavor": "m1.large",
161 "order": 0,
162 "default": false,
163 "deployments": [
164 "1"
165 ]
166 }
167 ]
168
Matteo Scandoloc41467a2016-05-02 18:15:57 -0700169### Create a Flavor [POST]
170
171+ Request (application/json)
172
173 {
174 "humanReadableName": "mq.test",
175 }
176
177+ Response 200 (application/json)
178
179 {
180 "humanReadableName": "m1.large",
181 "id": 1,
182 "created": "2016-04-29T16:19:01.979548Z",
183 "updated": "2016-04-29T16:19:03.568238Z",
184 "enacted": null,
185 "policed": null,
186 "backend_register": "{}",
187 "backend_status": "0 - Provisioning in progress",
188 "deleted": false,
189 "write_protect": false,
190 "lazy_blocked": false,
191 "no_sync": true,
192 "name": "m1.large",
193 "description": null,
194 "flavor": "m1.large",
195 "order": 0,
196 "default": false,
197 "deployments": [
198 "1"
199 ]
200 }
201
Matteo Scandolod7d70472016-04-29 09:56:48 -0700202### View a Flavors Detail [GET]
203
204+ Parameters
205 + id: 1 (number) - ID of the Flavors in the form of an integer
206
207+ Response 200 (application/json)
208
209 {
210 "humanReadableName": "m1.large",
211 "id": 1,
212 "created": "2016-04-29T16:19:01.979548Z",
213 "updated": "2016-04-29T16:19:03.568238Z",
214 "enacted": null,
215 "policed": null,
216 "backend_register": "{}",
217 "backend_status": "0 - Provisioning in progress",
218 "deleted": false,
219 "write_protect": false,
220 "lazy_blocked": false,
221 "no_sync": true,
222 "name": "m1.large",
223 "description": null,
224 "flavor": "m1.large",
225 "order": 0,
226 "default": false,
227 "deployments": [
228 "1"
229 ]
230 }
Matteo Scandoloc41467a2016-05-02 18:15:57 -0700231
232### Delete a Flavors Detail [DELETE]
233
234+ Parameters
235 + id: 1 (number) - ID of the Flavors in the form of an integer
236
237+ Response 204
Matteo Scandolod7d70472016-04-29 09:56:48 -0700238
239
240# Group Instances
241
242List of the XOS instances
243
Matteo Scandoloc41467a2016-05-02 18:15:57 -0700244## Instances Collection [/api/core/instances/{?no_hyperlinks}]
245
246 + no_hyperlinks (number, optional) - Wheter to return relation with links or ids
247 + Default: `0`
Matteo Scandolod7d70472016-04-29 09:56:48 -0700248
249### List all Instances [GET]
250
251+ Response 200 (application/json)
252
253 [
254 {
255 "id": 1,
256 "humanReadableName": "uninstantiated-1",
257 "created": "2016-04-26T00:36:22.465259Z",
258 "updated": "2016-04-26T00:36:22.465288Z",
259 "enacted": null,
260 "policed": null,
261 "backend_register": "{}",
262 "backend_status": "0 - Provisioning in progress",
263 "deleted": false,
264 "write_protect": false,
265 "lazy_blocked": false,
266 "no_sync": false,
267 "instance_id": null,
268 "instance_uuid": null,
269 "name": "mysite_vcpe",
270 "instance_name": null,
271 "ip": null,
272 "image": "1",
273 "creator": "1",
274 "slice": "1",
275 "deployment": "1",
276 "node": "1",
277 "numberCores": 0,
278 "flavor": "1",
279 "userData": null,
280 "isolation": "vm",
281 "volumes": "/etc/dnsmasq.d,/etc/ufw",
282 "parent": null,
283 "networks": [
284 "1"
285 ]
286 }
287 ]
Matteo Scandoloc41467a2016-05-02 18:15:57 -0700288
289### Create an Instance [POST]
290
291+ Parameters
292 + no_hyperlinks: 1
293
294+ Request (application/json)
295
296 {
297 "name": "test-instance",
298 "image": 1,
299 "slice": 1,
300 "deployment": 1,
301 "node": 1
302 }
303
304+ Response 200 (application/json)
305
306 {
307 "id": 1,
308 "humanReadableName": "uninstantiated-1",
309 "created": "2016-04-26T00:36:22.465259Z",
310 "updated": "2016-04-26T00:36:22.465288Z",
311 "enacted": null,
312 "policed": null,
313 "backend_register": "{}",
314 "backend_status": "0 - Provisioning in progress",
315 "deleted": false,
316 "write_protect": false,
317 "lazy_blocked": false,
318 "no_sync": false,
319 "instance_id": null,
320 "instance_uuid": null,
321 "name": "test-instance",
322 "instance_name": null,
323 "ip": null,
324 "image": "1",
325 "creator": "1",
326 "slice": "1",
327 "deployment": "1",
328 "node": "1",
329 "numberCores": 0,
330 "flavor": "1",
331 "userData": null,
332 "isolation": "vm",
333 "volumes": "/etc/dnsmasq.d,/etc/ufw",
334 "parent": null,
335 "networks": [
336 "1"
337 ]
338 }
339
340## Instances Detail [/api/core/instances/{id}/]
341
342### Get instance details [GET]
343
344+ Parameters
345 + id: 1 (number) - ID of the Instance in the form of an integer
346
347+ Response 200 (application/json)
348
349 {
350 "id": 1,
351 "humanReadableName": "uninstantiated-1",
352 "created": "2016-04-26T00:36:22.465259Z",
353 "updated": "2016-04-26T00:36:22.465288Z",
354 "enacted": null,
355 "policed": null,
356 "backend_register": "{}",
357 "backend_status": "0 - Provisioning in progress",
358 "deleted": false,
359 "write_protect": false,
360 "lazy_blocked": false,
361 "no_sync": false,
362 "instance_id": null,
363 "instance_uuid": null,
364 "name": "mysite_vcpe",
365 "instance_name": null,
366 "ip": null,
367 "image": "1",
368 "creator": "1",
369 "slice": "1",
370 "deployment": "1",
371 "node": "1",
372 "numberCores": 0,
373 "flavor": "1",
374 "userData": null,
375 "isolation": "vm",
376 "volumes": "/etc/dnsmasq.d,/etc/ufw",
377 "parent": null,
378 "networks": [
379 "1"
380 ]
381 }
382
383### Delete instance [DELETE]
384
385+ Parameters
386 + id: 1 (number) - ID of the Instance in the form of an integer
387
388+ Response 204
Matteo Scandolod7d70472016-04-29 09:56:48 -0700389
390
391# Group Nodes
392
393List of the XOS nodes
394
395## Nodes [/api/core/nodes/{id}/]
396
397### List all nodes [GET]
398
399+ Response 200 (application/json)
400
401 [
402 {
403 "humanReadableName": "node2.opencloud.us",
404 "id": 1,
405 "created": "2016-04-29T16:19:05.661567Z",
406 "updated": "2016-04-29T16:19:05.661454Z",
407 "enacted": null,
408 "policed": null,
409 "backend_register": "{}",
410 "backend_status": "0 - Provisioning in progress",
411 "deleted": false,
412 "write_protect": false,
413 "lazy_blocked": false,
414 "no_sync": true,
415 "name": "node2.opencloud.us",
416 "site_deployment": "1",
417 "site": "1",
418 "nodelabels": []
419 }
420 ]
421
422
423
424# Group Sites
425
426List of the XOS sites
427
428## Sites [/api/core/sites/{id}/]
429
430### List all sites [GET]
431
432+ Response 200 (application/json)
433
434 {
435 "humanReadableName": "MySite",
436 "id": 1,
437 "created": "2016-04-29T16:19:03.587770Z",
438 "updated": "2016-04-29T16:19:05.651933Z",
439 "enacted": null,
440 "policed": null,
441 "backend_register": "{}",
442 "backend_status": "0 - Provisioning in progress",
443 "deleted": false,
444 "write_protect": false,
445 "lazy_blocked": false,
446 "no_sync": false,
447 "name": "MySite",
448 "site_url": "http://opencord.us/",
449 "enabled": true,
450 "hosts_nodes": true,
451 "hosts_users": true,
452 "location": null,
453 "longitude": null,
454 "latitude": null,
455 "login_base": "mysite",
456 "is_public": true,
457 "abbreviated_name": "",
458 "deployments": [
459 "1"
460 ]
461 }
462
463
464# Group Slices
465
466List of the XOS slices
467
468## Slices [/api/core/slices/{id}/]
469
470### List all slices [GET]
471
472+ Response 200 (application/json)
473
474 [
475 {
476 "humanReadableName": "mysite_slice",
477 "id": 1,
478 "created": "2016-04-29T16:23:22.505072Z",
479 "updated": "2016-04-29T16:23:22.504691Z",
480 "enacted": null,
481 "policed": "2016-04-29T16:23:22.781298Z",
482 "backend_register": "{}",
483 "backend_status": "0 - Provisioning in progress",
484 "deleted": false,
485 "write_protect": false,
486 "lazy_blocked": false,
487 "no_sync": false,
488 "name": "mysite_slice",
489 "enabled": true,
490 "omf_friendly": false,
491 "description": "",
492 "slice_url": "",
493 "site": "http://apt118.apt.emulab.net/api/core/sites/1/",
494 "max_instances": 10,
495 "service": null,
496 "network": null,
497 "exposed_ports": null,
498 "serviceClass": "http://apt118.apt.emulab.net/api/core/serviceclasses/1/",
499 "creator": "http://apt118.apt.emulab.net/api/core/users/1/",
500 "default_flavor": null,
501 "default_image": null,
502 "mount_data_sets": "GenBank",
503 "default_isolation": "vm",
504 "networks": [
505 "http://apt118.apt.emulab.net/api/core/networks/1/"
506 ]
507 }
508 ]
509
510
511
512# Group Users
513
514List of the XOS users
515
516## Users [/api/core/users/{id}/]
517
518### List all Users [GET]
519
520+ Response 200 (application/json)
521
522 [
523 {
524 "id": 2,
525 "password": "pbkdf2_sha256$12000$9gn8DmZuIoz2$YPQkx3AOOV7jZNYr2ddrgUCkiuaPpvb8+aJR7RwLZNA=",
526 "last_login": "2016-04-12T18:50:45.880823Z",
527 "email": "johndoe@myhouse.com",
528 "username": "johndoe@myhouse.com",
529 "firstname": "john",
530 "lastname": "doe",
531 "phone": null,
532 "user_url": null,
533 "site": "http://xos.dev:9999/api/core/sites/1/",
534 "public_key": null,
535 "is_active": true,
536 "is_admin": false,
537 "is_staff": true,
538 "is_readonly": false,
539 "is_registering": false,
540 "is_appuser": false,
541 "login_page": null,
542 "created": "2016-04-12T18:50:45.912602Z",
543 "updated": "2016-04-12T18:50:45.912671Z",
544 "enacted": null,
545 "policed": null,
546 "backend_status": "Provisioning in progress",
547 "deleted": false,
548 "write_protect": false,
549 "timezone": "America/New_York"
550 }
551 ]
552
553
554
Matteo Scandolo94e17a42016-04-29 15:34:17 -0700555# Group Example
556
557## Example Services Collection [/api/service/exampleservice/]
558
559### List all Example Services [GET]
560
561+ Response 200 (application/json)
562
563 [
564 {
565 "humanReadableName": "MyExample",
566 "id": 1,
567 "service_message": "This is the test message"
568 }
569 ]
570
571
572# Group ONOS Services
573
574List of the active onos services
575
576## ONOS Services Collection [/api/service/onos/]
577
578### List all ONOS Services [GET]
579
580+ Response 200 (application/json)
581
582 [
583 {
584 "humanReadableName": "service_ONOS_vBNG",
585 "id": 5,
586 "rest_hostname": "",
587 "rest_port": "8181",
588 "no_container": false,
589 "node_key": ""
590 }
591 ]
592
593
594# Group vSG
595
596## vSG Collection [/api/service/vsg/]
597
598### List all vSGs [GET]
599
600+ Response 200 (application/json)
601
602 [
603 {
604 "humanReadableName": "service_vsg",
605 "id": 2,
606 "dns_servers": "8.8.8.8",
607 "url_filter_kind": null,
608 "node_label": null
609 }
610 ]
611
612
Matteo Scandolob82a85d2016-05-02 15:29:37 -0700613# Group Utility
614
615List of the XOS Utility API
616
617## Login [/api/utility/login/]
618
619### Log a user in the system [POST]
620
621+ Request (application/json)
622
623 {
624 "username": "padmin@vicci.org",
625 "password": "letmein"
626 }
627
628+ Response 200 (application/json)
629
630 {
631 "xoscsrftoken":"xuvsRC1jkXAsnrdRlgJvcXpmtthTAqqf",
632 "xossessionid":"7ds5a3wzjlgbjqo4odkd25qsm0j2s6zg",
633 "user": "{\"policed\": null, \"site\": 3, \"is_appuser\": false, \"is_staff\": true, \"backend_status\": \"Provisioning in progress\", \"id\": 3, \"is_registering\": false, \"last_login\": \"2016-04-30T22:51:04.788675+00:00\", \"email\": \"padmin@vicci.org\", \"no_sync\": false, \"username\": \"padmin@vicci.org\", \"dashboards\": [11], \"login_page\": null, \"firstname\": \"XOS\", \"user_url\": null, \"deleted\": false, \"lastname\": \"admin\", \"is_active\": true, \"lazy_blocked\": false, \"phone\": null, \"is_admin\": true, \"enacted\": null, \"public_key\": null, \"is_readonly\": false, \"no_policy\": false, \"write_protect\": false}"
634 }
635
636## Logout [/api/utility/logout/]
637
638### Log a user out of the system [POST]
639
640+ Request (application/json)
641 {xossessionid: "sessionId"}
642
643+ Response 200 (application/json)
644
645
646
Teone7241e262016-04-18 14:39:41 -0700647# Group Subscribers
648
649Resource related to the CORD Subscribers.
650
Matteo Scandoloe83c4252016-04-27 17:31:11 -0700651## Subscribers [/api/tenant/cord/subscriber/{subscriber_id}/]
Teone7241e262016-04-18 14:39:41 -0700652
653### List All Subscribers [GET]
654
655+ Response 200 (application/json)
656
657 [
658 {
659 "humanReadableName": "cordSubscriber-1",
660 "id": 1,
661 "features": {
662 "cdn": false,
663 "uplink_speed": 1000000000,
664 "downlink_speed": 1000000000,
665 "uverse": false,
666 "status": "enabled"
667 },
668 "identity": {
669 "account_num": "123",
670 "name": "My House"
671 },
672 "related": {
673 "instance_name": "mysite_vcpe",
674 "vsg_id": 4,
675 "compute_node_name": "node2.opencloud.us",
676 "c_tag": "432",
677 "instance_id": 1,
678 "wan_container_ip": null,
679 "volt_id": 3,
680 "s_tag": "222"
681 }
682 }
683 ]
684
Matteo Scandoloe83c4252016-04-27 17:31:11 -0700685
686### View a Subscriber Detail [GET]
Teone7241e262016-04-18 14:39:41 -0700687
688+ Parameters
689 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
690
Teone7241e262016-04-18 14:39:41 -0700691+ Response 200 (application/json)
692
693 {
694 "humanReadableName": "cordSubscriber-1",
695 "id": 1,
696 "features": {
697 "cdn": false,
698 "uplink_speed": 1000000000,
699 "downlink_speed": 1000000000,
700 "uverse": false,
701 "status": "enabled"
702 },
703 "identity": {
704 "account_num": "123",
705 "name": "My House"
706 },
707 "related": {
708 "instance_name": "mysite_vcpe",
709 "vsg_id": 4,
710 "compute_node_name": "node2.opencloud.us",
711 "c_tag": "432",
712 "instance_id": 1,
713 "wan_container_ip": null,
714 "volt_id": 3,
715 "s_tag": "222"
716 }
717 }
718
719### Delete a Subscriber [DELETE]
720
Matteo Scandoloe83c4252016-04-27 17:31:11 -0700721+ Parameters
722 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
723
Teone7241e262016-04-18 14:39:41 -0700724+ Response 204
725
726### Subscriber features [/api/tenant/cord/subscriber/{subscriber_id}/features/]
727
728+ Parameters
729 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
730
731### View a Subscriber Features Detail [GET]
732
733+ Response 200 (application/json)
734
735 {
736 "cdn": false,
737 "uplink_speed": 1000000000,
738 "downlink_speed": 1000000000,
739 "uverse": true,
740 "status": "enabled"
741 }
742
743#### Subscriber features uplink_speed [/api/tenant/cord/subscriber/{subscriber_id}/features/uplink_speed/]
744
745+ Parameters
746 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
747
748#### Read Subscriber uplink_speed [GET]
749
750+ Response 200 (application/json)
751
752 {
753 "uplink_speed": 1000000000
754 }
755
756#### Update Subscriber uplink_speed [PUT]
757
758+ Request 200 (application/json)
759
760 {
761 "uplink_speed": 1000000000
762 }
763
764+ Response 200 (application/json)
765
766 {
767 "uplink_speed": 1000000000
768 }
769
770#### Subscriber features downlink_speed [/api/tenant/cord/subscriber/{subscriber_id}/features/downlink_speed/]
771
772+ Parameters
773 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
774
775#### Read Subscriber downlink_speed [GET]
776
777+ Response 200 (application/json)
778
779 {
780 "downlink_speed": 1000000000
781 }
782
783#### Update Subscriber downlink_speed [PUT]
784
785+ Request 200 (application/json)
786
787 {
788 "downlink_speed": 1000000000
789 }
790
791+ Response 200 (application/json)
792
793 {
794 "downlink_speed": 1000000000
795 }
796
797#### Subscriber features cdn [/api/tenant/cord/subscriber/{subscriber_id}/features/cdn/]
798
799+ Parameters
800 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
801
802#### Read Subscriber cdn [GET]
803
804+ Response 200 (application/json)
805
806 {
807 "cdn": false
808 }
809
810#### Update Subscriber cdn [PUT]
811
812+ Request 200 (application/json)
813
814 {
815 "cdn": false
816 }
817
818+ Response 200 (application/json)
819
820 {
821 "cdn": false
822 }
823
824#### Subscriber features uverse [/api/tenant/cord/subscriber/{subscriber_id}/features/uverse/]
825
826+ Parameters
827 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
828
829#### Read Subscriber uverse [GET]
830
831+ Response 200 (application/json)
832
833 {
834 "uverse": false
835 }
836
837#### Update Subscriber uverse [PUT]
838
839+ Request 200 (application/json)
840
841 {
842 "uverse": false
843 }
844
845+ Response 200 (application/json)
846
847 {
848 "uverse": false
849 }
850
851#### Subscriber features status [/api/tenant/cord/subscriber/{subscriber_id}/features/status/]
852
853+ Parameters
854 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
855
856#### Read Subscriber status [GET]
857
858+ Response 200 (application/json)
859
860 {
861 "status": "enabled"
862 }
863
864#### Update Subscriber status [PUT]
865
866+ Request 200 (application/json)
867
868 {
869 "status": "enabled"
870 }
871
872+ Response 200 (application/json)
873
874 {
875 "status": "enabled"
876 }
877
878
879# Group Truckroll
880
881Virtual Truckroll, enable to perform basic test on user connectivity such as ping, traceroute and tcpdump.
882
Matteo Scandoloe83c4252016-04-27 17:31:11 -0700883## Truckroll Collection [/api/tenant/truckroll/{truckroll_id}/]
Teone7241e262016-04-18 14:39:41 -0700884
885### List all Truckroll [GET]
886
887+ Response 200 (application/json)
888
889 [
890 {
891 "humanReadableName": "vTR-tenant-9",
892 "id": 9,
893 "provider_service": 6,
894 "target_id": 2,
895 "scope": "container",
896 "test": "ping",
897 "argument": "8.8.8.8",
898 "result": "",
899 "result_code": "",
900 "is_synced": false,
901 "backend_status": "2 - Exception('Unreachable results in ansible recipe',)"
902 }
903 ]
904
905### Create a Truckroll [POST]
906
Matteo Scandoloe83c4252016-04-27 17:31:11 -0700907A virtual truckroll is complete once is_synced equal true
908
Teone7241e262016-04-18 14:39:41 -0700909+ Request (application/json)
910
911 {
912 "target_id": 2,
913 "scope": "container",
914 "test": "ping",
915 "argument": "8.8.8.8"
916 }
917
918+ Response 201 (application/json)
919
920 {
921 "humanReadableName": "vTR-tenant-1",
922 "id": 1,
923 "provider_service": 6,
924 "target_id": 2,
925 "scope": "container",
926 "test": "ping",
927 "argument": "8.8.8.8",
928 "result": null,
929 "result_code": null,
930 "is_synced": false,
931 "backend_status": "0 - Provisioning in progress"
932 }
933
Teone7241e262016-04-18 14:39:41 -0700934
Matteo Scandoloe83c4252016-04-27 17:31:11 -0700935### View a Truckroll Detail [GET]
Teone7241e262016-04-18 14:39:41 -0700936
937+ Parameters
938 + truckroll_id: 1 (number) - ID of the Truckroll in the form of an integer
939
Teone7241e262016-04-18 14:39:41 -0700940+ Response 200 (application/json)
941
942 {
943 "humanReadableName": "vTR-tenant-10",
944 "id": 10,
945 "provider_service": 6,
946 "target_id": 2,
947 "scope": "container",
948 "test": "ping",
949 "argument": "8.8.8.8",
950 "result": null,
951 "result_code": null,
952 "is_synced": false,
953 "backend_status": "0 - Provisioning in progress"
954 }
955
956### Delete a Truckroll Detail [DELETE]
957
Matteo Scandoloe83c4252016-04-27 17:31:11 -0700958+ Parameters
959 + truckroll_id: 1 (number) - ID of the Truckroll in the form of an integer
960
Teone7241e262016-04-18 14:39:41 -0700961+ Response 204
962
963
964
965# Group vOLT
966
967OLT devices aggregate a set of subscriber connections
968
Matteo Scandoloe83c4252016-04-27 17:31:11 -0700969## vOLT Collection [/api/tenant/cord/volt/{volt_id}/]
Teone7241e262016-04-18 14:39:41 -0700970
971### List all vOLT [GET]
972
973+ Response 200 (application/json)
974
975 [
976 {
977 "humanReadableName": "vOLT-tenant-1",
978 "id": 1,
979 "service_specific_id": "123",
980 "s_tag": "222",
981 "c_tag": "432",
982 "subscriber": 1,
983 "related": {
984 "instance_id": 1,
985 "instance_name": "mysite_vcpe",
986 "vsg_id": 4,
987 "wan_container_ip": null,
988 "compute_node_name": "node2.opencloud.us"
989 }
990 }
991 ]
992
993### Create a vOLT [POST]
994
995+ Request (application/json)
996
997 {
998 "s_tag": "222",
999 "c_tag": "432",
1000 "subscriber": 1
1001 }
1002
1003+ Response 201 (application/json)
1004
1005 {
1006 "humanReadableName": "vOLT-tenant-1",
1007 "id": 1,
1008 "service_specific_id": "123",
1009 "s_tag": "222",
1010 "c_tag": "432",
1011 "subscriber": 1,
1012 "related": {
1013 "instance_id": 1,
1014 "instance_name": "mysite_vcpe",
1015 "vsg_id": 4,
1016 "wan_container_ip": null,
1017 "compute_node_name": "node2.opencloud.us"
1018 }
1019 }
1020
Matteo Scandoloe83c4252016-04-27 17:31:11 -07001021### View a vOLT Detail [GET]
Teone7241e262016-04-18 14:39:41 -07001022
1023+ Parameters
1024 + volt_id: 1 (number) - ID of the vOLT in the form of an integer
1025
Teone7241e262016-04-18 14:39:41 -07001026+ Response 200 (application/json)
1027
1028 {
1029 "humanReadableName": "vOLT-tenant-1",
1030 "id": 1,
1031 "service_specific_id": "123",
1032 "s_tag": "222",
1033 "c_tag": "432",
1034 "subscriber": 1,
1035 "related": {
1036 "instance_id": 1,
1037 "instance_name": "mysite_vcpe",
1038 "vsg_id": 4,
1039 "wan_container_ip": null,
1040 "compute_node_name": "node2.opencloud.us"
1041 }
1042 }
1043
1044
1045
1046# Group ONOS Apps
1047
Matteo Scandoloe83c4252016-04-27 17:31:11 -07001048## ONOS App Collection [/api/tenant/onos/app/]
Teone7241e262016-04-18 14:39:41 -07001049
1050### List all apps [GET]
1051
1052+ Response 200 (application/json)
1053
1054 [
1055 {
1056 "humanReadableName": "onos-tenant-7",
1057 "id": 7,
1058 "name": "vBNG_ONOS_app",
1059 "dependencies": "org.onosproject.proxyarp, org.onosproject.virtualbng, org.onosproject.openflow, org.onosproject.fwd"
1060 }
1061 ]