diff options
author | Jenkins <jenkins@review.openstack.org> | 2013-03-05 14:48:06 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2013-03-05 14:48:06 +0000 |
commit | ad57a303f1916d99f73eb8123f60c8a2fd1e6a78 (patch) | |
tree | 9c16fcfb7e0c154f7f42ae6919a08265a8273e05 | |
parent | 84d8ba574b0b19876b98b435a0d47ac1b8dd035c (diff) | |
parent | 6b3bba9141c7fdc4b00025f7e6ee8d980e41ec9a (diff) | |
download | nova-ad57a303f1916d99f73eb8123f60c8a2fd1e6a78.tar.gz nova-ad57a303f1916d99f73eb8123f60c8a2fd1e6a78.tar.xz nova-ad57a303f1916d99f73eb8123f60c8a2fd1e6a78.zip |
Merge "Fix 'to integer' conversion of max and min count values"
-rw-r--r-- | nova/api/openstack/compute/servers.py | 4 | ||||
-rw-r--r-- | nova/tests/api/openstack/compute/test_servers.py | 46 |
2 files changed, 48 insertions, 2 deletions
diff --git a/nova/api/openstack/compute/servers.py b/nova/api/openstack/compute/servers.py index 532c5b0fa..3464cfdbd 100644 --- a/nova/api/openstack/compute/servers.py +++ b/nova/api/openstack/compute/servers.py @@ -825,7 +825,7 @@ class Controller(wsgi.Controller): max_count = server_dict.get('max_count', min_count) try: - min_count = int(min_count) + min_count = int(str(min_count)) except ValueError: msg = _('min_count must be an integer value') raise exc.HTTPBadRequest(explanation=msg) @@ -834,7 +834,7 @@ class Controller(wsgi.Controller): raise exc.HTTPBadRequest(explanation=msg) try: - max_count = int(max_count) + max_count = int(str(max_count)) except ValueError: msg = _('max_count must be an integer value') 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 92a8fc316..638ef79b0 100644 --- a/nova/tests/api/openstack/compute/test_servers.py +++ b/nova/tests/api/openstack/compute/test_servers.py @@ -2042,6 +2042,52 @@ class ServersControllerCreateTest(test.TestCase): self.assertRaises(webob.exc.HTTPBadRequest, self._test_create_extra, params, no_image=True) + def test_create_multiple_instance_with_non_integer_max_count(self): + self.ext_mgr.extensions = {'os-multiple-create': 'fake'} + image_href = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6' + flavor_ref = 'http://localhost/123/flavors/3' + body = { + 'server': { + 'max_count': 2.5, + 'name': 'server_test', + 'imageRef': image_href, + 'flavorRef': flavor_ref, + 'metadata': {'hello': 'world', + 'open': 'stack'}, + 'personality': [] + } + } + + req = fakes.HTTPRequest.blank('/v2/fake/servers') + req.method = 'POST' + req.body = jsonutils.dumps(body) + req.headers["content-type"] = "application/json" + self.assertRaises(webob.exc.HTTPBadRequest, + self.controller.create, req, body) + + def test_create_multiple_instance_with_non_integer_min_count(self): + self.ext_mgr.extensions = {'os-multiple-create': 'fake'} + image_href = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6' + flavor_ref = 'http://localhost/123/flavors/3' + body = { + 'server': { + 'min_count': 2.5, + 'name': 'server_test', + 'imageRef': image_href, + 'flavorRef': flavor_ref, + 'metadata': {'hello': 'world', + 'open': 'stack'}, + 'personality': [] + } + } + + req = fakes.HTTPRequest.blank('/v2/fake/servers') + req.method = 'POST' + req.body = jsonutils.dumps(body) + req.headers["content-type"] = "application/json" + self.assertRaises(webob.exc.HTTPBadRequest, + self.controller.create, req, body) + def test_create_instance_image_ref_is_bookmark(self): image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6' image_href = 'http://localhost/fake/images/%s' % image_uuid |