summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-01-16 18:42:00 +0000
committerGerrit Code Review <review@openstack.org>2012-01-16 18:42:00 +0000
commita5e73ffe190f6b42cee592d2d7eceae368c7be1d (patch)
treef2e27ab7ff16fb103dbfcf1b407b198bf5229ad5 /nova/api
parentc50546df8cbf159af13335813d9cb06098645b2c (diff)
parent6e7e3870a4ca047185ba5e3320d63afaa08357b8 (diff)
downloadnova-a5e73ffe190f6b42cee592d2d7eceae368c7be1d.tar.gz
nova-a5e73ffe190f6b42cee592d2d7eceae368c7be1d.tar.xz
nova-a5e73ffe190f6b42cee592d2d7eceae368c7be1d.zip
Merge "Increase robustness of image filtering by server"
Diffstat (limited to 'nova/api')
-rw-r--r--nova/api/openstack/compute/images.py11
-rw-r--r--nova/api/openstack/compute/servers.py5
2 files changed, 11 insertions, 5 deletions
diff --git a/nova/api/openstack/compute/images.py b/nova/api/openstack/compute/images.py
index 194c5071e..fed326f66 100644
--- a/nova/api/openstack/compute/images.py
+++ b/nova/api/openstack/compute/images.py
@@ -24,6 +24,7 @@ from nova import exception
from nova import flags
import nova.image
from nova import log
+import nova.utils
LOG = log.getLogger('nova.api.openstack.compute.images')
@@ -33,7 +34,7 @@ SUPPORTED_FILTERS = {
'name': 'name',
'status': 'status',
'changes-since': 'changes-since',
- 'server': 'property-instance_ref',
+ 'server': 'property-instance_uuid',
'type': 'property-image_type',
'minRam': 'min_ram',
'minDisk': 'min_disk',
@@ -118,6 +119,14 @@ class Controller(wsgi.Controller):
# map filter name or carry through if property-*
filter_name = SUPPORTED_FILTERS.get(param, param)
filters[filter_name] = req.params.get(param)
+
+ # ensure server filter is the instance uuid
+ filter_name = 'property-instance_uuid'
+ try:
+ filters[filter_name] = filters[filter_name].rsplit('/', 1)[1]
+ except (AttributeError, IndexError, KeyError):
+ pass
+
return filters
@wsgi.serializers(xml=ImageTemplate)
diff --git a/nova/api/openstack/compute/servers.py b/nova/api/openstack/compute/servers.py
index e90e30b7d..3a0cc3683 100644
--- a/nova/api/openstack/compute/servers.py
+++ b/nova/api/openstack/compute/servers.py
@@ -1069,10 +1069,7 @@ class Controller(wsgi.Controller):
msg = _("Malformed createImage entity")
raise exc.HTTPBadRequest(explanation=msg)
- # preserve link to server in image properties
- server_ref = os.path.join(req.application_url, 'servers', id)
- props = {'instance_ref': server_ref}
-
+ props = {}
metadata = entity.get('metadata', {})
common.check_img_metadata_quota_limit(context, metadata)
try: