From 1d1695838d4291e92043a31893d8cb103a26f627 Mon Sep 17 00:00:00 2001 From: Vincent Hou Date: Mon, 31 Aug 2015 17:23:48 +0800 Subject: [PATCH] Remove the unnecassary volume_api.get(context, volume_id) In the method delete from volume_image_metadata, volume_api.get() may be called twice. This first time is to get the metadata, and the second is to get the volume. We can get both of them at the same time. Change-Id: I0633c16db21e254ec43bad472748cbc0b7796a24 Closes-Bug: #1489342 --- cinder/api/contrib/volume_image_metadata.py | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/cinder/api/contrib/volume_image_metadata.py b/cinder/api/contrib/volume_image_metadata.py index 3b1f77e6e..7d763f0b4 100644 --- a/cinder/api/contrib/volume_image_metadata.py +++ b/cinder/api/contrib/volume_image_metadata.py @@ -45,7 +45,7 @@ class VolumeImageMetadataController(wsgi.Controller): except exception.VolumeNotFound: msg = _('Volume with volume id %s does not exist.') % volume_id raise webob.exc.HTTPNotFound(explanation=msg) - return meta + return (volume, meta) def _get_all_images_metadata(self, context): """Returns the image metadata for all volumes.""" @@ -146,21 +146,18 @@ class VolumeImageMetadataController(wsgi.Controller): raise webob.exc.HTTPBadRequest(explanation=msg) if key: - metadata = self._get_image_metadata(context, id) + vol, metadata = self._get_image_metadata(context, id) if key not in metadata: msg = _("Metadata item was not found.") raise webob.exc.HTTPNotFound(explanation=msg) - try: - volume = self.volume_api.get(context, id) self.volume_api.delete_volume_metadata( - context, - volume, - key, + context, vol, key, meta_type=common.METADATA_TYPES.image) - except exception.VolumeNotFound: - msg = _('Volume does not exist.') - raise webob.exc.HTTPNotFound(explanation=msg) + else: + msg = _("The key cannot be None.") + raise webob.exc.HTTPBadRequest(explanation=msg) + return webob.Response(status_int=200) -- 2.45.2