diff options
| author | Jenkins <jenkins@review.openstack.org> | 2012-02-10 22:33:16 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2012-02-10 22:33:16 +0000 |
| commit | 810749b07bbfcd7c1ac55dac5c29938d9a000bf5 (patch) | |
| tree | 4b59c9787894efacf6fc2eaa51891725c08adbd9 | |
| parent | d808ce11668c08bd896771f578f70e15f1eeb88d (diff) | |
| parent | cfa774eecee8f1fa800e9028f2c7f52a2ae028f6 (diff) | |
| download | nova-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.py | 2 | ||||
| -rw-r--r-- | nova/tests/api/openstack/compute/test_servers.py | 21 |
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 |
