47 |
47 |
"""
|
48 |
48 |
detail = 'detail' if detail else ''
|
49 |
49 |
r = self.servers_get(command=detail)
|
50 |
|
return r.json['servers']['values']
|
|
50 |
return r.json['servers']
|
51 |
51 |
|
52 |
52 |
def get_server_details(self, server_id, **kwargs):
|
53 |
53 |
"""Return detailed info for a server
|
... | ... | |
83 |
83 |
metadata = {}
|
84 |
84 |
for key in ('os', 'users'):
|
85 |
85 |
try:
|
86 |
|
metadata[key] = image['metadata']['values'][key]
|
|
86 |
metadata[key] = image['metadata'][key]
|
87 |
87 |
except KeyError:
|
88 |
88 |
pass
|
89 |
89 |
if metadata:
|
... | ... | |
151 |
151 |
|
152 |
152 |
:returns: a key:val dict of requests metadata
|
153 |
153 |
"""
|
154 |
|
command = path4url('meta', key)
|
|
154 |
command = path4url('metadata', key)
|
155 |
155 |
r = self.servers_get(server_id, command)
|
156 |
|
return r.json['meta'] if key else r.json['metadata']['values']
|
|
156 |
return r.json['meta'] if key else r.json['metadata']
|
157 |
157 |
|
158 |
158 |
def create_server_metadata(self, server_id, key, val):
|
159 |
159 |
"""
|
... | ... | |
168 |
168 |
req = {'meta': {key: val}}
|
169 |
169 |
r = self.servers_put(
|
170 |
170 |
server_id,
|
171 |
|
'meta/' + key,
|
|
171 |
'metadata/' + key,
|
172 |
172 |
json_data=req,
|
173 |
173 |
success=201)
|
174 |
174 |
return r.json['meta']
|
... | ... | |
182 |
182 |
:returns: dict of updated key:val metadata
|
183 |
183 |
"""
|
184 |
184 |
req = {'metadata': metadata}
|
185 |
|
r = self.servers_post(server_id, 'meta', json_data=req, success=201)
|
|
185 |
r = self.servers_post(
|
|
186 |
server_id, 'metadata',
|
|
187 |
json_data=req, success=201)
|
186 |
188 |
return r.json['metadata']
|
187 |
189 |
|
188 |
190 |
def delete_server_metadata(self, server_id, key):
|
... | ... | |
193 |
195 |
|
194 |
196 |
:returns: (dict) response headers
|
195 |
197 |
"""
|
196 |
|
r = self.servers_delete(server_id, 'meta/' + key)
|
|
198 |
r = self.servers_delete(server_id, 'metadata/' + key)
|
197 |
199 |
return r.headers
|
198 |
200 |
|
199 |
201 |
def list_flavors(self, detail=False):
|
... | ... | |
203 |
205 |
:returns: (dict) flavor info
|
204 |
206 |
"""
|
205 |
207 |
r = self.flavors_get(command='detail' if detail else '')
|
206 |
|
return r.json['flavors']['values']
|
|
208 |
return r.json['flavors']
|
207 |
209 |
|
208 |
210 |
def get_flavor_details(self, flavor_id):
|
209 |
211 |
"""
|
... | ... | |
222 |
224 |
"""
|
223 |
225 |
detail = 'detail' if detail else ''
|
224 |
226 |
r = self.images_get(command=detail)
|
225 |
|
return r.json['images']['values']
|
|
227 |
return r.json['images']
|
226 |
228 |
|
227 |
229 |
def get_image_details(self, image_id, **kwargs):
|
228 |
230 |
"""
|
... | ... | |
254 |
256 |
|
255 |
257 |
:returns (dict) metadata if key not set, specific metadatum otherwise
|
256 |
258 |
"""
|
257 |
|
command = path4url('meta', key)
|
|
259 |
command = path4url('metadata', key)
|
258 |
260 |
r = self.images_get(image_id, command)
|
259 |
|
return r.json['meta'] if key else r.json['metadata']['values']
|
|
261 |
return r.json['meta'] if key else r.json['metadata']
|
260 |
262 |
|
261 |
263 |
def create_image_metadata(self, image_id, key, val):
|
262 |
264 |
"""
|
... | ... | |
269 |
271 |
:returns: (dict) updated metadata
|
270 |
272 |
"""
|
271 |
273 |
req = {'meta': {key: val}}
|
272 |
|
r = self.images_put(image_id, 'meta/' + key, json_data=req)
|
|
274 |
r = self.images_put(image_id, 'metadata/' + key, json_data=req)
|
273 |
275 |
return r.json['meta']
|
274 |
276 |
|
275 |
277 |
def update_image_metadata(self, image_id, **metadata):
|
... | ... | |
281 |
283 |
:returns: updated metadata
|
282 |
284 |
"""
|
283 |
285 |
req = {'metadata': metadata}
|
284 |
|
r = self.images_post(image_id, 'meta', json_data=req)
|
|
286 |
r = self.images_post(image_id, 'metadata', json_data=req)
|
285 |
287 |
return r.json['metadata']
|
286 |
288 |
|
287 |
289 |
def delete_image_metadata(self, image_id, key):
|
... | ... | |
292 |
294 |
|
293 |
295 |
:returns: (dict) response headers
|
294 |
296 |
"""
|
295 |
|
command = path4url('meta', key)
|
|
297 |
command = path4url('metadata', key)
|
296 |
298 |
r = self.images_delete(image_id, command)
|
297 |
299 |
return r.headers
|