summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--nova/api/openstack/images.py14
-rw-r--r--nova/utils.py10
2 files changed, 13 insertions, 11 deletions
diff --git a/nova/api/openstack/images.py b/nova/api/openstack/images.py
index 34d4c27fc..8d796c284 100644
--- a/nova/api/openstack/images.py
+++ b/nova/api/openstack/images.py
@@ -82,15 +82,12 @@ class Controller(common.OpenstackController):
:param id: Image identifier (integer)
"""
context = req.environ['nova.context']
+ image_id = id
try:
- image_id = int(id)
- except ValueError:
- explanation = _("Image not found.")
- raise faults.Fault(webob.exc.HTTPNotFound(explanation=explanation))
-
- try:
- image = self._image_service.show(context, image_id)
+ (image_service, service_image_id) = utils.get_image_service(
+ image_id)
+ image = image_service.show(context, service_image_id)
except exception.NotFound:
explanation = _("Image '%d' not found.") % (image_id)
raise faults.Fault(webob.exc.HTTPNotFound(explanation=explanation))
@@ -105,7 +102,8 @@ class Controller(common.OpenstackController):
"""
image_id = id
context = req.environ['nova.context']
- self._image_service.delete(context, image_id)
+ (image_service, service_image_id) = utils.get_image_service(image_id)
+ image_service.delete(context, service_image_id)
return webob.exc.HTTPNoContent()
def create(self, req):
diff --git a/nova/utils.py b/nova/utils.py
index e7ce0a79b..c7da95a97 100644
--- a/nova/utils.py
+++ b/nova/utils.py
@@ -750,12 +750,17 @@ def parse_image_ref(image_ref):
return (id, host, port)
-def get_image_service(image_ref):
+def get_image_service(image_ref=None):
"""
Get the proper image_service for an image_id
+ Returns (image_service, image_id)
image_ref - image ref/id for an image
"""
+ ImageService = utils.import_class(FLAGS.image_service)
+
+ if not image_ref:
+ return (ImageService(), -1)
(image_id, host, port) = parse_image_ref(image_ref)
@@ -768,7 +773,6 @@ def get_image_service(image_ref):
glance_client = GlanceClient(host, port)
image_service = GlanceImageService(glance_client)
else:
- ImageService = utils.import_class(FLAGS.image_service)
image_service = ImageService()
- return (image_id, image_service)
+ return (image_service, id)