Statistics
| Branch: | Tag: | Revision:

root / docs / cyclades-api-guide.rst @ 2c85833e

History | View | Annotate | Download (16.2 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 c3945370 Vangelis Koukis
* **Create Server** ignores ``personality`` of requests.
120 2cd1c00a Giorgos Verigakis
* **Create Server** ignores the disk size of the flavor.
121 2cd1c00a Giorgos Verigakis
* **Create Server** hardcodes the OS.
122 2cd1c00a Giorgos Verigakis
* **Create Server** does not support setting the password in the request.
123 2cd1c00a Giorgos Verigakis
124 2cd1c00a Giorgos Verigakis
List Servers
125 2cd1c00a Giorgos Verigakis
............
126 2cd1c00a Giorgos Verigakis
127 c3945370 Vangelis Koukis
* **List Servers** returns just ``id`` and ``name`` if details are not
128 c3945370 Vangelis Koukis
  requested.
129 c3945370 Vangelis Koukis
* **List Servers** can return 304 (even though not explicitly stated) when
130 c3945370 Vangelis Koukis
  ``changes-since`` is given.
131 2cd1c00a Giorgos Verigakis
132 c3945370 Vangelis Koukis
**Example List Servers: JSON**
133 c3945370 Vangelis Koukis
134 c3945370 Vangelis Koukis
.. code-block:: javascript
135 2cd1c00a Giorgos Verigakis
136 2cd1c00a Giorgos Verigakis
  {
137 2cd1c00a Giorgos Verigakis
      'servers':
138 2cd1c00a Giorgos Verigakis
          {'values': [
139 2cd1c00a Giorgos Verigakis
              {
140 2cd1c00a Giorgos Verigakis
                  'addresses': {'values': [
141 2cd1c00a Giorgos Verigakis
                          {
142 2cd1c00a Giorgos Verigakis
                              'id': 'public',
143 2cd1c00a Giorgos Verigakis
                              'mac': 'aa:00:00:49:2e:7e',
144 2cd1c00a Giorgos Verigakis
                              'name': 'public',
145 2cd1c00a Giorgos Verigakis
                              'values': [ {'addr': '192.168.32.6', 'version': 4} ]
146 2cd1c00a Giorgos Verigakis
                          }
147 2cd1c00a Giorgos Verigakis
                  ]},
148 2cd1c00a Giorgos Verigakis
                  'created': '2011-04-19T10:18:52.085737+00:00',
149 2cd1c00a Giorgos Verigakis
                  'flavorRef': 1,
150 2cd1c00a Giorgos Verigakis
                  'hostId': '',
151 2cd1c00a Giorgos Verigakis
                  'id': 1,
152 2cd1c00a Giorgos Verigakis
                  'imageRef': 3,
153 2cd1c00a Giorgos Verigakis
                  'metadata': {'values': {'foo': 'bar'}},
154 2cd1c00a Giorgos Verigakis
                  'name': 'My Server',
155 2cd1c00a Giorgos Verigakis
                  'status': 'ACTIVE',
156 2cd1c00a Giorgos Verigakis
                  'updated': u'2011-05-29T14:07:07.037602+00:00'
157 2cd1c00a Giorgos Verigakis
              },
158 2cd1c00a Giorgos Verigakis
              {
159 2cd1c00a Giorgos Verigakis
                  'addresses': {'values': [
160 2cd1c00a Giorgos Verigakis
                          {
161 2cd1c00a Giorgos Verigakis
                              'id': 'public',
162 2cd1c00a Giorgos Verigakis
                              'mac': 'aa:00:00:91:2f:df',
163 2cd1c00a Giorgos Verigakis
                              'name': 'public',
164 2cd1c00a Giorgos Verigakis
                              'values': [ {'addr': '192.168.32.7', 'version': 4} ]
165 2cd1c00a Giorgos Verigakis
                          },
166 2cd1c00a Giorgos Verigakis
                          {
167 2cd1c00a Giorgos Verigakis
                              'id': '2',
168 2cd1c00a Giorgos Verigakis
                              'mac': 'aa:00:00:c3:69:6f',
169 2cd1c00a Giorgos Verigakis
                              'name': 'private'
170 2cd1c00a Giorgos Verigakis
                          },
171 2cd1c00a Giorgos Verigakis
                  ]},
172 2cd1c00a Giorgos Verigakis
                  'created': '2011-05-02T20:51:08.527759+00:00',
173 2cd1c00a Giorgos Verigakis
                  'flavorRef': 1,
174 2cd1c00a Giorgos Verigakis
                  'hostId': '',
175 2cd1c00a Giorgos Verigakis
                  'id': 2,
176 2cd1c00a Giorgos Verigakis
                  'imageRef': 3,
177 2cd1c00a Giorgos Verigakis
                  'name': 'Other Server',
178 2cd1c00a Giorgos Verigakis
                  'progress': 0,
179 2cd1c00a Giorgos Verigakis
                  'status': 'ACTIVE',
180 2cd1c00a Giorgos Verigakis
                  'updated': '2011-05-29T14:59:11.267087+00:00'
181 2cd1c00a Giorgos Verigakis
              }
182 2cd1c00a Giorgos Verigakis
          ]
183 2cd1c00a Giorgos Verigakis
      }
184 2cd1c00a Giorgos Verigakis
  }
185 2cd1c00a Giorgos Verigakis
186 2cd1c00a Giorgos Verigakis
187 2cd1c00a Giorgos Verigakis
Get Server Stats
188 2cd1c00a Giorgos Verigakis
................
189 2cd1c00a Giorgos Verigakis
190 2cd1c00a Giorgos Verigakis
**GET** /servers/*id*/stats
191 2cd1c00a Giorgos Verigakis
192 2cd1c00a Giorgos Verigakis
**Normal Response Code**: 200
193 2cd1c00a Giorgos Verigakis
194 c3945370 Vangelis Koukis
**Error Response Codes**: computeFault (400, 500), serviceUnavailable (503),
195 c3945370 Vangelis Koukis
unauthorized (401), badRequest (400), itemNotFound (404), overLimit (413)
196 2cd1c00a Giorgos Verigakis
197 c3945370 Vangelis Koukis
This operation returns URLs to graphs showing CPU and Network statistics. A
198 c3945370 Vangelis Koukis
``refresh`` attribute is returned as well that is the recommended refresh rate
199 c3945370 Vangelis Koukis
of the stats for the clients.
200 2cd1c00a Giorgos Verigakis
201 2cd1c00a Giorgos Verigakis
This operation does not require a request body.
202 2cd1c00a Giorgos Verigakis
203 c3945370 Vangelis Koukis
**Example Get Server Stats Response: JSON**:
204 c3945370 Vangelis Koukis
205 c3945370 Vangelis Koukis
.. code-block:: javascript
206 2cd1c00a Giorgos Verigakis
207 2cd1c00a Giorgos Verigakis
  {
208 2cd1c00a Giorgos Verigakis
      "stats": {
209 2cd1c00a Giorgos Verigakis
          "serverRef": 1,
210 2cd1c00a Giorgos Verigakis
          "refresh": 60,
211 2cd1c00a Giorgos Verigakis
          "cpuBar": "http://stats.okeanos.grnet.gr/b9a1c3ca7e3b9fce75112c43565fb9960b16048c/cpu-bar.png",
212 2cd1c00a Giorgos Verigakis
          "cpuTimeSeries": "http://stats.okeanos.grnet.gr/b9a1c3ca7e3b9fce75112c43565fb9960b16048c/cpu-ts.png",
213 2cd1c00a Giorgos Verigakis
          "netBar": "http://stats.okeanos.grnet.gr/b9a1c3ca7e3b9fce75112c43565fb9960b16048c/net-bar.png",
214 2cd1c00a Giorgos Verigakis
          "netTimeSeries": "http://stats.okeanos.grnet.gr/b9a1c3ca7e3b9fce75112c43565fb9960b16048c/net-ts.png"
215 2cd1c00a Giorgos Verigakis
      }
216 2cd1c00a Giorgos Verigakis
  }
217 2cd1c00a Giorgos Verigakis
218 c3945370 Vangelis Koukis
**Example Get Network Details Response: XML**:
219 c3945370 Vangelis Koukis
220 c3945370 Vangelis Koukis
.. code-block:: xml
221 2cd1c00a Giorgos Verigakis
222 2cd1c00a Giorgos Verigakis
  <?xml version="1.0" encoding="UTF-8"?>
223 2cd1c00a Giorgos Verigakis
  <stats xmlns="http://docs.openstack.org/compute/api/v1.1" xmlns:atom="http://www.w3.org/2005/Atom"
224 2cd1c00a Giorgos Verigakis
      serverRef="1"
225 2cd1c00a Giorgos Verigakis
      refresh="60"
226 2cd1c00a Giorgos Verigakis
      cpuBar="http://stats.okeanos.grnet.gr/b9a1c3ca7e3b9fce75112c43565fb9960b16048c/cpu-bar.png"
227 2cd1c00a Giorgos Verigakis
      cpuTimeSeries="http://stats.okeanos.grnet.gr/b9a1c3ca7e3b9fce75112c43565fb9960b16048c/cpu-ts.png"
228 2cd1c00a Giorgos Verigakis
      netBar="http://stats.okeanos.grnet.gr/b9a1c3ca7e3b9fce75112c43565fb9960b16048c/net-bar.png"
229 2cd1c00a Giorgos Verigakis
      netTimeSeries="http://stats.okeanos.grnet.gr/b9a1c3ca7e3b9fce75112c43565fb9960b16048c/net-ts.png">
230 2cd1c00a Giorgos Verigakis
  </stats>
231 2cd1c00a Giorgos Verigakis
232 2cd1c00a Giorgos Verigakis
233 2cd1c00a Giorgos Verigakis
Server Addresses
234 2cd1c00a Giorgos Verigakis
----------------
235 2cd1c00a Giorgos Verigakis
236 2cd1c00a Giorgos Verigakis
Server Actions
237 2cd1c00a Giorgos Verigakis
--------------
238 2cd1c00a Giorgos Verigakis
239 2cd1c00a Giorgos Verigakis
* **Change Password** is not supported.
240 2cd1c00a Giorgos Verigakis
* **Rebuild Server** is not supported.
241 2cd1c00a Giorgos Verigakis
* **Resize Server** is not supported.
242 2cd1c00a Giorgos Verigakis
* **Confirm Resized Server** is not supported.
243 2cd1c00a Giorgos Verigakis
* **Revert Resized Server** is not supported.
244 2cd1c00a Giorgos Verigakis
245 2cd1c00a Giorgos Verigakis
We have have extended the API with the following commands:
246 2cd1c00a Giorgos Verigakis
247 2cd1c00a Giorgos Verigakis
248 2cd1c00a Giorgos Verigakis
Start Server
249 2cd1c00a Giorgos Verigakis
............
250 2cd1c00a Giorgos Verigakis
251 2cd1c00a Giorgos Verigakis
**Normal Response Code**: 202
252 2cd1c00a Giorgos Verigakis
253 2cd1c00a Giorgos Verigakis
**Error Response Codes**: serviceUnavailable (503), itemNotFound (404)
254 2cd1c00a Giorgos Verigakis
255 2cd1c00a Giorgos Verigakis
The start function transitions a server from an ACTIVE to a STOPPED state.
256 2cd1c00a Giorgos Verigakis
257 c3945370 Vangelis Koukis
**Example Action Start: JSON**:
258 c3945370 Vangelis Koukis
259 c3945370 Vangelis Koukis
.. code-block:: javascript
260 2cd1c00a Giorgos Verigakis
261 2cd1c00a Giorgos Verigakis
  {
262 2cd1c00a Giorgos Verigakis
      "start": {}
263 2cd1c00a Giorgos Verigakis
  }
264 2cd1c00a Giorgos Verigakis
265 2cd1c00a Giorgos Verigakis
This operation does not return a response body.
266 2cd1c00a Giorgos Verigakis
267 2cd1c00a Giorgos Verigakis
268 2cd1c00a Giorgos Verigakis
Shutdown Server
269 2cd1c00a Giorgos Verigakis
...............
270 2cd1c00a Giorgos Verigakis
271 2cd1c00a Giorgos Verigakis
**Normal Response Code**: 202
272 2cd1c00a Giorgos Verigakis
273 2cd1c00a Giorgos Verigakis
**Error Response Codes**: serviceUnavailable (503), itemNotFound (404)
274 2cd1c00a Giorgos Verigakis
275 2cd1c00a Giorgos Verigakis
The start function transitions a server from a STOPPED to an ACTIVE state.
276 2cd1c00a Giorgos Verigakis
277 c3945370 Vangelis Koukis
**Example Action Shutdown: JSON**:
278 c3945370 Vangelis Koukis
279 c3945370 Vangelis Koukis
.. code-block:: javascript
280 2cd1c00a Giorgos Verigakis
281 2cd1c00a Giorgos Verigakis
  {
282 2cd1c00a Giorgos Verigakis
      "shutdown": {}
283 2cd1c00a Giorgos Verigakis
  }
284 2cd1c00a Giorgos Verigakis
285 2cd1c00a Giorgos Verigakis
This operation does not return a response body.
286 2cd1c00a Giorgos Verigakis
287 2cd1c00a Giorgos Verigakis
288 2cd1c00a Giorgos Verigakis
Get Server Console
289 2cd1c00a Giorgos Verigakis
290 2cd1c00a Giorgos Verigakis
**Normal Response Code**: 200
291 2cd1c00a Giorgos Verigakis
292 2cd1c00a Giorgos Verigakis
**Error Response Codes**: computeFault (400, 500), serviceUnavailable (503), unauthorized (401), badRequest (400), badMediaType(415), itemNotFound (404), buildInProgress (409), overLimit (413)
293 2cd1c00a Giorgos Verigakis
294 2cd1c00a Giorgos Verigakis
The console function arranges for an OOB console of the specified type. Only consoles of type "vnc" are supported for now.
295 2cd1c00a Giorgos Verigakis
    
296 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.
297 2cd1c00a Giorgos Verigakis
298 c3945370 Vangelis Koukis
**Example Action Console: JSON**:
299 c3945370 Vangelis Koukis
300 c3945370 Vangelis Koukis
.. code-block:: javascript
301 2cd1c00a Giorgos Verigakis
302 2cd1c00a Giorgos Verigakis
  {
303 2cd1c00a Giorgos Verigakis
      "console": {
304 2cd1c00a Giorgos Verigakis
          "type": "vnc"
305 2cd1c00a Giorgos Verigakis
      }
306 2cd1c00a Giorgos Verigakis
  }
307 2cd1c00a Giorgos Verigakis
308 c3945370 Vangelis Koukis
**Example Action Console Response: JSON**:
309 c3945370 Vangelis Koukis
310 c3945370 Vangelis Koukis
.. code-block:: javascript
311 2cd1c00a Giorgos Verigakis
312 2cd1c00a Giorgos Verigakis
  {
313 2cd1c00a Giorgos Verigakis
      "console": {
314 2cd1c00a Giorgos Verigakis
          "type": "vnc",
315 2cd1c00a Giorgos Verigakis
          "host": "vm42.ocean.grnet.gr",
316 2cd1c00a Giorgos Verigakis
          "port": 1234,
317 2cd1c00a Giorgos Verigakis
          "password": "IN9RNmaV"
318 2cd1c00a Giorgos Verigakis
      }
319 2cd1c00a Giorgos Verigakis
  }
320 2cd1c00a Giorgos Verigakis
321 c3945370 Vangelis Koukis
**Example Action Console Response: XML**:
322 c3945370 Vangelis Koukis
323 c3945370 Vangelis Koukis
.. code-block:: xml
324 2cd1c00a Giorgos Verigakis
325 2cd1c00a Giorgos Verigakis
  <?xml version="1.0" encoding="UTF-8"?>
326 2cd1c00a Giorgos Verigakis
  <console xmlns="http://docs.openstack.org/compute/api/v1.1" xmlns:atom="http://www.w3.org/2005/Atom"
327 2cd1c00a Giorgos Verigakis
      type="vnc"
328 2cd1c00a Giorgos Verigakis
      host="vm42.ocean.grnet.gr"
329 2cd1c00a Giorgos Verigakis
      port="1234"
330 2cd1c00a Giorgos Verigakis
      password="IN9RNmaV">
331 2cd1c00a Giorgos Verigakis
  </console>
332 2cd1c00a Giorgos Verigakis
333 2cd1c00a Giorgos Verigakis
334 2cd1c00a Giorgos Verigakis
Set Firewall Profile
335 2cd1c00a Giorgos Verigakis
....................
336 2cd1c00a Giorgos Verigakis
337 2cd1c00a Giorgos Verigakis
**Normal Response Code**: 202
338 2cd1c00a Giorgos Verigakis
339 c3945370 Vangelis Koukis
**Error Response Codes**: computeFault (400, 500), serviceUnavailable (503),
340 c3945370 Vangelis Koukis
unauthorized (401), badRequest (400), badMediaType(415), itemNotFound (404),
341 c3945370 Vangelis Koukis
buildInProgress (409), overLimit (413)
342 2cd1c00a Giorgos Verigakis
343 c3945370 Vangelis Koukis
The firewallProfile function sets a firewall profile for the public interface
344 c3945370 Vangelis Koukis
of a server.
345 2cd1c00a Giorgos Verigakis
346 2cd1c00a Giorgos Verigakis
The allowed profiles are: **ENABLED**, **DISABLED** and **PROTECTED**.
347 2cd1c00a Giorgos Verigakis
348 c3945370 Vangelis Koukis
**Example Action firewallProfile: JSON**:
349 c3945370 Vangelis Koukis
350 c3945370 Vangelis Koukis
.. code-block:: javascript
351 2cd1c00a Giorgos Verigakis
352 2cd1c00a Giorgos Verigakis
  {
353 2cd1c00a Giorgos Verigakis
      "firewallProfile": {
354 2cd1c00a Giorgos Verigakis
          "profile": "ENABLED"
355 2cd1c00a Giorgos Verigakis
      }
356 2cd1c00a Giorgos Verigakis
  }
357 2cd1c00a Giorgos Verigakis
358 2cd1c00a Giorgos Verigakis
This operation does not return a response body.
359 2cd1c00a Giorgos Verigakis
360 2cd1c00a Giorgos Verigakis
361 2cd1c00a Giorgos Verigakis
Flavors
362 2cd1c00a Giorgos Verigakis
-------
363 2cd1c00a Giorgos Verigakis
364 c3945370 Vangelis Koukis
* ``self`` and ``bookmark`` atom links are not returned.
365 c3945370 Vangelis Koukis
* **List Flavors** returns just ``id`` and ``name`` if details is not requested.
366 2cd1c00a Giorgos Verigakis
367 2cd1c00a Giorgos Verigakis
368 2cd1c00a Giorgos Verigakis
Images
369 2cd1c00a Giorgos Verigakis
------
370 2cd1c00a Giorgos Verigakis
371 c3945370 Vangelis Koukis
* ``progress`` is always returned.
372 c3945370 Vangelis Koukis
* ``self`` and ``bookmark`` atom links are not returned.
373 c3945370 Vangelis Koukis
* **List Images** returns just ``id`` and ``name`` if details are not requested.
374 c3945370 Vangelis Koukis
* **List Images** can return 304 (even though not explicitly stated) when
375 c3945370 Vangelis Koukis
  ``changes-since`` is given. 
376 c3945370 Vangelis Koukis
* **List Images** does not return deleted images when ``changes-since`` is given.
377 2cd1c00a Giorgos Verigakis
378 2cd1c00a Giorgos Verigakis
379 2cd1c00a Giorgos Verigakis
Metadata
380 2cd1c00a Giorgos Verigakis
--------
381 2cd1c00a Giorgos Verigakis
382 c3945370 Vangelis Koukis
* **Update Server Metadata** and **Update Image Metadata** will only return the
383 c3945370 Vangelis Koukis
  metadata that were updated (some could have been skipped).
384 2cd1c00a Giorgos Verigakis
385 2cd1c00a Giorgos Verigakis
386 2cd1c00a Giorgos Verigakis
Networks
387 2cd1c00a Giorgos Verigakis
--------
388 2cd1c00a Giorgos Verigakis
389 2cd1c00a Giorgos Verigakis
This is an extension to the OpenStack API.
390 2cd1c00a Giorgos Verigakis
391 c3945370 Vangelis Koukis
A Server can connect to one or more networks identified by a numeric id. Each
392 c3945370 Vangelis Koukis
user has access only to networks created by himself. When a network is deleted,
393 c3945370 Vangelis Koukis
all connections to it are deleted. Likewise, when a server is deleted, all
394 c3945370 Vangelis Koukis
connections of that server are deleted.
395 2cd1c00a Giorgos Verigakis
396 c3945370 Vangelis Koukis
There is a special **public** network with the id *public* that can be accessed
397 c3945370 Vangelis Koukis
at */networks/public*. All servers are connected to **public** by default and
398 c3945370 Vangelis Koukis
this network can not be deleted or modified in any way.
399 2cd1c00a Giorgos Verigakis
400 2cd1c00a Giorgos Verigakis
401 2cd1c00a Giorgos Verigakis
List Networks
402 2cd1c00a Giorgos Verigakis
.............
403 2cd1c00a Giorgos Verigakis
404 2cd1c00a Giorgos Verigakis
**GET** /networks
405 2cd1c00a Giorgos Verigakis
406 2cd1c00a Giorgos Verigakis
**GET** /networks/detail
407 2cd1c00a Giorgos Verigakis
408 2cd1c00a Giorgos Verigakis
**Normal Response Codes**: 200, 203
409 2cd1c00a Giorgos Verigakis
410 c3945370 Vangelis Koukis
**Error Response Codes**: computeFault (400, 500), serviceUnavailable (503),
411 c3945370 Vangelis Koukis
unauthorized (401), badRequest (400), overLimit (413)
412 2cd1c00a Giorgos Verigakis
413 2cd1c00a Giorgos Verigakis
This operation provides a list of private networks associated with your account.
414 2cd1c00a Giorgos Verigakis
415 2cd1c00a Giorgos Verigakis
This operation does not require a request body.
416 2cd1c00a Giorgos Verigakis
417 c3945370 Vangelis Koukis
**Example Networks List Response: JSON (detail)**:
418 c3945370 Vangelis Koukis
419 c3945370 Vangelis Koukis
.. code-block:: javascript
420 2cd1c00a Giorgos Verigakis
421 2cd1c00a Giorgos Verigakis
  {
422 2cd1c00a Giorgos Verigakis
      "networks": {
423 2cd1c00a Giorgos Verigakis
          "values": [
424 2cd1c00a Giorgos Verigakis
              {
425 2cd1c00a Giorgos Verigakis
                  "id": "public",
426 2cd1c00a Giorgos Verigakis
                  "name": "public",
427 2cd1c00a Giorgos Verigakis
                  "created": "2011-04-20T15:31:08.199640+00:00",
428 2cd1c00a Giorgos Verigakis
                  "updated": "2011-05-06T12:47:05.582679+00:00",
429 2cd1c00a Giorgos Verigakis
                  "servers": {
430 2cd1c00a Giorgos Verigakis
                      "values": [1, 2, 3]
431 2cd1c00a Giorgos Verigakis
                  }
432 2cd1c00a Giorgos Verigakis
              },
433 2cd1c00a Giorgos Verigakis
              {
434 2cd1c00a Giorgos Verigakis
                  "id": 2,
435 2cd1c00a Giorgos Verigakis
                  "name": "private",
436 2cd1c00a Giorgos Verigakis
                  "created": "2011-04-20T14:32:08.199640+00:00",
437 2cd1c00a Giorgos Verigakis
                  "updated": "2011-05-06T11:40:05.582679+00:00",
438 2cd1c00a Giorgos Verigakis
                  "servers": {
439 2cd1c00a Giorgos Verigakis
                      "values": [1]
440 2cd1c00a Giorgos Verigakis
                  }
441 2cd1c00a Giorgos Verigakis
              }
442 2cd1c00a Giorgos Verigakis
          ]
443 2cd1c00a Giorgos Verigakis
      }
444 2cd1c00a Giorgos Verigakis
  }
445 2cd1c00a Giorgos Verigakis
446 c3945370 Vangelis Koukis
**Example Networks List Response: XML (detail)**:
447 c3945370 Vangelis Koukis
448 c3945370 Vangelis Koukis
.. code-block:: xml
449 2cd1c00a Giorgos Verigakis
450 2cd1c00a Giorgos Verigakis
  <?xml version="1.0" encoding="UTF-8"?>
451 2cd1c00a Giorgos Verigakis
  <networks xmlns="http://docs.openstack.org/compute/api/v1.1" xmlns:atom="http://www.w3.org/2005/Atom">
452 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">
453 2cd1c00a Giorgos Verigakis
      <servers>
454 2cd1c00a Giorgos Verigakis
        <server id="1"></server>
455 2cd1c00a Giorgos Verigakis
        <server id="2"></server>
456 2cd1c00a Giorgos Verigakis
        <server id="3"></server>
457 2cd1c00a Giorgos Verigakis
      </servers>
458 2cd1c00a Giorgos Verigakis
    </network>
459 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">
460 2cd1c00a Giorgos Verigakis
      <servers>
461 2cd1c00a Giorgos Verigakis
        <server id="1"></server>
462 2cd1c00a Giorgos Verigakis
      </servers>
463 2cd1c00a Giorgos Verigakis
    </network>
464 2cd1c00a Giorgos Verigakis
  </networks>
465 2cd1c00a Giorgos Verigakis
466 2cd1c00a Giorgos Verigakis
467 2cd1c00a Giorgos Verigakis
Create Network
468 2cd1c00a Giorgos Verigakis
..............
469 2cd1c00a Giorgos Verigakis
470 2cd1c00a Giorgos Verigakis
**POST** /networks
471 2cd1c00a Giorgos Verigakis
472 2cd1c00a Giorgos Verigakis
**Normal Response Code**: 202
473 2cd1c00a Giorgos Verigakis
474 c3945370 Vangelis Koukis
**Error Response Codes**: computeFault (400, 500), serviceUnavailable (503),
475 c3945370 Vangelis Koukis
unauthorized (401), badMediaType(415), badRequest (400), overLimit (413)
476 2cd1c00a Giorgos Verigakis
477 2cd1c00a Giorgos Verigakis
This operation asynchronously provisions a new private network.
478 2cd1c00a Giorgos Verigakis
479 c3945370 Vangelis Koukis
**Example Create Network Request: JSON**:
480 c3945370 Vangelis Koukis
481 c3945370 Vangelis Koukis
.. code-block:: javascript
482 2cd1c00a Giorgos Verigakis
483 2cd1c00a Giorgos Verigakis
  {
484 2cd1c00a Giorgos Verigakis
      "network": {
485 2cd1c00a Giorgos Verigakis
          "name": "private_net",
486 2cd1c00a Giorgos Verigakis
      }
487 2cd1c00a Giorgos Verigakis
  }
488 2cd1c00a Giorgos Verigakis
489 c3945370 Vangelis Koukis
**Example Create Network Response: JSON**:
490 c3945370 Vangelis Koukis
491 c3945370 Vangelis Koukis
.. code-block:: javascript
492 2cd1c00a Giorgos Verigakis
493 2cd1c00a Giorgos Verigakis
  {
494 2cd1c00a Giorgos Verigakis
      "network": {
495 2cd1c00a Giorgos Verigakis
          "id": 3,
496 2cd1c00a Giorgos Verigakis
          "name": "private_net",
497 2cd1c00a Giorgos Verigakis
          "created": "2011-04-20T15:31:08.199640+00:00",
498 2cd1c00a Giorgos Verigakis
          "servers": {
499 2cd1c00a Giorgos Verigakis
              "values": []
500 2cd1c00a Giorgos Verigakis
          }
501 2cd1c00a Giorgos Verigakis
      }
502 2cd1c00a Giorgos Verigakis
  }
503 2cd1c00a Giorgos Verigakis
504 c3945370 Vangelis Koukis
**Example Create Network Response: XML**:
505 c3945370 Vangelis Koukis
506 c3945370 Vangelis Koukis
.. code-block:: xml
507 2cd1c00a Giorgos Verigakis
508 2cd1c00a Giorgos Verigakis
  <?xml version="1.0" encoding="UTF-8"?>
509 2cd1c00a Giorgos Verigakis
  <network xmlns="http://docs.openstack.org/compute/api/v1.1" xmlns:atom="http://www.w3.org/2005/Atom"
510 2cd1c00a Giorgos Verigakis
   id="2" name="foob" created="2011-04-20T15:31:08.199640+00:00">
511 2cd1c00a Giorgos Verigakis
    <servers>
512 2cd1c00a Giorgos Verigakis
    </servers>
513 2cd1c00a Giorgos Verigakis
  </network>
514 2cd1c00a Giorgos Verigakis
515 2cd1c00a Giorgos Verigakis
516 2cd1c00a Giorgos Verigakis
Get Network Details
517 2cd1c00a Giorgos Verigakis
...................
518 2cd1c00a Giorgos Verigakis
519 2cd1c00a Giorgos Verigakis
**GET** /networks/*id*
520 2cd1c00a Giorgos Verigakis
521 2cd1c00a Giorgos Verigakis
**Normal Response Codes**: 200, 203
522 2cd1c00a Giorgos Verigakis
523 c3945370 Vangelis Koukis
**Error Response Codes**: computeFault (400, 500), serviceUnavailable (503),
524 c3945370 Vangelis Koukis
unauthorized (401), badRequest (400), itemNotFound (404), overLimit (413)
525 2cd1c00a Giorgos Verigakis
526 2cd1c00a Giorgos Verigakis
This operation returns the details of a specific network by its id.
527 2cd1c00a Giorgos Verigakis
528 2cd1c00a Giorgos Verigakis
This operation does not require a request body.
529 2cd1c00a Giorgos Verigakis
530 c3945370 Vangelis Koukis
**Example Get Network Details Response: JSON**:
531 c3945370 Vangelis Koukis
532 c3945370 Vangelis Koukis
.. code-block:: javascript
533 2cd1c00a Giorgos Verigakis
534 2cd1c00a Giorgos Verigakis
  {
535 2cd1c00a Giorgos Verigakis
      "network": {
536 2cd1c00a Giorgos Verigakis
          "id": 3,
537 2cd1c00a Giorgos Verigakis
          "name": "private_net",
538 2cd1c00a Giorgos Verigakis
          "servers": {
539 2cd1c00a Giorgos Verigakis
              "values": [1, 7]
540 2cd1c00a Giorgos Verigakis
          }
541 2cd1c00a Giorgos Verigakis
      }
542 2cd1c00a Giorgos Verigakis
  }
543 2cd1c00a Giorgos Verigakis
544 2cd1c00a Giorgos Verigakis
**Example Get Network Details Response: XML**::
545 2cd1c00a Giorgos Verigakis
546 2cd1c00a Giorgos Verigakis
  <?xml version="1.0" encoding="UTF-8"?>
547 2cd1c00a Giorgos Verigakis
  <network xmlns="http://docs.openstack.org/compute/api/v1.1" xmlns:atom="http://www.w3.org/2005/Atom"
548 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">
549 2cd1c00a Giorgos Verigakis
    <servers>
550 2cd1c00a Giorgos Verigakis
      <server id="1"></server>
551 2cd1c00a Giorgos Verigakis
      <server id="7"></server>
552 2cd1c00a Giorgos Verigakis
    </servers>
553 2cd1c00a Giorgos Verigakis
  </network>
554 2cd1c00a Giorgos Verigakis
555 2cd1c00a Giorgos Verigakis
556 2cd1c00a Giorgos Verigakis
Update Network Name
557 2cd1c00a Giorgos Verigakis
...................
558 2cd1c00a Giorgos Verigakis
559 2cd1c00a Giorgos Verigakis
**PUT** /networks/*id*
560 2cd1c00a Giorgos Verigakis
561 2cd1c00a Giorgos Verigakis
**Normal Response Code**: 204
562 2cd1c00a Giorgos Verigakis
563 c3945370 Vangelis Koukis
**Error Response Codes**: computeFault (400, 500), serviceUnavailable (503),
564 c3945370 Vangelis Koukis
unauthorized (401), badRequest (400), badMediaType(415), itemNotFound (404),
565 c3945370 Vangelis Koukis
overLimit (413) 
566 2cd1c00a Giorgos Verigakis
567 2cd1c00a Giorgos Verigakis
This operation changes the name of the network in the Compute system.
568 2cd1c00a Giorgos Verigakis
569 2cd1c00a Giorgos Verigakis
**Example Update Network Name Request: JSON**::
570 2cd1c00a Giorgos Verigakis
571 c3945370 Vangelis Koukis
.. code-block:: javascript
572 c3945370 Vangelis Koukis
573 2cd1c00a Giorgos Verigakis
  {
574 2cd1c00a Giorgos Verigakis
      "network": {
575 2cd1c00a Giorgos Verigakis
          "name": "new_name"
576 2cd1c00a Giorgos Verigakis
      }
577 2cd1c00a Giorgos Verigakis
  }
578 2cd1c00a Giorgos Verigakis
579 2cd1c00a Giorgos Verigakis
This operation does not contain a response body.
580 2cd1c00a Giorgos Verigakis
581 2cd1c00a Giorgos Verigakis
582 2cd1c00a Giorgos Verigakis
Delete Network
583 2cd1c00a Giorgos Verigakis
..............
584 2cd1c00a Giorgos Verigakis
585 2cd1c00a Giorgos Verigakis
**DELETE** /networks/*id*
586 2cd1c00a Giorgos Verigakis
587 2cd1c00a Giorgos Verigakis
**Normal Response Code**: 204
588 2cd1c00a Giorgos Verigakis
589 c3945370 Vangelis Koukis
**Error Response Codes**: computeFault (400, 500), serviceUnavailable (503),
590 c3945370 Vangelis Koukis
unauthorized (401), itemNotFound (404), unauthorized (401), overLimit (413) 
591 2cd1c00a Giorgos Verigakis
592 2cd1c00a Giorgos Verigakis
This operation deletes a network from the system.
593 2cd1c00a Giorgos Verigakis
594 2cd1c00a Giorgos Verigakis
This operation does not require a request or a response body.
595 2cd1c00a Giorgos Verigakis
596 2cd1c00a Giorgos Verigakis
597 2cd1c00a Giorgos Verigakis
Network Actions
598 2cd1c00a Giorgos Verigakis
---------------
599 2cd1c00a Giorgos Verigakis
600 2cd1c00a Giorgos Verigakis
Add Server
601 2cd1c00a Giorgos Verigakis
..........
602 2cd1c00a Giorgos Verigakis
603 2cd1c00a Giorgos Verigakis
**POST** /networks/*id*/action
604 2cd1c00a Giorgos Verigakis
605 2cd1c00a Giorgos Verigakis
**Normal Response Code**: 202
606 2cd1c00a Giorgos Verigakis
607 c3945370 Vangelis Koukis
**Error Response Codes**: computeFault (400, 500), serviceUnavailable (503),
608 c3945370 Vangelis Koukis
unauthorized (401), badRequest (400), badMediaType(415), itemNotFound (404),
609 c3945370 Vangelis Koukis
overLimit (413)
610 2cd1c00a Giorgos Verigakis
611 2cd1c00a Giorgos Verigakis
This operation adds a server to the specified network.
612 2cd1c00a Giorgos Verigakis
613 c3945370 Vangelis Koukis
**Example Action Add: JSON**:
614 c3945370 Vangelis Koukis
615 c3945370 Vangelis Koukis
.. code-block:: javascript
616 2cd1c00a Giorgos Verigakis
617 2cd1c00a Giorgos Verigakis
  {
618 2cd1c00a Giorgos Verigakis
      "add" : {
619 2cd1c00a Giorgos Verigakis
          "serverRef" : 42
620 2cd1c00a Giorgos Verigakis
      }
621 2cd1c00a Giorgos Verigakis
  }
622 2cd1c00a Giorgos Verigakis
623 2cd1c00a Giorgos Verigakis
This operation does not contain a response body.
624 2cd1c00a Giorgos Verigakis
625 2cd1c00a Giorgos Verigakis
626 2cd1c00a Giorgos Verigakis
Remove Server
627 2cd1c00a Giorgos Verigakis
.............
628 2cd1c00a Giorgos Verigakis
629 2cd1c00a Giorgos Verigakis
**POST** /networks/*id*/action
630 2cd1c00a Giorgos Verigakis
631 2cd1c00a Giorgos Verigakis
**Normal Response Code**: 202
632 2cd1c00a Giorgos Verigakis
633 c3945370 Vangelis Koukis
**Error Response Codes**: computeFault (400, 500), serviceUnavailable (503),
634 c3945370 Vangelis Koukis
unauthorized (401), badRequest (400), badMediaType(415), itemNotFound (404),
635 c3945370 Vangelis Koukis
overLimit (413)
636 2cd1c00a Giorgos Verigakis
637 2cd1c00a Giorgos Verigakis
This operation removes a server from the specified network.
638 2cd1c00a Giorgos Verigakis
639 c3945370 Vangelis Koukis
**Example Action Remove: JSON**:
640 c3945370 Vangelis Koukis
641 c3945370 Vangelis Koukis
.. code-block:: javascript
642 2cd1c00a Giorgos Verigakis
643 2cd1c00a Giorgos Verigakis
  {
644 2cd1c00a Giorgos Verigakis
      "remove" : {
645 2cd1c00a Giorgos Verigakis
          "serverRef" : 42
646 2cd1c00a Giorgos Verigakis
      }
647 2cd1c00a Giorgos Verigakis
  }
648 2cd1c00a Giorgos Verigakis
649 2cd1c00a Giorgos Verigakis
This operation does not contain a response body.