Statistics
| Branch: | Tag: | Revision:

root / docs / cyclades-api-guide.rst @ 980190ae

History | View | Annotate | Download (16 kB)

1 1837aa54 Giorgos Verigakis
.. _cyclades-api-guide:
2 1837aa54 Giorgos Verigakis
3 c3945370 Vangelis Koukis
API Guide
4 c3945370 Vangelis Koukis
*********
5 c3945370 Vangelis Koukis
6 c3945370 Vangelis Koukis
.. todo:: Document the relation of the API to the OpenStack API v1.1.
7 c3945370 Vangelis Koukis
8 c3945370 Vangelis Koukis
This is the guide to the REST API of the synnefo Compute Service.
9 c3945370 Vangelis Koukis
It is meant for users wishing to make calls to the REST API directly.
10 c3945370 Vangelis Koukis
11 c3945370 Vangelis Koukis
The :ref:`kamaki <http://docs.dev.grnet.gr/kamaki>` command-line client
12 c3945370 Vangelis Koukis
and associated python library can be used instead of making direct calls to
13 b1996c81 Kostas Papadimitriou
:ref:`cyclades <cyclades>`.
14 2cd1c00a Giorgos Verigakis
15 2cd1c00a Giorgos Verigakis
Overview
16 2cd1c00a Giorgos Verigakis
========
17 2cd1c00a Giorgos Verigakis
18 c3945370 Vangelis Koukis
* It is not defined if requests for invalid URLs should return 404 or a Fault.
19 c3945370 Vangelis Koukis
  We return a BadRequest Fault.
20 c3945370 Vangelis Koukis
* It is not defined if requests with a wrong HTTP method should return 405 or a
21 c3945370 Vangelis Koukis
  Fault. We return a BadRequest Fault.
22 2cd1c00a Giorgos Verigakis
23 2cd1c00a Giorgos Verigakis
24 2cd1c00a Giorgos Verigakis
General API Information
25 2cd1c00a Giorgos Verigakis
=======================
26 2cd1c00a Giorgos Verigakis
27 2cd1c00a Giorgos Verigakis
Authentication
28 2cd1c00a Giorgos Verigakis
--------------
29 2cd1c00a Giorgos Verigakis
30 2cd1c00a Giorgos Verigakis
* Authentication support is missing.
31 2cd1c00a Giorgos Verigakis
32 2cd1c00a Giorgos Verigakis
33 2cd1c00a Giorgos Verigakis
Request/Response Types
34 2cd1c00a Giorgos Verigakis
----------------------
35 2cd1c00a Giorgos Verigakis
36 c3945370 Vangelis Koukis
* We only support JSON Requests and JSON/XML Responses. XML Requests are not
37 c3945370 Vangelis Koukis
  supported for now.
38 2cd1c00a Giorgos Verigakis
39 2cd1c00a Giorgos Verigakis
40 2cd1c00a Giorgos Verigakis
Content Compression
41 2cd1c00a Giorgos Verigakis
-------------------
42 2cd1c00a Giorgos Verigakis
43 2cd1c00a Giorgos Verigakis
* Optional content compression support is missing.
44 2cd1c00a Giorgos Verigakis
45 2cd1c00a Giorgos Verigakis
46 2cd1c00a Giorgos Verigakis
Persistent Connections
47 2cd1c00a Giorgos Verigakis
----------------------
48 2cd1c00a Giorgos Verigakis
49 c3945370 Vangelis Koukis
* Deployment note: "To prevent abuse, HTTP sessions have a timeout of 20
50 c3945370 Vangelis Koukis
  seconds before being closed."
51 2cd1c00a Giorgos Verigakis
52 2cd1c00a Giorgos Verigakis
53 2cd1c00a Giorgos Verigakis
Links and References
54 2cd1c00a Giorgos Verigakis
--------------------
55 2cd1c00a Giorgos Verigakis
56 2cd1c00a Giorgos Verigakis
* Full URI references support is missing.
57 2cd1c00a Giorgos Verigakis
* Self and bookmark links support is missing.
58 2cd1c00a Giorgos Verigakis
59 2cd1c00a Giorgos Verigakis
60 2cd1c00a Giorgos Verigakis
Paginated Collections
61 2cd1c00a Giorgos Verigakis
---------------------
62 2cd1c00a Giorgos Verigakis
63 2cd1c00a Giorgos Verigakis
* Pagination support is missing.
64 2cd1c00a Giorgos Verigakis
65 2cd1c00a Giorgos Verigakis
66 2cd1c00a Giorgos Verigakis
Caching
67 2cd1c00a Giorgos Verigakis
-------
68 2cd1c00a Giorgos Verigakis
69 2cd1c00a Giorgos Verigakis
* We do not return cached responses.
70 2cd1c00a Giorgos Verigakis
71 2cd1c00a Giorgos Verigakis
72 2cd1c00a Giorgos Verigakis
Limits
73 2cd1c00a Giorgos Verigakis
------
74 2cd1c00a Giorgos Verigakis
75 2cd1c00a Giorgos Verigakis
 * Limits support is missing.
76 2cd1c00a Giorgos Verigakis
77 2cd1c00a Giorgos Verigakis
78 2cd1c00a Giorgos Verigakis
Efficient Polling with the Changes-Since Parameter
79 2cd1c00a Giorgos Verigakis
--------------------------------------------------
80 2cd1c00a Giorgos Verigakis
81 c3945370 Vangelis Koukis
* We only support the changes-since parameter in **List Servers** and **List
82 c3945370 Vangelis Koukis
  Images**.
83 c3945370 Vangelis Koukis
* We assume that garbage collection of deleted servers will only affect servers
84 c3945370 Vangelis Koukis
  deleted ``POLL_TIME`` seconds in the past or earlier. Else we lose the
85 c3945370 Vangelis Koukis
  information of a server getting deleted.
86 2cd1c00a Giorgos Verigakis
* Images do not support a deleted state, so we can not track deletions.
87 2cd1c00a Giorgos Verigakis
88 2cd1c00a Giorgos Verigakis
89 2cd1c00a Giorgos Verigakis
Versions
90 2cd1c00a Giorgos Verigakis
--------
91 2cd1c00a Giorgos Verigakis
92 2cd1c00a Giorgos Verigakis
* Version MIME type support is missing.
93 2cd1c00a Giorgos Verigakis
* Versionless requests are not supported.
94 c3945370 Vangelis Koukis
* We hardcode the ``updated`` field in versions list
95 2cd1c00a Giorgos Verigakis
* Deployment note: The Atom metadata need to be fixed
96 2cd1c00a Giorgos Verigakis
97 2cd1c00a Giorgos Verigakis
98 2cd1c00a Giorgos Verigakis
Extensions
99 2cd1c00a Giorgos Verigakis
----------
100 2cd1c00a Giorgos Verigakis
101 2cd1c00a Giorgos Verigakis
* Extensions support is missing.
102 2cd1c00a Giorgos Verigakis
103 2cd1c00a Giorgos Verigakis
104 2cd1c00a Giorgos Verigakis
Faults
105 2cd1c00a Giorgos Verigakis
------
106 2cd1c00a Giorgos Verigakis
107 2cd1c00a Giorgos Verigakis
108 2cd1c00a Giorgos Verigakis
API Operations
109 2cd1c00a Giorgos Verigakis
==============
110 2cd1c00a Giorgos Verigakis
111 2cd1c00a Giorgos Verigakis
Servers
112 2cd1c00a Giorgos Verigakis
-------
113 2cd1c00a Giorgos Verigakis
114 c3945370 Vangelis Koukis
* ``hostId`` is always empty.
115 c3945370 Vangelis Koukis
* ``affinityId`` is not returned.
116 c3945370 Vangelis Koukis
* ``progress`` is always returned.
117 c3945370 Vangelis Koukis
* ``self`` and ``bookmark`` atom links are not returned.
118 2cd1c00a Giorgos Verigakis
* **Get Server Details** will also return servers with a DELETED state.
119 2cd1c00a Giorgos Verigakis
* **Create Server** does not support setting the password in the request.
120 2cd1c00a Giorgos Verigakis
121 2cd1c00a Giorgos Verigakis
List Servers
122 2cd1c00a Giorgos Verigakis
............
123 2cd1c00a Giorgos Verigakis
124 c3945370 Vangelis Koukis
* **List Servers** returns just ``id`` and ``name`` if details are not
125 c3945370 Vangelis Koukis
  requested.
126 c3945370 Vangelis Koukis
* **List Servers** can return 304 (even though not explicitly stated) when
127 c3945370 Vangelis Koukis
  ``changes-since`` is given.
128 2cd1c00a Giorgos Verigakis
129 c3945370 Vangelis Koukis
**Example List Servers: JSON**
130 c3945370 Vangelis Koukis
131 c3945370 Vangelis Koukis
.. code-block:: javascript
132 2cd1c00a Giorgos Verigakis
133 2cd1c00a Giorgos Verigakis
  {
134 2cd1c00a Giorgos Verigakis
      'servers':
135 2cd1c00a Giorgos Verigakis
          {'values': [
136 2cd1c00a Giorgos Verigakis
              {
137 2cd1c00a Giorgos Verigakis
                  'addresses': {'values': [
138 2cd1c00a Giorgos Verigakis
                          {
139 2cd1c00a Giorgos Verigakis
                              'id': 'public',
140 2cd1c00a Giorgos Verigakis
                              'mac': 'aa:00:00:49:2e:7e',
141 2cd1c00a Giorgos Verigakis
                              'name': 'public',
142 2cd1c00a Giorgos Verigakis
                              'values': [ {'addr': '192.168.32.6', 'version': 4} ]
143 2cd1c00a Giorgos Verigakis
                          }
144 2cd1c00a Giorgos Verigakis
                  ]},
145 2cd1c00a Giorgos Verigakis
                  'created': '2011-04-19T10:18:52.085737+00:00',
146 2cd1c00a Giorgos Verigakis
                  'flavorRef': 1,
147 2cd1c00a Giorgos Verigakis
                  'hostId': '',
148 2cd1c00a Giorgos Verigakis
                  'id': 1,
149 2cd1c00a Giorgos Verigakis
                  'imageRef': 3,
150 2cd1c00a Giorgos Verigakis
                  'metadata': {'values': {'foo': 'bar'}},
151 2cd1c00a Giorgos Verigakis
                  'name': 'My Server',
152 2cd1c00a Giorgos Verigakis
                  'status': 'ACTIVE',
153 2cd1c00a Giorgos Verigakis
                  'updated': u'2011-05-29T14:07:07.037602+00:00'
154 2cd1c00a Giorgos Verigakis
              },
155 2cd1c00a Giorgos Verigakis
              {
156 2cd1c00a Giorgos Verigakis
                  'addresses': {'values': [
157 2cd1c00a Giorgos Verigakis
                          {
158 2cd1c00a Giorgos Verigakis
                              'id': 'public',
159 2cd1c00a Giorgos Verigakis
                              'mac': 'aa:00:00:91:2f:df',
160 2cd1c00a Giorgos Verigakis
                              'name': 'public',
161 2cd1c00a Giorgos Verigakis
                              'values': [ {'addr': '192.168.32.7', 'version': 4} ]
162 2cd1c00a Giorgos Verigakis
                          },
163 2cd1c00a Giorgos Verigakis
                          {
164 2cd1c00a Giorgos Verigakis
                              'id': '2',
165 2cd1c00a Giorgos Verigakis
                              'mac': 'aa:00:00:c3:69:6f',
166 2cd1c00a Giorgos Verigakis
                              'name': 'private'
167 2cd1c00a Giorgos Verigakis
                          },
168 2cd1c00a Giorgos Verigakis
                  ]},
169 2cd1c00a Giorgos Verigakis
                  'created': '2011-05-02T20:51:08.527759+00:00',
170 2cd1c00a Giorgos Verigakis
                  'flavorRef': 1,
171 2cd1c00a Giorgos Verigakis
                  'hostId': '',
172 2cd1c00a Giorgos Verigakis
                  'id': 2,
173 2cd1c00a Giorgos Verigakis
                  'imageRef': 3,
174 2cd1c00a Giorgos Verigakis
                  'name': 'Other Server',
175 2cd1c00a Giorgos Verigakis
                  'progress': 0,
176 2cd1c00a Giorgos Verigakis
                  'status': 'ACTIVE',
177 2cd1c00a Giorgos Verigakis
                  'updated': '2011-05-29T14:59:11.267087+00:00'
178 2cd1c00a Giorgos Verigakis
              }
179 2cd1c00a Giorgos Verigakis
          ]
180 2cd1c00a Giorgos Verigakis
      }
181 2cd1c00a Giorgos Verigakis
  }
182 2cd1c00a Giorgos Verigakis
183 2cd1c00a Giorgos Verigakis
184 2cd1c00a Giorgos Verigakis
Get Server Stats
185 2cd1c00a Giorgos Verigakis
................
186 2cd1c00a Giorgos Verigakis
187 2cd1c00a Giorgos Verigakis
**GET** /servers/*id*/stats
188 2cd1c00a Giorgos Verigakis
189 2cd1c00a Giorgos Verigakis
**Normal Response Code**: 200
190 2cd1c00a Giorgos Verigakis
191 c3945370 Vangelis Koukis
**Error Response Codes**: computeFault (400, 500), serviceUnavailable (503),
192 c3945370 Vangelis Koukis
unauthorized (401), badRequest (400), itemNotFound (404), overLimit (413)
193 2cd1c00a Giorgos Verigakis
194 c3945370 Vangelis Koukis
This operation returns URLs to graphs showing CPU and Network statistics. A
195 c3945370 Vangelis Koukis
``refresh`` attribute is returned as well that is the recommended refresh rate
196 c3945370 Vangelis Koukis
of the stats for the clients.
197 2cd1c00a Giorgos Verigakis
198 2cd1c00a Giorgos Verigakis
This operation does not require a request body.
199 2cd1c00a Giorgos Verigakis
200 c3945370 Vangelis Koukis
**Example Get Server Stats Response: JSON**:
201 c3945370 Vangelis Koukis
202 c3945370 Vangelis Koukis
.. code-block:: javascript
203 2cd1c00a Giorgos Verigakis
204 2cd1c00a Giorgos Verigakis
  {
205 2cd1c00a Giorgos Verigakis
      "stats": {
206 2cd1c00a Giorgos Verigakis
          "serverRef": 1,
207 2cd1c00a Giorgos Verigakis
          "refresh": 60,
208 2cd1c00a Giorgos Verigakis
          "cpuBar": "http://stats.okeanos.grnet.gr/b9a1c3ca7e3b9fce75112c43565fb9960b16048c/cpu-bar.png",
209 2cd1c00a Giorgos Verigakis
          "cpuTimeSeries": "http://stats.okeanos.grnet.gr/b9a1c3ca7e3b9fce75112c43565fb9960b16048c/cpu-ts.png",
210 2cd1c00a Giorgos Verigakis
          "netBar": "http://stats.okeanos.grnet.gr/b9a1c3ca7e3b9fce75112c43565fb9960b16048c/net-bar.png",
211 2cd1c00a Giorgos Verigakis
          "netTimeSeries": "http://stats.okeanos.grnet.gr/b9a1c3ca7e3b9fce75112c43565fb9960b16048c/net-ts.png"
212 2cd1c00a Giorgos Verigakis
      }
213 2cd1c00a Giorgos Verigakis
  }
214 2cd1c00a Giorgos Verigakis
215 c3945370 Vangelis Koukis
**Example Get Network Details Response: XML**:
216 c3945370 Vangelis Koukis
217 c3945370 Vangelis Koukis
.. code-block:: xml
218 2cd1c00a Giorgos Verigakis
219 2cd1c00a Giorgos Verigakis
  <?xml version="1.0" encoding="UTF-8"?>
220 2cd1c00a Giorgos Verigakis
  <stats xmlns="http://docs.openstack.org/compute/api/v1.1" xmlns:atom="http://www.w3.org/2005/Atom"
221 2cd1c00a Giorgos Verigakis
      serverRef="1"
222 2cd1c00a Giorgos Verigakis
      refresh="60"
223 2cd1c00a Giorgos Verigakis
      cpuBar="http://stats.okeanos.grnet.gr/b9a1c3ca7e3b9fce75112c43565fb9960b16048c/cpu-bar.png"
224 2cd1c00a Giorgos Verigakis
      cpuTimeSeries="http://stats.okeanos.grnet.gr/b9a1c3ca7e3b9fce75112c43565fb9960b16048c/cpu-ts.png"
225 2cd1c00a Giorgos Verigakis
      netBar="http://stats.okeanos.grnet.gr/b9a1c3ca7e3b9fce75112c43565fb9960b16048c/net-bar.png"
226 2cd1c00a Giorgos Verigakis
      netTimeSeries="http://stats.okeanos.grnet.gr/b9a1c3ca7e3b9fce75112c43565fb9960b16048c/net-ts.png">
227 2cd1c00a Giorgos Verigakis
  </stats>
228 2cd1c00a Giorgos Verigakis
229 2cd1c00a Giorgos Verigakis
230 2cd1c00a Giorgos Verigakis
Server Addresses
231 2cd1c00a Giorgos Verigakis
----------------
232 2cd1c00a Giorgos Verigakis
233 2cd1c00a Giorgos Verigakis
Server Actions
234 2cd1c00a Giorgos Verigakis
--------------
235 2cd1c00a Giorgos Verigakis
236 2cd1c00a Giorgos Verigakis
* **Change Password** is not supported.
237 2cd1c00a Giorgos Verigakis
* **Rebuild Server** is not supported.
238 2cd1c00a Giorgos Verigakis
* **Resize Server** is not supported.
239 2cd1c00a Giorgos Verigakis
* **Confirm Resized Server** is not supported.
240 2cd1c00a Giorgos Verigakis
* **Revert Resized Server** is not supported.
241 2cd1c00a Giorgos Verigakis
242 2cd1c00a Giorgos Verigakis
We have have extended the API with the following commands:
243 2cd1c00a Giorgos Verigakis
244 2cd1c00a Giorgos Verigakis
245 2cd1c00a Giorgos Verigakis
Start Server
246 2cd1c00a Giorgos Verigakis
............
247 2cd1c00a Giorgos Verigakis
248 2cd1c00a Giorgos Verigakis
**Normal Response Code**: 202
249 2cd1c00a Giorgos Verigakis
250 2cd1c00a Giorgos Verigakis
**Error Response Codes**: serviceUnavailable (503), itemNotFound (404)
251 2cd1c00a Giorgos Verigakis
252 2cd1c00a Giorgos Verigakis
The start function transitions a server from an ACTIVE to a STOPPED state.
253 2cd1c00a Giorgos Verigakis
254 c3945370 Vangelis Koukis
**Example Action Start: JSON**:
255 c3945370 Vangelis Koukis
256 c3945370 Vangelis Koukis
.. code-block:: javascript
257 2cd1c00a Giorgos Verigakis
258 2cd1c00a Giorgos Verigakis
  {
259 2cd1c00a Giorgos Verigakis
      "start": {}
260 2cd1c00a Giorgos Verigakis
  }
261 2cd1c00a Giorgos Verigakis
262 2cd1c00a Giorgos Verigakis
This operation does not return a response body.
263 2cd1c00a Giorgos Verigakis
264 2cd1c00a Giorgos Verigakis
265 2cd1c00a Giorgos Verigakis
Shutdown Server
266 2cd1c00a Giorgos Verigakis
...............
267 2cd1c00a Giorgos Verigakis
268 2cd1c00a Giorgos Verigakis
**Normal Response Code**: 202
269 2cd1c00a Giorgos Verigakis
270 2cd1c00a Giorgos Verigakis
**Error Response Codes**: serviceUnavailable (503), itemNotFound (404)
271 2cd1c00a Giorgos Verigakis
272 2cd1c00a Giorgos Verigakis
The start function transitions a server from a STOPPED to an ACTIVE state.
273 2cd1c00a Giorgos Verigakis
274 c3945370 Vangelis Koukis
**Example Action Shutdown: JSON**:
275 c3945370 Vangelis Koukis
276 c3945370 Vangelis Koukis
.. code-block:: javascript
277 2cd1c00a Giorgos Verigakis
278 2cd1c00a Giorgos Verigakis
  {
279 2cd1c00a Giorgos Verigakis
      "shutdown": {}
280 2cd1c00a Giorgos Verigakis
  }
281 2cd1c00a Giorgos Verigakis
282 2cd1c00a Giorgos Verigakis
This operation does not return a response body.
283 2cd1c00a Giorgos Verigakis
284 2cd1c00a Giorgos Verigakis
285 2cd1c00a Giorgos Verigakis
Get Server Console
286 2cd1c00a Giorgos Verigakis
287 2cd1c00a Giorgos Verigakis
**Normal Response Code**: 200
288 2cd1c00a Giorgos Verigakis
289 2cd1c00a Giorgos Verigakis
**Error Response Codes**: computeFault (400, 500), serviceUnavailable (503), unauthorized (401), badRequest (400), badMediaType(415), itemNotFound (404), buildInProgress (409), overLimit (413)
290 2cd1c00a Giorgos Verigakis
291 2cd1c00a Giorgos Verigakis
The console function arranges for an OOB console of the specified type. Only consoles of type "vnc" are supported for now.
292 2cd1c00a Giorgos Verigakis
    
293 2cd1c00a Giorgos Verigakis
It uses a running instance of vncauthproxy to setup proper VNC forwarding with a random password, then returns the necessary VNC connection info to the caller.
294 2cd1c00a Giorgos Verigakis
295 c3945370 Vangelis Koukis
**Example Action Console: JSON**:
296 c3945370 Vangelis Koukis
297 c3945370 Vangelis Koukis
.. code-block:: javascript
298 2cd1c00a Giorgos Verigakis
299 2cd1c00a Giorgos Verigakis
  {
300 2cd1c00a Giorgos Verigakis
      "console": {
301 2cd1c00a Giorgos Verigakis
          "type": "vnc"
302 2cd1c00a Giorgos Verigakis
      }
303 2cd1c00a Giorgos Verigakis
  }
304 2cd1c00a Giorgos Verigakis
305 c3945370 Vangelis Koukis
**Example Action Console Response: JSON**:
306 c3945370 Vangelis Koukis
307 c3945370 Vangelis Koukis
.. code-block:: javascript
308 2cd1c00a Giorgos Verigakis
309 2cd1c00a Giorgos Verigakis
  {
310 2cd1c00a Giorgos Verigakis
      "console": {
311 2cd1c00a Giorgos Verigakis
          "type": "vnc",
312 2cd1c00a Giorgos Verigakis
          "host": "vm42.ocean.grnet.gr",
313 2cd1c00a Giorgos Verigakis
          "port": 1234,
314 2cd1c00a Giorgos Verigakis
          "password": "IN9RNmaV"
315 2cd1c00a Giorgos Verigakis
      }
316 2cd1c00a Giorgos Verigakis
  }
317 2cd1c00a Giorgos Verigakis
318 c3945370 Vangelis Koukis
**Example Action Console Response: XML**:
319 c3945370 Vangelis Koukis
320 c3945370 Vangelis Koukis
.. code-block:: xml
321 2cd1c00a Giorgos Verigakis
322 2cd1c00a Giorgos Verigakis
  <?xml version="1.0" encoding="UTF-8"?>
323 2cd1c00a Giorgos Verigakis
  <console xmlns="http://docs.openstack.org/compute/api/v1.1" xmlns:atom="http://www.w3.org/2005/Atom"
324 2cd1c00a Giorgos Verigakis
      type="vnc"
325 2cd1c00a Giorgos Verigakis
      host="vm42.ocean.grnet.gr"
326 2cd1c00a Giorgos Verigakis
      port="1234"
327 2cd1c00a Giorgos Verigakis
      password="IN9RNmaV">
328 2cd1c00a Giorgos Verigakis
  </console>
329 2cd1c00a Giorgos Verigakis
330 2cd1c00a Giorgos Verigakis
331 2cd1c00a Giorgos Verigakis
Set Firewall Profile
332 2cd1c00a Giorgos Verigakis
....................
333 2cd1c00a Giorgos Verigakis
334 2cd1c00a Giorgos Verigakis
**Normal Response Code**: 202
335 2cd1c00a Giorgos Verigakis
336 c3945370 Vangelis Koukis
**Error Response Codes**: computeFault (400, 500), serviceUnavailable (503),
337 c3945370 Vangelis Koukis
unauthorized (401), badRequest (400), badMediaType(415), itemNotFound (404),
338 c3945370 Vangelis Koukis
buildInProgress (409), overLimit (413)
339 2cd1c00a Giorgos Verigakis
340 c3945370 Vangelis Koukis
The firewallProfile function sets a firewall profile for the public interface
341 c3945370 Vangelis Koukis
of a server.
342 2cd1c00a Giorgos Verigakis
343 2cd1c00a Giorgos Verigakis
The allowed profiles are: **ENABLED**, **DISABLED** and **PROTECTED**.
344 2cd1c00a Giorgos Verigakis
345 c3945370 Vangelis Koukis
**Example Action firewallProfile: JSON**:
346 c3945370 Vangelis Koukis
347 c3945370 Vangelis Koukis
.. code-block:: javascript
348 2cd1c00a Giorgos Verigakis
349 2cd1c00a Giorgos Verigakis
  {
350 2cd1c00a Giorgos Verigakis
      "firewallProfile": {
351 2cd1c00a Giorgos Verigakis
          "profile": "ENABLED"
352 2cd1c00a Giorgos Verigakis
      }
353 2cd1c00a Giorgos Verigakis
  }
354 2cd1c00a Giorgos Verigakis
355 2cd1c00a Giorgos Verigakis
This operation does not return a response body.
356 2cd1c00a Giorgos Verigakis
357 2cd1c00a Giorgos Verigakis
358 2cd1c00a Giorgos Verigakis
Flavors
359 2cd1c00a Giorgos Verigakis
-------
360 2cd1c00a Giorgos Verigakis
361 c3945370 Vangelis Koukis
* ``self`` and ``bookmark`` atom links are not returned.
362 c3945370 Vangelis Koukis
* **List Flavors** returns just ``id`` and ``name`` if details is not requested.
363 2cd1c00a Giorgos Verigakis
364 2cd1c00a Giorgos Verigakis
365 2cd1c00a Giorgos Verigakis
Images
366 2cd1c00a Giorgos Verigakis
------
367 2cd1c00a Giorgos Verigakis
368 c3945370 Vangelis Koukis
* ``progress`` is always returned.
369 c3945370 Vangelis Koukis
* ``self`` and ``bookmark`` atom links are not returned.
370 c3945370 Vangelis Koukis
* **List Images** returns just ``id`` and ``name`` if details are not requested.
371 c3945370 Vangelis Koukis
* **List Images** can return 304 (even though not explicitly stated) when
372 c3945370 Vangelis Koukis
  ``changes-since`` is given. 
373 c3945370 Vangelis Koukis
* **List Images** does not return deleted images when ``changes-since`` is given.
374 2cd1c00a Giorgos Verigakis
375 2cd1c00a Giorgos Verigakis
376 2cd1c00a Giorgos Verigakis
Metadata
377 2cd1c00a Giorgos Verigakis
--------
378 2cd1c00a Giorgos Verigakis
379 c3945370 Vangelis Koukis
* **Update Server Metadata** and **Update Image Metadata** will only return the
380 c3945370 Vangelis Koukis
  metadata that were updated (some could have been skipped).
381 2cd1c00a Giorgos Verigakis
382 2cd1c00a Giorgos Verigakis
383 2cd1c00a Giorgos Verigakis
Networks
384 2cd1c00a Giorgos Verigakis
--------
385 2cd1c00a Giorgos Verigakis
386 2cd1c00a Giorgos Verigakis
This is an extension to the OpenStack API.
387 2cd1c00a Giorgos Verigakis
388 c3945370 Vangelis Koukis
A Server can connect to one or more networks identified by a numeric id. Each
389 c3945370 Vangelis Koukis
user has access only to networks created by himself. When a network is deleted,
390 c3945370 Vangelis Koukis
all connections to it are deleted. Likewise, when a server is deleted, all
391 c3945370 Vangelis Koukis
connections of that server are deleted.
392 2cd1c00a Giorgos Verigakis
393 c3945370 Vangelis Koukis
There is a special **public** network with the id *public* that can be accessed
394 c3945370 Vangelis Koukis
at */networks/public*. All servers are connected to **public** by default and
395 c3945370 Vangelis Koukis
this network can not be deleted or modified in any way.
396 2cd1c00a Giorgos Verigakis
397 2cd1c00a Giorgos Verigakis
398 2cd1c00a Giorgos Verigakis
List Networks
399 2cd1c00a Giorgos Verigakis
.............
400 2cd1c00a Giorgos Verigakis
401 2cd1c00a Giorgos Verigakis
**GET** /networks
402 2cd1c00a Giorgos Verigakis
403 2cd1c00a Giorgos Verigakis
**GET** /networks/detail
404 2cd1c00a Giorgos Verigakis
405 2cd1c00a Giorgos Verigakis
**Normal Response Codes**: 200, 203
406 2cd1c00a Giorgos Verigakis
407 c3945370 Vangelis Koukis
**Error Response Codes**: computeFault (400, 500), serviceUnavailable (503),
408 c3945370 Vangelis Koukis
unauthorized (401), badRequest (400), overLimit (413)
409 2cd1c00a Giorgos Verigakis
410 2cd1c00a Giorgos Verigakis
This operation provides a list of private networks associated with your account.
411 2cd1c00a Giorgos Verigakis
412 2cd1c00a Giorgos Verigakis
This operation does not require a request body.
413 2cd1c00a Giorgos Verigakis
414 c3945370 Vangelis Koukis
**Example Networks List Response: JSON (detail)**:
415 c3945370 Vangelis Koukis
416 c3945370 Vangelis Koukis
.. code-block:: javascript
417 2cd1c00a Giorgos Verigakis
418 2cd1c00a Giorgos Verigakis
  {
419 2cd1c00a Giorgos Verigakis
      "networks": {
420 2cd1c00a Giorgos Verigakis
          "values": [
421 2cd1c00a Giorgos Verigakis
              {
422 2cd1c00a Giorgos Verigakis
                  "id": "public",
423 2cd1c00a Giorgos Verigakis
                  "name": "public",
424 2cd1c00a Giorgos Verigakis
                  "created": "2011-04-20T15:31:08.199640+00:00",
425 2cd1c00a Giorgos Verigakis
                  "updated": "2011-05-06T12:47:05.582679+00:00",
426 2cd1c00a Giorgos Verigakis
                  "servers": {
427 2cd1c00a Giorgos Verigakis
                      "values": [1, 2, 3]
428 2cd1c00a Giorgos Verigakis
                  }
429 2cd1c00a Giorgos Verigakis
              },
430 2cd1c00a Giorgos Verigakis
              {
431 2cd1c00a Giorgos Verigakis
                  "id": 2,
432 2cd1c00a Giorgos Verigakis
                  "name": "private",
433 2cd1c00a Giorgos Verigakis
                  "created": "2011-04-20T14:32:08.199640+00:00",
434 2cd1c00a Giorgos Verigakis
                  "updated": "2011-05-06T11:40:05.582679+00:00",
435 2cd1c00a Giorgos Verigakis
                  "servers": {
436 2cd1c00a Giorgos Verigakis
                      "values": [1]
437 2cd1c00a Giorgos Verigakis
                  }
438 2cd1c00a Giorgos Verigakis
              }
439 2cd1c00a Giorgos Verigakis
          ]
440 2cd1c00a Giorgos Verigakis
      }
441 2cd1c00a Giorgos Verigakis
  }
442 2cd1c00a Giorgos Verigakis
443 c3945370 Vangelis Koukis
**Example Networks List Response: XML (detail)**:
444 c3945370 Vangelis Koukis
445 c3945370 Vangelis Koukis
.. code-block:: xml
446 2cd1c00a Giorgos Verigakis
447 2cd1c00a Giorgos Verigakis
  <?xml version="1.0" encoding="UTF-8"?>
448 2cd1c00a Giorgos Verigakis
  <networks xmlns="http://docs.openstack.org/compute/api/v1.1" xmlns:atom="http://www.w3.org/2005/Atom">
449 2cd1c00a Giorgos Verigakis
    <network id="public" name="public" updated="2011-05-02T21:33:25.606672+00:00" created="2011-04-20T15:31:08.199640+00:00">
450 2cd1c00a Giorgos Verigakis
      <servers>
451 2cd1c00a Giorgos Verigakis
        <server id="1"></server>
452 2cd1c00a Giorgos Verigakis
        <server id="2"></server>
453 2cd1c00a Giorgos Verigakis
        <server id="3"></server>
454 2cd1c00a Giorgos Verigakis
      </servers>
455 2cd1c00a Giorgos Verigakis
    </network>
456 2cd1c00a Giorgos Verigakis
    <network id="2" name="private" updated="2011-05-06T12:47:05.582679+00:00" created="2011-04-20T15:31:33.911299+00:00">
457 2cd1c00a Giorgos Verigakis
      <servers>
458 2cd1c00a Giorgos Verigakis
        <server id="1"></server>
459 2cd1c00a Giorgos Verigakis
      </servers>
460 2cd1c00a Giorgos Verigakis
    </network>
461 2cd1c00a Giorgos Verigakis
  </networks>
462 2cd1c00a Giorgos Verigakis
463 2cd1c00a Giorgos Verigakis
464 2cd1c00a Giorgos Verigakis
Create Network
465 2cd1c00a Giorgos Verigakis
..............
466 2cd1c00a Giorgos Verigakis
467 2cd1c00a Giorgos Verigakis
**POST** /networks
468 2cd1c00a Giorgos Verigakis
469 2cd1c00a Giorgos Verigakis
**Normal Response Code**: 202
470 2cd1c00a Giorgos Verigakis
471 c3945370 Vangelis Koukis
**Error Response Codes**: computeFault (400, 500), serviceUnavailable (503),
472 c3945370 Vangelis Koukis
unauthorized (401), badMediaType(415), badRequest (400), overLimit (413)
473 2cd1c00a Giorgos Verigakis
474 2cd1c00a Giorgos Verigakis
This operation asynchronously provisions a new private network.
475 2cd1c00a Giorgos Verigakis
476 c3945370 Vangelis Koukis
**Example Create Network Request: JSON**:
477 c3945370 Vangelis Koukis
478 c3945370 Vangelis Koukis
.. code-block:: javascript
479 2cd1c00a Giorgos Verigakis
480 2cd1c00a Giorgos Verigakis
  {
481 2cd1c00a Giorgos Verigakis
      "network": {
482 2cd1c00a Giorgos Verigakis
          "name": "private_net",
483 2cd1c00a Giorgos Verigakis
      }
484 2cd1c00a Giorgos Verigakis
  }
485 2cd1c00a Giorgos Verigakis
486 c3945370 Vangelis Koukis
**Example Create Network Response: JSON**:
487 c3945370 Vangelis Koukis
488 c3945370 Vangelis Koukis
.. code-block:: javascript
489 2cd1c00a Giorgos Verigakis
490 2cd1c00a Giorgos Verigakis
  {
491 2cd1c00a Giorgos Verigakis
      "network": {
492 2cd1c00a Giorgos Verigakis
          "id": 3,
493 2cd1c00a Giorgos Verigakis
          "name": "private_net",
494 2cd1c00a Giorgos Verigakis
          "created": "2011-04-20T15:31:08.199640+00:00",
495 2cd1c00a Giorgos Verigakis
          "servers": {
496 2cd1c00a Giorgos Verigakis
              "values": []
497 2cd1c00a Giorgos Verigakis
          }
498 2cd1c00a Giorgos Verigakis
      }
499 2cd1c00a Giorgos Verigakis
  }
500 2cd1c00a Giorgos Verigakis
501 c3945370 Vangelis Koukis
**Example Create Network Response: XML**:
502 c3945370 Vangelis Koukis
503 c3945370 Vangelis Koukis
.. code-block:: xml
504 2cd1c00a Giorgos Verigakis
505 2cd1c00a Giorgos Verigakis
  <?xml version="1.0" encoding="UTF-8"?>
506 2cd1c00a Giorgos Verigakis
  <network xmlns="http://docs.openstack.org/compute/api/v1.1" xmlns:atom="http://www.w3.org/2005/Atom"
507 2cd1c00a Giorgos Verigakis
   id="2" name="foob" created="2011-04-20T15:31:08.199640+00:00">
508 2cd1c00a Giorgos Verigakis
    <servers>
509 2cd1c00a Giorgos Verigakis
    </servers>
510 2cd1c00a Giorgos Verigakis
  </network>
511 2cd1c00a Giorgos Verigakis
512 2cd1c00a Giorgos Verigakis
513 2cd1c00a Giorgos Verigakis
Get Network Details
514 2cd1c00a Giorgos Verigakis
...................
515 2cd1c00a Giorgos Verigakis
516 2cd1c00a Giorgos Verigakis
**GET** /networks/*id*
517 2cd1c00a Giorgos Verigakis
518 2cd1c00a Giorgos Verigakis
**Normal Response Codes**: 200, 203
519 2cd1c00a Giorgos Verigakis
520 c3945370 Vangelis Koukis
**Error Response Codes**: computeFault (400, 500), serviceUnavailable (503),
521 c3945370 Vangelis Koukis
unauthorized (401), badRequest (400), itemNotFound (404), overLimit (413)
522 2cd1c00a Giorgos Verigakis
523 2cd1c00a Giorgos Verigakis
This operation returns the details of a specific network by its id.
524 2cd1c00a Giorgos Verigakis
525 2cd1c00a Giorgos Verigakis
This operation does not require a request body.
526 2cd1c00a Giorgos Verigakis
527 c3945370 Vangelis Koukis
**Example Get Network Details Response: JSON**:
528 c3945370 Vangelis Koukis
529 c3945370 Vangelis Koukis
.. code-block:: javascript
530 2cd1c00a Giorgos Verigakis
531 2cd1c00a Giorgos Verigakis
  {
532 2cd1c00a Giorgos Verigakis
      "network": {
533 2cd1c00a Giorgos Verigakis
          "id": 3,
534 2cd1c00a Giorgos Verigakis
          "name": "private_net",
535 2cd1c00a Giorgos Verigakis
          "servers": {
536 2cd1c00a Giorgos Verigakis
              "values": [1, 7]
537 2cd1c00a Giorgos Verigakis
          }
538 2cd1c00a Giorgos Verigakis
      }
539 2cd1c00a Giorgos Verigakis
  }
540 2cd1c00a Giorgos Verigakis
541 2cd1c00a Giorgos Verigakis
**Example Get Network Details Response: XML**::
542 2cd1c00a Giorgos Verigakis
543 2cd1c00a Giorgos Verigakis
  <?xml version="1.0" encoding="UTF-8"?>
544 2cd1c00a Giorgos Verigakis
  <network xmlns="http://docs.openstack.org/compute/api/v1.1" xmlns:atom="http://www.w3.org/2005/Atom"
545 2cd1c00a Giorgos Verigakis
   id="2" name="foob" updated="2011-05-02T21:33:25.606672+00:00" created="2011-04-20T15:31:08.199640+00:00">
546 2cd1c00a Giorgos Verigakis
    <servers>
547 2cd1c00a Giorgos Verigakis
      <server id="1"></server>
548 2cd1c00a Giorgos Verigakis
      <server id="7"></server>
549 2cd1c00a Giorgos Verigakis
    </servers>
550 2cd1c00a Giorgos Verigakis
  </network>
551 2cd1c00a Giorgos Verigakis
552 2cd1c00a Giorgos Verigakis
553 2cd1c00a Giorgos Verigakis
Update Network Name
554 2cd1c00a Giorgos Verigakis
...................
555 2cd1c00a Giorgos Verigakis
556 2cd1c00a Giorgos Verigakis
**PUT** /networks/*id*
557 2cd1c00a Giorgos Verigakis
558 2cd1c00a Giorgos Verigakis
**Normal Response Code**: 204
559 2cd1c00a Giorgos Verigakis
560 c3945370 Vangelis Koukis
**Error Response Codes**: computeFault (400, 500), serviceUnavailable (503),
561 c3945370 Vangelis Koukis
unauthorized (401), badRequest (400), badMediaType(415), itemNotFound (404),
562 c3945370 Vangelis Koukis
overLimit (413) 
563 2cd1c00a Giorgos Verigakis
564 2cd1c00a Giorgos Verigakis
This operation changes the name of the network in the Compute system.
565 2cd1c00a Giorgos Verigakis
566 301294a9 Constantinos Venetsanopoulos
**Example Update Network Name Request: JSON**:
567 2cd1c00a Giorgos Verigakis
568 c3945370 Vangelis Koukis
.. code-block:: javascript
569 c3945370 Vangelis Koukis
570 2cd1c00a Giorgos Verigakis
  {
571 2cd1c00a Giorgos Verigakis
      "network": {
572 2cd1c00a Giorgos Verigakis
          "name": "new_name"
573 2cd1c00a Giorgos Verigakis
      }
574 2cd1c00a Giorgos Verigakis
  }
575 2cd1c00a Giorgos Verigakis
576 2cd1c00a Giorgos Verigakis
This operation does not contain a response body.
577 2cd1c00a Giorgos Verigakis
578 2cd1c00a Giorgos Verigakis
579 2cd1c00a Giorgos Verigakis
Delete Network
580 2cd1c00a Giorgos Verigakis
..............
581 2cd1c00a Giorgos Verigakis
582 2cd1c00a Giorgos Verigakis
**DELETE** /networks/*id*
583 2cd1c00a Giorgos Verigakis
584 2cd1c00a Giorgos Verigakis
**Normal Response Code**: 204
585 2cd1c00a Giorgos Verigakis
586 c3945370 Vangelis Koukis
**Error Response Codes**: computeFault (400, 500), serviceUnavailable (503),
587 c3945370 Vangelis Koukis
unauthorized (401), itemNotFound (404), unauthorized (401), overLimit (413) 
588 2cd1c00a Giorgos Verigakis
589 2cd1c00a Giorgos Verigakis
This operation deletes a network from the system.
590 2cd1c00a Giorgos Verigakis
591 2cd1c00a Giorgos Verigakis
This operation does not require a request or a response body.
592 2cd1c00a Giorgos Verigakis
593 2cd1c00a Giorgos Verigakis
594 2cd1c00a Giorgos Verigakis
Network Actions
595 2cd1c00a Giorgos Verigakis
---------------
596 2cd1c00a Giorgos Verigakis
597 2cd1c00a Giorgos Verigakis
Add Server
598 2cd1c00a Giorgos Verigakis
..........
599 2cd1c00a Giorgos Verigakis
600 2cd1c00a Giorgos Verigakis
**POST** /networks/*id*/action
601 2cd1c00a Giorgos Verigakis
602 2cd1c00a Giorgos Verigakis
**Normal Response Code**: 202
603 2cd1c00a Giorgos Verigakis
604 c3945370 Vangelis Koukis
**Error Response Codes**: computeFault (400, 500), serviceUnavailable (503),
605 c3945370 Vangelis Koukis
unauthorized (401), badRequest (400), badMediaType(415), itemNotFound (404),
606 c3945370 Vangelis Koukis
overLimit (413)
607 2cd1c00a Giorgos Verigakis
608 2cd1c00a Giorgos Verigakis
This operation adds a server to the specified network.
609 2cd1c00a Giorgos Verigakis
610 c3945370 Vangelis Koukis
**Example Action Add: JSON**:
611 c3945370 Vangelis Koukis
612 c3945370 Vangelis Koukis
.. code-block:: javascript
613 2cd1c00a Giorgos Verigakis
614 2cd1c00a Giorgos Verigakis
  {
615 2cd1c00a Giorgos Verigakis
      "add" : {
616 2cd1c00a Giorgos Verigakis
          "serverRef" : 42
617 2cd1c00a Giorgos Verigakis
      }
618 2cd1c00a Giorgos Verigakis
  }
619 2cd1c00a Giorgos Verigakis
620 2cd1c00a Giorgos Verigakis
This operation does not contain a response body.
621 2cd1c00a Giorgos Verigakis
622 2cd1c00a Giorgos Verigakis
623 2cd1c00a Giorgos Verigakis
Remove Server
624 2cd1c00a Giorgos Verigakis
.............
625 2cd1c00a Giorgos Verigakis
626 2cd1c00a Giorgos Verigakis
**POST** /networks/*id*/action
627 2cd1c00a Giorgos Verigakis
628 2cd1c00a Giorgos Verigakis
**Normal Response Code**: 202
629 2cd1c00a Giorgos Verigakis
630 c3945370 Vangelis Koukis
**Error Response Codes**: computeFault (400, 500), serviceUnavailable (503),
631 c3945370 Vangelis Koukis
unauthorized (401), badRequest (400), badMediaType(415), itemNotFound (404),
632 c3945370 Vangelis Koukis
overLimit (413)
633 2cd1c00a Giorgos Verigakis
634 2cd1c00a Giorgos Verigakis
This operation removes a server from the specified network.
635 2cd1c00a Giorgos Verigakis
636 c3945370 Vangelis Koukis
**Example Action Remove: JSON**:
637 c3945370 Vangelis Koukis
638 c3945370 Vangelis Koukis
.. code-block:: javascript
639 2cd1c00a Giorgos Verigakis
640 2cd1c00a Giorgos Verigakis
  {
641 2cd1c00a Giorgos Verigakis
      "remove" : {
642 2cd1c00a Giorgos Verigakis
          "serverRef" : 42
643 2cd1c00a Giorgos Verigakis
      }
644 2cd1c00a Giorgos Verigakis
  }
645 2cd1c00a Giorgos Verigakis
646 2cd1c00a Giorgos Verigakis
This operation does not contain a response body.