Merge "Add additional info. to image.delete notification"
This commit is contained in:
commit
ff32b489da
@ -719,7 +719,7 @@ class Controller(controller.BaseController):
|
||||
if image['location']:
|
||||
schedule_delete_from_backend(image['location'], self.conf,
|
||||
req.context, id)
|
||||
registry.delete_image_metadata(req.context, id)
|
||||
image = registry.delete_image_metadata(req.context, id)
|
||||
except exception.NotFound, e:
|
||||
msg = ("Failed to find image to delete: %(e)s" % locals())
|
||||
for line in msg.split('\n'):
|
||||
@ -733,7 +733,7 @@ class Controller(controller.BaseController):
|
||||
self.notifier.info('image.delete', msg)
|
||||
raise HTTPForbidden(msg, request=req, content_type="text/plain")
|
||||
else:
|
||||
self.notifier.info('image.delete', id)
|
||||
self.notifier.info('image.delete', image)
|
||||
|
||||
def get_store_or_400(self, request, scheme):
|
||||
"""
|
||||
|
@ -293,10 +293,12 @@ class Controller(object):
|
||||
:param req: wsgi Request object
|
||||
:param id: The opaque internal identifier for the image
|
||||
|
||||
:retval Returns 200 if delete was successful, a fault if not.
|
||||
:retval Returns 200 if delete was successful, a fault if not. On
|
||||
success, the body contains the deleted image information as a mapping.
|
||||
"""
|
||||
try:
|
||||
db_api.image_destroy(req.context, id)
|
||||
deleted_image = db_api.image_destroy(req.context, id)
|
||||
return dict(image=make_image_dict(deleted_image))
|
||||
|
||||
except exception.ForbiddenPublicImage:
|
||||
# If it's private and doesn't belong to them, don't let on
|
||||
|
@ -151,8 +151,10 @@ class RegistryClient(BaseClient):
|
||||
"""
|
||||
Deletes Registry's information about an image
|
||||
"""
|
||||
self.do_request("DELETE", "/images/%s" % image_id)
|
||||
return True
|
||||
res = self.do_request("DELETE", "/images/%s" % image_id)
|
||||
data = json.loads(res.read())
|
||||
image = data['image']
|
||||
return image
|
||||
|
||||
def get_image_members(self, image_id):
|
||||
"""Returns a list of membership associations from Registry"""
|
||||
|
@ -243,6 +243,8 @@ def image_destroy(context, image_id):
|
||||
for memb_ref in image_ref.members:
|
||||
image_member_delete(context, memb_ref, session=session)
|
||||
|
||||
return image_ref
|
||||
|
||||
|
||||
def image_get(context, image_id, session=None, force_show_deleted=False):
|
||||
"""Get an image or raise if it does not exist."""
|
||||
|
@ -1138,7 +1138,12 @@ class TestRegistryClient(base.IsolatedUnitTest):
|
||||
orig_num_images = len(self.client.get_images())
|
||||
|
||||
# Delete image #2
|
||||
self.assertTrue(self.client.delete_image(UUID2))
|
||||
image = self.FIXTURES[1]
|
||||
deleted_image = self.client.delete_image(image['id'])
|
||||
self.assertTrue(deleted_image)
|
||||
self.assertEquals(image['id'], deleted_image['id'])
|
||||
self.assertTrue(deleted_image['deleted'])
|
||||
self.assertTrue(deleted_image['deleted_at'])
|
||||
|
||||
# Verify one less image
|
||||
new_num_images = len(self.client.get_images())
|
||||
|
@ -1857,6 +1857,21 @@ class TestRegistryAPI(base.IsolatedUnitTest):
|
||||
new_num_images = len(res_dict['images'])
|
||||
self.assertEquals(new_num_images, orig_num_images - 1)
|
||||
|
||||
def test_delete_image_response(self):
|
||||
"""Tests that the registry API delete returns the image metadata"""
|
||||
|
||||
image = self.FIXTURES[0]
|
||||
req = webob.Request.blank('/images/%s' % image['id'])
|
||||
req.method = 'DELETE'
|
||||
res = req.get_response(self.api)
|
||||
|
||||
self.assertEquals(res.status_int, 200)
|
||||
deleted_image = json.loads(res.body)['image']
|
||||
|
||||
self.assertEquals(image['id'], deleted_image['id'])
|
||||
self.assertTrue(deleted_image['deleted'])
|
||||
self.assertTrue(deleted_image['deleted_at'])
|
||||
|
||||
def test_delete_image_not_existing(self):
|
||||
"""
|
||||
Tests proper exception is raised if attempt to delete
|
||||
|
Loading…
x
Reference in New Issue
Block a user