Revision cda71050 snf-cyclades-app/synnefo/api/images.py
b/snf-cyclades-app/synnefo/api/images.py | ||
---|---|---|
118 | 118 |
# overLimit (413) |
119 | 119 |
|
120 | 120 |
log.debug('list_images detail=%s', detail) |
121 |
since = utils.isoparse(request.GET.get('changes-since')) |
|
121 | 122 |
with image_backend(request.user_uniq) as backend: |
122 |
since = utils.isoparse(request.GET.get('changes-since')) |
|
123 | 123 |
if since: |
124 | 124 |
images = [] |
125 | 125 |
for image in backend.iter(): |
... | ... | |
172 | 172 |
# overLimit (413) |
173 | 173 |
|
174 | 174 |
log.debug('get_image_details %s', image_id) |
175 |
image = util.get_image(image_id, request.user_uniq) |
|
175 |
with image_backend(request.user_uniq) as backend: |
|
176 |
image = backend.get_image(image_id) |
|
176 | 177 |
reply = image_to_dict(image) |
177 | 178 |
|
178 | 179 |
if request.serialization == 'xml': |
... | ... | |
209 | 210 |
# overLimit (413) |
210 | 211 |
|
211 | 212 |
log.debug('list_image_metadata %s', image_id) |
212 |
image = util.get_image(image_id, request.user_uniq) |
|
213 |
with image_backend(request.user_uniq) as backend: |
|
214 |
image = backend.get_image(image_id) |
|
213 | 215 |
metadata = image['properties'] |
214 | 216 |
return util.render_metadata(request, metadata, use_values=True, status=200) |
215 | 217 |
|
... | ... | |
227 | 229 |
|
228 | 230 |
req = utils.get_request_dict(request) |
229 | 231 |
log.info('update_image_metadata %s %s', image_id, req) |
230 |
image = util.get_image(image_id, request.user_uniq) |
|
231 |
try: |
|
232 |
metadata = req['metadata'] |
|
233 |
assert isinstance(metadata, dict) |
|
234 |
except (KeyError, AssertionError): |
|
235 |
raise faults.BadRequest('Malformed request.') |
|
232 |
with image_backend(request.user_uniq) as backend: |
|
233 |
image = backend.get_image(image_id) |
|
234 |
try: |
|
235 |
metadata = req['metadata'] |
|
236 |
assert isinstance(metadata, dict) |
|
237 |
except (KeyError, AssertionError): |
|
238 |
raise faults.BadRequest('Malformed request.') |
|
236 | 239 |
|
237 |
properties = image['properties'] |
|
238 |
properties.update(metadata) |
|
240 |
properties = image['properties']
|
|
241 |
properties.update(metadata)
|
|
239 | 242 |
|
240 |
with image_backend(request.user_uniq) as backend: |
|
241 |
backend.update(image_id, dict(properties=properties)) |
|
243 |
backend.update_metadata(image_id, dict(properties=properties)) |
|
242 | 244 |
|
243 | 245 |
return util.render_metadata(request, properties, status=201) |
244 | 246 |
|
... | ... | |
254 | 256 |
# overLimit (413) |
255 | 257 |
|
256 | 258 |
log.debug('get_image_metadata_item %s %s', image_id, key) |
257 |
image = util.get_image(image_id, request.user_uniq) |
|
259 |
with image_backend(request.user_uniq) as backend: |
|
260 |
image = backend.get_image(image_id) |
|
258 | 261 |
val = image['properties'].get(key) |
259 | 262 |
if val is None: |
260 | 263 |
raise faults.ItemNotFound('Metadata key not found.') |
... | ... | |
284 | 287 |
raise faults.BadRequest('Malformed request.') |
285 | 288 |
|
286 | 289 |
val = metadict[key] |
287 |
image = util.get_image(image_id, request.user_uniq) |
|
288 |
properties = image['properties'] |
|
289 |
properties[key] = val |
|
290 |
|
|
291 | 290 |
with image_backend(request.user_uniq) as backend: |
292 |
backend.update(image_id, dict(properties=properties)) |
|
291 |
image = backend.get_image(image_id) |
|
292 |
properties = image['properties'] |
|
293 |
properties[key] = val |
|
294 |
|
|
295 |
backend.update_metadata(image_id, dict(properties=properties)) |
|
293 | 296 |
|
294 | 297 |
return util.render_meta(request, {key: val}, status=201) |
295 | 298 |
|
... | ... | |
307 | 310 |
# overLimit (413), |
308 | 311 |
|
309 | 312 |
log.info('delete_image_metadata_item %s %s', image_id, key) |
310 |
image = util.get_image(image_id, request.user_uniq) |
|
311 |
properties = image['properties'] |
|
312 |
properties.pop(key, None) |
|
313 |
|
|
314 | 313 |
with image_backend(request.user_uniq) as backend: |
315 |
backend.update(image_id, dict(properties=properties)) |
|
314 |
image = backend.get_image(image_id) |
|
315 |
properties = image['properties'] |
|
316 |
properties.pop(key, None) |
|
317 |
|
|
318 |
backend.update_metadata(image_id, dict(properties=properties)) |
|
316 | 319 |
|
317 | 320 |
return HttpResponse(status=204) |
Also available in: Unified diff