Revision fda88be1 kamaki/clients/compute/rest_api.py
b/kamaki/clients/compute/rest_api.py | ||
---|---|---|
38 | 38 |
|
39 | 39 |
class ComputeRestClient(Client): |
40 | 40 |
|
41 |
# NON-cyclades |
|
42 |
def limits_get(self, success=200, **kwargs): |
|
43 |
"""GET base_url/limits |
|
44 |
|
|
45 |
:param success: success code or list or tupple of accepted success |
|
46 |
codes. if server response code is not in this list, a ClientError |
|
47 |
raises |
|
48 |
|
|
49 |
:returns: request response |
|
50 |
""" |
|
51 |
path = path4url('limits') |
|
52 |
return self.get(path, success=success, **kwargs) |
|
53 |
|
|
54 |
def servers_get( |
|
55 |
self, |
|
56 |
server_id='', detail=False, |
|
57 |
changes_since=None, |
|
58 |
image=None, |
|
59 |
flavor=None, |
|
60 |
name=None, |
|
61 |
marker=None, |
|
62 |
limit=None, |
|
63 |
status=None, |
|
64 |
host=None, |
|
65 |
success=200, |
|
66 |
**kwargs): |
|
67 |
"""GET base_url/servers/['detail'|<server_id>] |
|
68 |
|
|
69 |
:param server_id: (int or int str) ignored if detail |
|
70 |
|
|
71 |
:param detail: (boolean) |
|
72 |
|
|
73 |
--- Parameters --- |
|
74 |
|
|
75 |
:param changes-since: A time/date stamp for when the server last |
|
76 |
changed status |
|
77 |
|
|
78 |
:param image: Name of the image in URL format |
|
79 |
|
|
80 |
:param flavor: Name of the flavor in URL format |
|
81 |
|
|
82 |
:param name: Name of the server as a string |
|
83 |
|
|
84 |
:param marker: UUID of the server at which you want to set a marker |
|
85 |
|
|
86 |
:param limit: (int) limit of values to return |
|
87 |
|
|
88 |
:param status: Status of the server (e.g. filter on "ACTIVE") |
|
89 |
|
|
90 |
:param host: Name of the host as a string |
|
91 |
|
|
92 |
:returns: request response |
|
93 |
""" |
|
94 |
if not server_id: |
|
95 |
self.set_param('changes-since', changes_since, iff=changes_since) |
|
96 |
self.set_param('image', image, iff=image) |
|
97 |
self.set_param('flavor', flavor, iff=flavor) |
|
98 |
self.set_param('name', name, iff=name) |
|
99 |
self.set_param('marker', marker, iff=marker) |
|
100 |
self.set_param('limit', limit, iff=limit) |
|
101 |
self.set_param('status', status, iff=status) |
|
102 |
self.set_param('host', host, iff=host) |
|
103 |
|
|
104 |
path = path4url('servers', 'detail' if detail else server_id) |
|
105 |
return self.get(path, success=success, **kwargs) |
|
106 |
|
|
107 |
def servers_post( |
|
108 |
self, |
|
109 |
security_group=None, |
|
110 |
user_data=None, |
|
111 |
availability_zone=None, |
|
112 |
server=None, |
|
113 |
imageRef=None, |
|
114 |
flavorRef=None, |
|
115 |
name=None, |
|
116 |
metadata=None, |
|
117 |
personality=None, |
|
118 |
json_data=None, |
|
119 |
success=202, |
|
120 |
**kwargs): |
|
121 |
"""POST base_url/servers |
|
122 |
|
|
123 |
:param json_data: a json-formated dict that will be send as data |
|
124 |
|
|
125 |
--- Parameters |
|
126 |
|
|
127 |
:param security_group: (str) |
|
128 |
|
|
129 |
:param user_data: Use to pass configuration information or scripts upon |
|
130 |
launch. Must be Base64 encoded. |
|
131 |
|
|
132 |
:param availability_zone: (str) |
|
133 |
|
|
134 |
:param server: Server |
|
135 |
|
|
136 |
:param imageRef: ID or full URL. |
|
137 |
|
|
138 |
:param flavorRef: ID or full URL. |
|
139 |
|
|
140 |
:param name: (str) The name of the new server |
|
141 |
|
|
142 |
:param metadata: (dict) Metadata key: value pairs. max size of the key |
|
143 |
and value is 255 bytes each. |
|
144 |
|
|
145 |
:param personality: (str) File path and contents (text only) to inject |
|
146 |
into the server at launch. The maximum size of the file path data |
|
147 |
is 255 bytes. The maximum limit refers to the number of bytes in |
|
148 |
the decoded data and not the number of characters in the encoded |
|
149 |
data. |
|
150 |
|
|
151 |
:returns: request response |
|
152 |
""" |
|
153 |
|
|
154 |
self.set_param(security_group, security_group, iff=security_group) |
|
155 |
self.set_param(user_data, user_data, iff=user_data) |
|
156 |
self.set_param( |
|
157 |
availability_zone, availability_zone, iff=availability_zone) |
|
158 |
self.set_param(server, server, iff=server) |
|
159 |
self.set_param(imageRef, imageRef, iff=imageRef) |
|
160 |
self.set_param(flavorRef, flavorRef, iff=flavorRef) |
|
161 |
self.set_param(name, name, iff=name) |
|
162 |
if metadata: # don't json.dump None |
|
163 |
self.set_param(metadata, json.dumps(metadata)) |
|
164 |
self.set_param(personality, personality, iff=personality) |
|
165 |
|
|
166 |
if json_data: |
|
167 |
json_data = json.dumps(json_data) |
|
168 |
self.set_header('Content-Type', 'application/json') |
|
169 |
self.set_header('Content-Length', len(json_data)) |
|
170 |
|
|
171 |
path = path4url('servers') |
|
172 |
return self.post(path, data=json_data, success=success, **kwargs) |
|
173 |
|
|
174 |
def servers_put(self, server_id, json_data=None, success=204, **kwargs): |
|
175 |
"""PUT base_url/servers/<server_id> |
|
176 |
|
|
177 |
:param json_data: a json-formated dict that will be send as data |
|
178 |
|
|
179 |
:param success: success code (iterable of) codes |
|
180 |
|
|
181 |
:raises ClientError: if returned code not in success list |
|
182 |
|
|
183 |
:returns: request response |
|
184 |
""" |
|
185 |
if json_data: |
|
186 |
json_data = json.dumps(json_data) |
|
187 |
self.set_header('Content-Type', 'application/json') |
|
188 |
self.set_header('Content-Length', len(json_data)) |
|
189 |
path = path4url('servers', server_id) |
|
190 |
return self.put(path, data=json_data, success=success, **kwargs) |
|
191 |
|
|
192 |
def servers_delete(self, server_id, success=204, **kwargs): |
|
193 |
"""DEL ETE base_url/servers/<server_id> |
|
194 |
|
|
195 |
:param json_data: a json-formated dict that will be send as data |
|
196 |
|
|
197 |
:param success: success code (iterable of) codes |
|
198 |
|
|
199 |
:raises ClientError: if returned code not in success list |
|
200 |
|
|
201 |
:returns: request response |
|
202 |
""" |
|
203 |
path = path4url('servers', server_id) |
|
204 |
return self.delete(path, success=success, **kwargs) |
|
205 |
|
|
206 |
""" |
|
207 |
def servers_get |
|
208 |
def servers_post |
|
209 |
def servers_put |
|
210 |
def servers_delete |
|
211 |
def servers_metadata_get |
|
212 |
def servers_metadata_post |
|
213 |
def servers_metadata_put |
|
214 |
def servers_metadata_delete |
|
215 |
def servers_actions_post |
|
216 |
def servers_ips_get |
|
217 |
""" |
|
218 |
|
|
219 |
""" |
|
41 | 220 |
def servers_get(self, server_id='', command='', success=200, **kwargs): |
42 |
"""GET base_url/servers[/server_id][/command] request
|
|
221 |
""GET base_url/servers[/server_id][/command] request |
|
43 | 222 |
|
44 | 223 |
:param server_id: integer (as int or str) |
45 | 224 |
|
... | ... | |
50 | 229 |
raises |
51 | 230 |
|
52 | 231 |
:returns: request response |
53 |
"""
|
|
232 |
"" |
|
54 | 233 |
path = path4url('servers', server_id, command) |
55 | 234 |
return self.get(path, success=success, **kwargs) |
235 |
""" |
|
56 | 236 |
|
57 | 237 |
def servers_delete(self, server_id='', command='', success=204, **kwargs): |
58 | 238 |
"""DEL ETE base_url/servers[/server_id][/command] request |
... | ... | |
70 | 250 |
path = path4url('servers', server_id, command) |
71 | 251 |
return self.delete(path, success=success, **kwargs) |
72 | 252 |
|
253 |
""" |
|
73 | 254 |
def servers_post( |
74 | 255 |
self, |
75 | 256 |
server_id='', |
... | ... | |
77 | 258 |
json_data=None, |
78 | 259 |
success=202, |
79 | 260 |
**kwargs): |
80 |
"""POST base_url/servers[/server_id]/[command] request
|
|
261 |
""POST base_url/servers[/server_id]/[command] request |
|
81 | 262 |
|
82 | 263 |
:param server_id: integer (as int or str) |
83 | 264 |
|
... | ... | |
90 | 271 |
raises |
91 | 272 |
|
92 | 273 |
:returns: request response |
93 |
"""
|
|
274 |
"" |
|
94 | 275 |
data = json_data |
95 | 276 |
if json_data: |
96 | 277 |
data = json.dumps(json_data) |
... | ... | |
107 | 288 |
json_data=None, |
108 | 289 |
success=204, |
109 | 290 |
**kwargs): |
110 |
"""PUT base_url/servers[/server_id]/[command] request
|
|
291 |
""PUT base_url/servers[/server_id]/[command] request |
|
111 | 292 |
|
112 | 293 |
:param server_id: integer (as int or str) |
113 | 294 |
|
... | ... | |
120 | 301 |
raises |
121 | 302 |
|
122 | 303 |
:returns: request response |
123 |
"""
|
|
304 |
"" |
|
124 | 305 |
data = json_data |
125 | 306 |
if json_data is not None: |
126 | 307 |
data = json.dumps(json_data) |
... | ... | |
129 | 310 |
|
130 | 311 |
path = path4url('servers', server_id, command) |
131 | 312 |
return self.put(path, data=data, success=success, **kwargs) |
313 |
""" |
|
132 | 314 |
|
133 | 315 |
def flavors_get(self, flavor_id='', command='', success=200, **kwargs): |
134 | 316 |
"""GET base_url[/flavor_id][/command] |
Also available in: Unified diff