Statistics
| Branch: | Tag: | Revision:

root / docs / cyclades-api-guide.rst @ 81243c3d

History | View | Annotate | Download (16.1 kB)

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