documantetion.
[osm/vim-emu.git] / src / emuvim / api / sonata / README.md
1 # SONATA dummy gatekeeper API:
2
3 ## Run emulator example with active SONATA dummy gatekeeper:
4 The example starts a small network with two data centers.
5
6 * `sudo python src/emuvim/examples/sonata_y1_demo_topology_1.py`
7
8 ## Upload a package (*.son) file:
9
10 To upload the file `sonata-demo.son` (from son-schema repo) do:
11
12 * `curl -i -X POST -F file=@sonata-demo.son http://127.0.0.1:8000/api/packages`
13
14 To list all uploaded packages do:
15
16 * `curl http://127.0.0.1:8000/api/packages`
17
18 To instantiate (start) a service do:
19
20 * Specific service: `curl -X POST http://127.0.0.1:8000/api/instantiations -d "{\"service_uuid\":\"59446b64-f941-40a8-b511-effb0512c21b\"}"`
21 * Last uploaded service (makes manual tests easier): `curl -X POST http://127.0.0.1:8000/api/instantiations -d "{}"`
22
23 To list all running services do:
24
25 * `curl http://127.0.0.1:8000/api/instantiations`
26
27
28 ## API definition
29
30 This page describes the dummy gatekeeper API. This gatekeeper fakes the original platform gatekeeper during development SDK tools like son-push. 
31
32 It is also able to deploy our example service package (not any arbitrary service package!) in the emulator for the Y1 demo.
33
34 _Note: This API should converge to the API of the original GK as much as possible!_
35
36 ## REST API:
37 <table>
38 <tr>
39 <th>Endpoint:</th>
40 <th>Method:</th>
41 <th>Header:</th>
42 <th>Body:</th>
43 <th>Response:</th>
44 </tr>
45 <tr>
46 <td>/api/packages</td>
47 <td>POST</td>
48 <td>-</td>
49 <td>{file-content} as enctype=multipart/form-data</td>
50 <td>{"service_uuid": "c880aaab-f3b9-43ac-ac6b-3d27b46146b7", size=456, sha1=49ee6468dfa4ecbad440d669b249d523a38651be, error: null}</td>
51 </tr>
52 <tr>
53 <td>/api/packages</td>
54 <td>GET</td>
55 <td>-</td>
56 <td></td>
57 <td>{service_uuid_list: ["c880aaab-f3b9-43ac-ac6b-3d27b46146b7", "c880aaab-f3b9-43ac-ac6b-3d27b46146b8", "c880aaab-f3b9-43ac-ac6b-3d27b46146b9"]}</td>
58 </tr>
59 <tr>
60 <td>/api/instantiations</td>
61 <td>POST</td>
62 <td>-</td>
63 <td>{service_uuid: "c880aaab-f3b9-43ac-ac6b-3d27b46146b7"}</td>
64 <td>{service_instance_uuid: "de4567-f3b9-43ac-ac6b-3d27b461123"}</td>
65 </tr>
66 <tr>
67 <td>/api/instantiations</td>
68 <td>GET</td>
69 <td>-</td>
70 <td></td>
71 <td>
72 {
73     "service_instance_list": [
74         [
75             "9da044b3-1f7a-40e6-a9b3-9e83a9834249", 
76             "9371df14-a595-436a-92b5-fc243b74a9d7"
77         ]
78     ]
79 }
80 </td>
81 </tr>
82 </table>
83
84
85 ## Run REST API in standalone mode (without emulator):
86 This is not working yet!!!
87 * `sudo python src/emuvim/api/sonata/dummygatekeeper.py`