summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-02-10 22:33:16 +0000
committerGerrit Code Review <review@openstack.org>2012-02-10 22:33:16 +0000
commit810749b07bbfcd7c1ac55dac5c29938d9a000bf5 (patch)
tree4b59c9787894efacf6fc2eaa51891725c08adbd9
parentd808ce11668c08bd896771f578f70e15f1eeb88d (diff)
parentcfa774eecee8f1fa800e9028f2c7f52a2ae028f6 (diff)
downloadnova-810749b07bbfcd7c1ac55dac5c29938d9a000bf5.tar.gz
nova-810749b07bbfcd7c1ac55dac5c29938d9a000bf5.tar.xz
nova-810749b07bbfcd7c1ac55dac5c29938d9a000bf5.zip
Merge "Force imageRef to be a string"
-rw-r--r--nova/api/openstack/compute/servers.py2
-rw-r--r--nova/tests/api/openstack/compute/test_servers.py21
2 files changed, 22 insertions, 1 deletions
diff --git a/nova/api/openstack/compute/servers.py b/nova/api/openstack/compute/servers.py
index 574c48644..42f4490c5 100644
--- a/nova/api/openstack/compute/servers.py
+++ b/nova/api/openstack/compute/servers.py
@@ -961,7 +961,7 @@ class Controller(wsgi.Controller):
def _image_ref_from_req_data(self, data):
try:
- return data['server']['imageRef']
+ return unicode(data['server']['imageRef'])
except (TypeError, KeyError):
msg = _("Missing imageRef attribute")
raise exc.HTTPBadRequest(explanation=msg)
diff --git a/nova/tests/api/openstack/compute/test_servers.py b/nova/tests/api/openstack/compute/test_servers.py
index 708b81b60..2c1c6be99 100644
--- a/nova/tests/api/openstack/compute/test_servers.py
+++ b/nova/tests/api/openstack/compute/test_servers.py
@@ -1532,6 +1532,27 @@ class ServersControllerCreateTest(test.TestCase):
self._check_admin_pass_len(server)
self.assertEqual(FAKE_UUID, server['id'])
+ def test_create_server_bad_image_href(self):
+ image_href = 1
+ flavor_ref = 'http://localhost/123/flavors/3'
+
+ body = {
+ 'server': {
+ 'min_count': 1,
+ 'name': 'server_test',
+ 'imageRef': image_href,
+ 'flavorRef': flavor_ref,
+ }
+ }
+ req = fakes.HTTPRequest.blank('/v2/fake/servers')
+ req.method = 'POST'
+ req.body = json.dumps(body)
+ req.headers["content-type"] = "application/json"
+ self.assertRaises(webob.exc.HTTPBadRequest,
+ self.controller.create,
+ req,
+ body)
+
def test_create_multiple_instances(self):
"""Test creating multiple instances but not asking for
reservation_id