summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
authorNaveed Massjouni <naveedm9@gmail.com>2011-05-31 11:58:15 -0400
committerNaveed Massjouni <naveedm9@gmail.com>2011-05-31 11:58:15 -0400
commit099c29549a70cb88a6266a5e4145f855e1862d99 (patch)
tree8c791103a4b945c9188d35b454f261deeda8e256 /nova/api
parent4f8c995bbeca903319bcc1f314b25be0150eea2f (diff)
Handle the case when a v1.0 api tries to list servers that contain image hrefs.
Diffstat (limited to 'nova/api')
-rw-r--r--nova/api/openstack/servers.py12
-rw-r--r--nova/api/openstack/views/servers.py6
2 files changed, 15 insertions, 3 deletions
diff --git a/nova/api/openstack/servers.py b/nova/api/openstack/servers.py
index 7593694bd..33b677ffd 100644
--- a/nova/api/openstack/servers.py
+++ b/nova/api/openstack/servers.py
@@ -69,11 +69,19 @@ class Controller(common.OpenstackController):
def index(self, req):
""" Returns a list of server names and ids for a given user """
- return self._items(req, is_detail=False)
+ try:
+ servers = self._items(req, is_detail=False)
+ except exception.Invalid as err:
+ return exc.HTTPBadRequest(str(err))
+ return servers
def detail(self, req):
""" Returns a list of server details for a given user """
- return self._items(req, is_detail=True)
+ try:
+ servers = self._items(req, is_detail=True)
+ except exception.Invalid as err:
+ return exc.HTTPBadRequest(str(err))
+ return servers
def _image_ref_from_req_data(self, data):
raise NotImplementedError()
diff --git a/nova/api/openstack/views/servers.py b/nova/api/openstack/views/servers.py
index dd1d68ff0..595a54790 100644
--- a/nova/api/openstack/views/servers.py
+++ b/nova/api/openstack/views/servers.py
@@ -18,6 +18,7 @@
import hashlib
import os
+from nova import exception
from nova.compute import power_state
import nova.compute
import nova.context
@@ -113,7 +114,10 @@ class ViewBuilderV10(ViewBuilder):
def _build_image(self, response, inst):
if 'image_ref' in dict(inst):
- response['imageId'] = int(inst['image_ref'])
+ image_ref = inst['image_ref']
+ if str(image_ref).startswith('http'):
+ raise exception.ListingImageRefsNotSupported();
+ response['imageId'] = int(image_ref)
def _build_flavor(self, response, inst):
if 'instance_type' in dict(inst):