blob: 1c8816acbcf95410f82037726f36754b9f08d376 [file] [log] [blame]
Teone620bafd2016-04-18 14:39:41 -07001FORMAT: 1A
2
3# XOS
4
5
Matteo Scandolob71510b2016-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 Scandolod5f3d052016-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 Scandolo631b4812016-05-02 15:51:34 -070049### Create a deployment [POST]
50
Matteo Scandolo4b2db532016-05-02 18:15:57 -070051+ Request (application/json)
52
53 {
54 "humanReadableName": "MyDeployment",
55 }
56
Matteo Scandolo631b4812016-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 Scandolod5f3d052016-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 Scandolob71510b2016-04-29 09:56:48 -070097 {
98 "humanReadableName": "MyDeployment",
99 "id": 1,
Matteo Scandolod5f3d052016-05-02 15:29:37 -0700100 "created": "2016-04-27T21:46:57.354544Z",
101 "updated": "2016-04-27T21:47:05.221720Z",
Matteo Scandolob71510b2016-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 Scandolod5f3d052016-05-02 15:29:37 -0700112 "images": [],
Matteo Scandolob71510b2016-04-29 09:56:48 -0700113 "sites": [
114 "1"
115 ],
116 "flavors": [
Matteo Scandolod5f3d052016-05-02 15:29:37 -0700117 "3",
Matteo Scandolob71510b2016-04-29 09:56:48 -0700118 "2",
Matteo Scandolod5f3d052016-05-02 15:29:37 -0700119 "1"
Matteo Scandolob71510b2016-04-29 09:56:48 -0700120 ],
121 "dashboardviews": [
Matteo Scandolod5f3d052016-05-02 15:29:37 -0700122 "3"
Matteo Scandolob71510b2016-04-29 09:56:48 -0700123 ]
124 }
Matteo Scandolod5f3d052016-05-02 15:29:37 -0700125
Matteo Scandolo631b4812016-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 Scandolob71510b2016-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 Scandolo4b2db532016-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 Scandolob71510b2016-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 Scandolo4b2db532016-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 Scandolob71510b2016-04-29 09:56:48 -0700238
239
240# Group Instances
241
242List of the XOS instances
243
Matteo Scandolo4b2db532016-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 Scandolob71510b2016-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 Scandolo4b2db532016-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 Scandolob71510b2016-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
Matteo Scandolo70bc45f2016-05-06 14:10:11 -0700424# Group Services
425
426List of the XOS Services
427
428## Services [/api/core/services/{id}/]
429
430### List all Services [GET]
431
432+ Response 200 (application/json)
433
434 [
435 {
436 "humanReadableName": "MyService",
437 "id": 1,
438 "created": "2016-05-05T23:06:33.835277Z",
439 "updated": "2016-05-05T23:06:33.835302Z",
440 "enacted": null,
441 "policed": null,
442 "backend_register": "{}",
443 "backend_status": "0 - Provisioning in progress",
444 "deleted": false,
445 "write_protect": false,
446 "lazy_blocked": false,
447 "no_sync": false,
448 "no_policy": false,
449 "description": null,
450 "enabled": true,
451 "kind": "vROUTER",
452 "name": "MyService",
453 "versionNumber": null,
454 "published": true,
455 "view_url": "/admin/vrouter/vrouterservice/$id$/",
456 "icon_url": null,
457 "public_key": null,
458 "private_key_fn": null,
459 "service_specific_id": null,
460 "service_specific_attribute": null
461 }
462 ]
463
464### Create a Service [POST]
465
466+ Request (application/json)
467
468 {
469 "name": "MyService",
470 "kind": "vROUTER"
471 }
472
473+ Response 200 (application/json)
474
475 {
476 "humanReadableName": "MyService",
477 "id": 1,
478 "created": "2016-05-05T23:06:33.835277Z",
479 "updated": "2016-05-05T23:06:33.835302Z",
480 "enacted": null,
481 "policed": null,
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 "no_policy": false,
489 "description": null,
490 "enabled": true,
491 "kind": "vROUTER",
492 "name": "MyService",
493 "versionNumber": null,
494 "published": true,
495 "view_url": "/admin/vrouter/vrouterservice/$id$/",
496 "icon_url": null,
497 "public_key": null,
498 "private_key_fn": null,
499 "service_specific_id": null,
500 "service_specific_attribute": null
501 }
502
503### View a Service Detail [GET]
504
505+ Parameters
506 + id: 1 (number) - ID of the Service in the form of an integer
507
508+ Response 200 (application/json)
509
510 {
511 "humanReadableName": "MyService",
512 "id": 1,
513 "created": "2016-05-05T23:06:33.835277Z",
514 "updated": "2016-05-05T23:06:33.835302Z",
515 "enacted": null,
516 "policed": null,
517 "backend_register": "{}",
518 "backend_status": "0 - Provisioning in progress",
519 "deleted": false,
520 "write_protect": false,
521 "lazy_blocked": false,
522 "no_sync": false,
523 "no_policy": false,
524 "description": null,
525 "enabled": true,
526 "kind": "vROUTER",
527 "name": "MyService",
528 "versionNumber": null,
529 "published": true,
530 "view_url": "/admin/vrouter/vrouterservice/$id$/",
531 "icon_url": null,
532 "public_key": null,
533 "private_key_fn": null,
534 "service_specific_id": null,
535 "service_specific_attribute": null
536 }
537
538### Delete a Service [DELETE]
539
540+ Parameters
541 + id: 1 (number) - ID of the Service in the form of an integer
542
543+ Response 204
544
545
546
Matteo Scandolob71510b2016-04-29 09:56:48 -0700547# Group Sites
548
549List of the XOS sites
550
551## Sites [/api/core/sites/{id}/]
552
553### List all sites [GET]
554
555+ Response 200 (application/json)
556
557 {
Matteo Scandolod74b9c62016-07-07 14:56:48 -0700558 "humanReadableName": "mysite",
Matteo Scandolob71510b2016-04-29 09:56:48 -0700559 "id": 1,
560 "created": "2016-04-29T16:19:03.587770Z",
561 "updated": "2016-04-29T16:19:05.651933Z",
562 "enacted": null,
563 "policed": null,
564 "backend_register": "{}",
565 "backend_status": "0 - Provisioning in progress",
566 "deleted": false,
567 "write_protect": false,
568 "lazy_blocked": false,
569 "no_sync": false,
570 "name": "MySite",
571 "site_url": "http://opencord.us/",
572 "enabled": true,
573 "hosts_nodes": true,
574 "hosts_users": true,
575 "location": null,
576 "longitude": null,
577 "latitude": null,
578 "login_base": "mysite",
579 "is_public": true,
580 "abbreviated_name": "",
581 "deployments": [
582 "1"
583 ]
584 }
585
586
587# Group Slices
588
589List of the XOS slices
590
591## Slices [/api/core/slices/{id}/]
592
593### List all slices [GET]
594
595+ Response 200 (application/json)
596
597 [
598 {
599 "humanReadableName": "mysite_slice",
600 "id": 1,
601 "created": "2016-04-29T16:23:22.505072Z",
602 "updated": "2016-04-29T16:23:22.504691Z",
603 "enacted": null,
604 "policed": "2016-04-29T16:23:22.781298Z",
605 "backend_register": "{}",
606 "backend_status": "0 - Provisioning in progress",
607 "deleted": false,
608 "write_protect": false,
609 "lazy_blocked": false,
610 "no_sync": false,
611 "name": "mysite_slice",
612 "enabled": true,
613 "omf_friendly": false,
614 "description": "",
615 "slice_url": "",
616 "site": "http://apt118.apt.emulab.net/api/core/sites/1/",
617 "max_instances": 10,
618 "service": null,
619 "network": null,
620 "exposed_ports": null,
621 "serviceClass": "http://apt118.apt.emulab.net/api/core/serviceclasses/1/",
622 "creator": "http://apt118.apt.emulab.net/api/core/users/1/",
623 "default_flavor": null,
624 "default_image": null,
625 "mount_data_sets": "GenBank",
626 "default_isolation": "vm",
627 "networks": [
628 "http://apt118.apt.emulab.net/api/core/networks/1/"
629 ]
630 }
631 ]
632
633
634
635# Group Users
636
637List of the XOS users
638
639## Users [/api/core/users/{id}/]
640
641### List all Users [GET]
642
643+ Response 200 (application/json)
644
645 [
646 {
647 "id": 2,
648 "password": "pbkdf2_sha256$12000$9gn8DmZuIoz2$YPQkx3AOOV7jZNYr2ddrgUCkiuaPpvb8+aJR7RwLZNA=",
649 "last_login": "2016-04-12T18:50:45.880823Z",
650 "email": "johndoe@myhouse.com",
651 "username": "johndoe@myhouse.com",
652 "firstname": "john",
653 "lastname": "doe",
654 "phone": null,
655 "user_url": null,
656 "site": "http://xos.dev:9999/api/core/sites/1/",
657 "public_key": null,
658 "is_active": true,
659 "is_admin": false,
660 "is_staff": true,
661 "is_readonly": false,
662 "is_registering": false,
663 "is_appuser": false,
664 "login_page": null,
665 "created": "2016-04-12T18:50:45.912602Z",
666 "updated": "2016-04-12T18:50:45.912671Z",
667 "enacted": null,
668 "policed": null,
669 "backend_status": "Provisioning in progress",
670 "deleted": false,
671 "write_protect": false,
672 "timezone": "America/New_York"
673 }
674 ]
675
676
677
Matteo Scandoloa2be8d42016-04-29 15:34:17 -0700678# Group Example
679
680## Example Services Collection [/api/service/exampleservice/]
681
682### List all Example Services [GET]
683
684+ Response 200 (application/json)
685
686 [
687 {
688 "humanReadableName": "MyExample",
689 "id": 1,
690 "service_message": "This is the test message"
691 }
692 ]
Matteo Scandolod74b9c62016-07-07 14:56:48 -0700693
Matteo Scandoloa2be8d42016-04-29 15:34:17 -0700694
695
696# Group ONOS Services
697
698List of the active onos services
699
700## ONOS Services Collection [/api/service/onos/]
701
702### List all ONOS Services [GET]
703
704+ Response 200 (application/json)
705
706 [
707 {
708 "humanReadableName": "service_ONOS_vBNG",
709 "id": 5,
710 "rest_hostname": "",
711 "rest_port": "8181",
712 "no_container": false,
713 "node_key": ""
714 }
715 ]
716
717
718# Group vSG
719
720## vSG Collection [/api/service/vsg/]
721
722### List all vSGs [GET]
723
724+ Response 200 (application/json)
725
726 [
727 {
728 "humanReadableName": "service_vsg",
729 "id": 2,
730 "dns_servers": "8.8.8.8",
731 "url_filter_kind": null,
732 "node_label": null
733 }
734 ]
735
736
Matteo Scandolod5f3d052016-05-02 15:29:37 -0700737# Group Utility
738
739List of the XOS Utility API
740
741## Login [/api/utility/login/]
742
743### Log a user in the system [POST]
744
745+ Request (application/json)
746
747 {
748 "username": "padmin@vicci.org",
749 "password": "letmein"
750 }
751
752+ Response 200 (application/json)
753
754 {
755 "xoscsrftoken":"xuvsRC1jkXAsnrdRlgJvcXpmtthTAqqf",
756 "xossessionid":"7ds5a3wzjlgbjqo4odkd25qsm0j2s6zg",
757 "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}"
758 }
759
760## Logout [/api/utility/logout/]
761
762### Log a user out of the system [POST]
763
764+ Request (application/json)
Matteo Scandolod74b9c62016-07-07 14:56:48 -0700765
766 {
767 "xossessionid": "sessionId"
768 }
Matteo Scandolod5f3d052016-05-02 15:29:37 -0700769
770+ Response 200 (application/json)
771
Matteo Scandolod74b9c62016-07-07 14:56:48 -0700772## Port Forwarding [/api/utility/portforwarding/]
773
774Contains the set of port forwarding mappings for each compute node.
775Used on OpenCloud to setup port forwarding for nat-net.
776
777### List port forwarding objects [GET]
778
779+ Response 200 (application/json)
780
781 [
782 {
783 "id": 79,
784 "ip": "172.16.0.36",
785 "ports": "tcp 2222, tcp 25566",
786 "hostname": "node1.opencloud.us"
787 },
788 {
789 "id": 131,
790 "ip": "172.16.0.16",
791 "ports": "udp 53, tcp 8017",
792 "hostname": "node2.opencloud.us"
793 }
794 ]
795
796## Slices Plus [/api/utility/slicesplus/]
797
798A list of slices with addictional information, it is used in the Tenant custom dashboard.
799
800### List Slices objects [GET]
801
802+ Response 200 (application/json)
803
804 [
805 {
806 "humanReadableName": "mysite_management",
807 "id": 2,
808 "created": "2016-06-29T18:43:50.730912Z",
809 "updated": "2016-06-29T18:43:50.730789Z",
810 "enacted": null,
811 "name": "mysite_management",
812 "enabled": true,
813 "omf_friendly": false,
814 "description": "",
815 "slice_url": "",
816 "site": 2,
817 "max_instances": 10,
818 "service": null,
819 "network": "noauto",
820 "mount_data_sets": "GenBank",
821 "default_image": null,
822 "default_flavor": null,
823 "serviceClass": null,
824 "creator": 2,
825 "networks": [],
826 "network_ports": "",
827 "backendIcon": "/static/admin/img/icon_clock.gif",
828 "backendHtml": "<span title=\"Pending sync, last_status = 0 - Provisioning in progress\"><img src=\"/static/admin/img/icon_clock.gif\"></span>",
829 "current_user_roles": [],
830 "instance_distribution": {},
831 "instance_distribution_ready": {},
832 "instance_total": 0,
833 "instance_total_ready": 0,
834 "instance_status": {},
835 "users": [],
836 "user_names": [],
837 "current_user_can_see": true
838 }
839 ]
840
841## Synchronizer [/api/utility/synchronizer/]
842
843Lists the Diag objects for synchronizers. From here you can get the synchronizer status.
844
845### List Diag objects [GET]
846
847+ Response 200 (application/json)
848
849 [
850 {
851 "id": 3,
852 "name": "onboarding",
853 "backend_status": "1 - Bottom Of Loop",
854 "backend_register": "{\"last_duration\": 0.18996095657348633, \"last_run\": 1467923907.908469}"
855 }
856 ]
857
858## Onboarding [/api/utility/onboarding/{service}/ready]
859
860Used to get the status of onboarding, to determine if services have been to successfully onboarded and if the XOS UI container has been built.
861
862### Get service status [GET]
863
864+ Parameters
865 + service: services/vsg (string) - Name of the service to wait for
866
867
868+ Response 200 (text/plain)
869
870 true
871
872## Tosca [/api/utility/tosca/run/]
873
874### Load a Tosca recipe [POST]
875
876+ Request (application/json)
877
878 {
879 "recipe": "tosca_definitions_version: tosca_simple_yaml_1_0\n\ndescription: Onboard the exampleservice\n\nimports:\n - custom_types/xos.yaml\n\ntopology_template:\n node_templates:\n test_site:\n type: tosca.nodes.Site\n properties:\n display_name: Test Site\n site_url: https://www.onlab.us/"
880 }
881
882+ Response 200 (application/json)
883
884 {
885 "log_msgs":[
886 "ordered_names: ['test_site']",
887 "Created Site 'Test Site'"
888 ]
889 }
890
891## Ssh Keys [/api/utility/sshkeys/]
892
893Returns the set of ssh keys for instances. Used on OpenCloud to configure ssh-proxy to instances.
894
895### List ssh keys by instance [GET]
896
897+ Response 200 (application/json)
898
899 [
900 {
901 "id": "instance-00000001",
902 "public_keys": [
903 "ssh-rsa xxyyzz\r\n"
904 ],
905 "node_name": "node1.opencloud.us"
906 },
907 {
908 "id": "instance-00000001",
909 "public_keys": [
910 "ssh-rsa xxyyzz\r\n"
911 ],
912 "node_name": "node2.opencloud.us"
913 }
914 ]
Matteo Scandolod5f3d052016-05-02 15:29:37 -0700915
916
Teone620bafd2016-04-18 14:39:41 -0700917# Group Subscribers
918
919Resource related to the CORD Subscribers.
920
Matteo Scandoloe25820a2016-04-27 17:31:11 -0700921## Subscribers [/api/tenant/cord/subscriber/{subscriber_id}/]
Teone620bafd2016-04-18 14:39:41 -0700922
923### List All Subscribers [GET]
924
925+ Response 200 (application/json)
926
927 [
928 {
929 "humanReadableName": "cordSubscriber-1",
930 "id": 1,
931 "features": {
932 "cdn": false,
933 "uplink_speed": 1000000000,
934 "downlink_speed": 1000000000,
935 "uverse": false,
936 "status": "enabled"
937 },
938 "identity": {
939 "account_num": "123",
940 "name": "My House"
941 },
942 "related": {
943 "instance_name": "mysite_vcpe",
944 "vsg_id": 4,
945 "compute_node_name": "node2.opencloud.us",
946 "c_tag": "432",
947 "instance_id": 1,
948 "wan_container_ip": null,
949 "volt_id": 3,
950 "s_tag": "222"
951 }
952 }
953 ]
954
Matteo Scandoloe25820a2016-04-27 17:31:11 -0700955
956### View a Subscriber Detail [GET]
Teone620bafd2016-04-18 14:39:41 -0700957
958+ Parameters
959 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
960
Teone620bafd2016-04-18 14:39:41 -0700961+ Response 200 (application/json)
962
963 {
964 "humanReadableName": "cordSubscriber-1",
965 "id": 1,
966 "features": {
967 "cdn": false,
968 "uplink_speed": 1000000000,
969 "downlink_speed": 1000000000,
970 "uverse": false,
971 "status": "enabled"
972 },
973 "identity": {
974 "account_num": "123",
975 "name": "My House"
976 },
977 "related": {
978 "instance_name": "mysite_vcpe",
979 "vsg_id": 4,
980 "compute_node_name": "node2.opencloud.us",
981 "c_tag": "432",
982 "instance_id": 1,
983 "wan_container_ip": null,
984 "volt_id": 3,
985 "s_tag": "222"
986 }
987 }
988
989### Delete a Subscriber [DELETE]
990
Matteo Scandoloe25820a2016-04-27 17:31:11 -0700991+ Parameters
992 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
993
Teone620bafd2016-04-18 14:39:41 -0700994+ Response 204
995
996### Subscriber features [/api/tenant/cord/subscriber/{subscriber_id}/features/]
997
998+ Parameters
999 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
1000
1001### View a Subscriber Features Detail [GET]
1002
1003+ Response 200 (application/json)
1004
1005 {
1006 "cdn": false,
1007 "uplink_speed": 1000000000,
1008 "downlink_speed": 1000000000,
1009 "uverse": true,
1010 "status": "enabled"
1011 }
1012
1013#### Subscriber features uplink_speed [/api/tenant/cord/subscriber/{subscriber_id}/features/uplink_speed/]
1014
1015+ Parameters
1016 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
1017
1018#### Read Subscriber uplink_speed [GET]
1019
1020+ Response 200 (application/json)
1021
1022 {
1023 "uplink_speed": 1000000000
1024 }
1025
1026#### Update Subscriber uplink_speed [PUT]
1027
1028+ Request 200 (application/json)
1029
1030 {
1031 "uplink_speed": 1000000000
1032 }
1033
1034+ Response 200 (application/json)
1035
1036 {
1037 "uplink_speed": 1000000000
1038 }
1039
1040#### Subscriber features downlink_speed [/api/tenant/cord/subscriber/{subscriber_id}/features/downlink_speed/]
1041
1042+ Parameters
1043 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
1044
1045#### Read Subscriber downlink_speed [GET]
1046
1047+ Response 200 (application/json)
1048
1049 {
1050 "downlink_speed": 1000000000
1051 }
1052
1053#### Update Subscriber downlink_speed [PUT]
1054
1055+ Request 200 (application/json)
1056
1057 {
1058 "downlink_speed": 1000000000
1059 }
1060
1061+ Response 200 (application/json)
1062
1063 {
1064 "downlink_speed": 1000000000
1065 }
1066
1067#### Subscriber features cdn [/api/tenant/cord/subscriber/{subscriber_id}/features/cdn/]
1068
1069+ Parameters
1070 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
1071
1072#### Read Subscriber cdn [GET]
1073
1074+ Response 200 (application/json)
1075
1076 {
1077 "cdn": false
1078 }
1079
1080#### Update Subscriber cdn [PUT]
1081
1082+ Request 200 (application/json)
1083
1084 {
1085 "cdn": false
1086 }
1087
1088+ Response 200 (application/json)
1089
1090 {
1091 "cdn": false
1092 }
1093
1094#### Subscriber features uverse [/api/tenant/cord/subscriber/{subscriber_id}/features/uverse/]
1095
1096+ Parameters
1097 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
1098
1099#### Read Subscriber uverse [GET]
1100
1101+ Response 200 (application/json)
1102
1103 {
1104 "uverse": false
1105 }
1106
1107#### Update Subscriber uverse [PUT]
1108
1109+ Request 200 (application/json)
1110
1111 {
1112 "uverse": false
1113 }
1114
1115+ Response 200 (application/json)
1116
1117 {
1118 "uverse": false
1119 }
1120
1121#### Subscriber features status [/api/tenant/cord/subscriber/{subscriber_id}/features/status/]
1122
1123+ Parameters
1124 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
1125
1126#### Read Subscriber status [GET]
1127
1128+ Response 200 (application/json)
1129
1130 {
1131 "status": "enabled"
1132 }
1133
1134#### Update Subscriber status [PUT]
1135
1136+ Request 200 (application/json)
1137
1138 {
1139 "status": "enabled"
1140 }
1141
1142+ Response 200 (application/json)
1143
1144 {
1145 "status": "enabled"
1146 }
1147
1148
1149# Group Truckroll
1150
1151Virtual Truckroll, enable to perform basic test on user connectivity such as ping, traceroute and tcpdump.
1152
Matteo Scandoloe25820a2016-04-27 17:31:11 -07001153## Truckroll Collection [/api/tenant/truckroll/{truckroll_id}/]
Teone620bafd2016-04-18 14:39:41 -07001154
1155### List all Truckroll [GET]
1156
1157+ Response 200 (application/json)
1158
1159 [
1160 {
1161 "humanReadableName": "vTR-tenant-9",
1162 "id": 9,
1163 "provider_service": 6,
1164 "target_id": 2,
1165 "scope": "container",
1166 "test": "ping",
1167 "argument": "8.8.8.8",
1168 "result": "",
1169 "result_code": "",
1170 "is_synced": false,
1171 "backend_status": "2 - Exception('Unreachable results in ansible recipe',)"
1172 }
1173 ]
1174
1175### Create a Truckroll [POST]
1176
Matteo Scandoloe25820a2016-04-27 17:31:11 -07001177A virtual truckroll is complete once is_synced equal true
1178
Teone620bafd2016-04-18 14:39:41 -07001179+ Request (application/json)
1180
1181 {
1182 "target_id": 2,
1183 "scope": "container",
1184 "test": "ping",
1185 "argument": "8.8.8.8"
1186 }
1187
1188+ Response 201 (application/json)
1189
1190 {
1191 "humanReadableName": "vTR-tenant-1",
1192 "id": 1,
1193 "provider_service": 6,
1194 "target_id": 2,
1195 "scope": "container",
1196 "test": "ping",
1197 "argument": "8.8.8.8",
1198 "result": null,
1199 "result_code": null,
1200 "is_synced": false,
1201 "backend_status": "0 - Provisioning in progress"
1202 }
1203
Teone620bafd2016-04-18 14:39:41 -07001204
Matteo Scandoloe25820a2016-04-27 17:31:11 -07001205### View a Truckroll Detail [GET]
Teone620bafd2016-04-18 14:39:41 -07001206
1207+ Parameters
1208 + truckroll_id: 1 (number) - ID of the Truckroll in the form of an integer
1209
Teone620bafd2016-04-18 14:39:41 -07001210+ Response 200 (application/json)
1211
1212 {
1213 "humanReadableName": "vTR-tenant-10",
1214 "id": 10,
1215 "provider_service": 6,
1216 "target_id": 2,
1217 "scope": "container",
1218 "test": "ping",
1219 "argument": "8.8.8.8",
1220 "result": null,
1221 "result_code": null,
1222 "is_synced": false,
1223 "backend_status": "0 - Provisioning in progress"
1224 }
1225
1226### Delete a Truckroll Detail [DELETE]
1227
Matteo Scandoloe25820a2016-04-27 17:31:11 -07001228+ Parameters
1229 + truckroll_id: 1 (number) - ID of the Truckroll in the form of an integer
1230
Teone620bafd2016-04-18 14:39:41 -07001231+ Response 204
1232
1233
1234
1235# Group vOLT
1236
1237OLT devices aggregate a set of subscriber connections
1238
Matteo Scandoloe25820a2016-04-27 17:31:11 -07001239## vOLT Collection [/api/tenant/cord/volt/{volt_id}/]
Teone620bafd2016-04-18 14:39:41 -07001240
1241### List all vOLT [GET]
1242
1243+ Response 200 (application/json)
1244
1245 [
1246 {
1247 "humanReadableName": "vOLT-tenant-1",
1248 "id": 1,
1249 "service_specific_id": "123",
1250 "s_tag": "222",
1251 "c_tag": "432",
1252 "subscriber": 1,
1253 "related": {
1254 "instance_id": 1,
1255 "instance_name": "mysite_vcpe",
1256 "vsg_id": 4,
1257 "wan_container_ip": null,
1258 "compute_node_name": "node2.opencloud.us"
1259 }
1260 }
1261 ]
1262
1263### Create a vOLT [POST]
1264
1265+ Request (application/json)
1266
1267 {
1268 "s_tag": "222",
1269 "c_tag": "432",
1270 "subscriber": 1
1271 }
1272
1273+ Response 201 (application/json)
1274
1275 {
1276 "humanReadableName": "vOLT-tenant-1",
1277 "id": 1,
1278 "service_specific_id": "123",
1279 "s_tag": "222",
1280 "c_tag": "432",
1281 "subscriber": 1,
1282 "related": {
1283 "instance_id": 1,
1284 "instance_name": "mysite_vcpe",
1285 "vsg_id": 4,
1286 "wan_container_ip": null,
1287 "compute_node_name": "node2.opencloud.us"
1288 }
1289 }
1290
Matteo Scandoloe25820a2016-04-27 17:31:11 -07001291### View a vOLT Detail [GET]
Teone620bafd2016-04-18 14:39:41 -07001292
1293+ Parameters
1294 + volt_id: 1 (number) - ID of the vOLT in the form of an integer
1295
Teone620bafd2016-04-18 14:39:41 -07001296+ Response 200 (application/json)
1297
1298 {
1299 "humanReadableName": "vOLT-tenant-1",
1300 "id": 1,
1301 "service_specific_id": "123",
1302 "s_tag": "222",
1303 "c_tag": "432",
1304 "subscriber": 1,
1305 "related": {
1306 "instance_id": 1,
1307 "instance_name": "mysite_vcpe",
1308 "vsg_id": 4,
1309 "wan_container_ip": null,
1310 "compute_node_name": "node2.opencloud.us"
1311 }
1312 }
1313
1314
1315
1316# Group ONOS Apps
1317
Matteo Scandoloe25820a2016-04-27 17:31:11 -07001318## ONOS App Collection [/api/tenant/onos/app/]
Teone620bafd2016-04-18 14:39:41 -07001319
1320### List all apps [GET]
1321
1322+ Response 200 (application/json)
1323
1324 [
1325 {
1326 "humanReadableName": "onos-tenant-7",
1327 "id": 7,
1328 "name": "vBNG_ONOS_app",
1329 "dependencies": "org.onosproject.proxyarp, org.onosproject.virtualbng, org.onosproject.openflow, org.onosproject.fwd"
1330 }
1331 ]