diff options
| author | Jenkins <jenkins@review.openstack.org> | 2013-05-23 07:30:06 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2013-05-23 07:30:06 +0000 |
| commit | 045efd331a22e454648fdeb2280df3abfca32fd9 (patch) | |
| tree | fc67407538cb4b619b05d1c6b27e289c8266ea99 | |
| parent | 6b4bf59c410ef1339dda1010bc3b68c1869bb63f (diff) | |
| parent | 53226b3262a95e4e62472416c125ee3ebd58b52e (diff) | |
| download | nova-045efd331a22e454648fdeb2280df3abfca32fd9.tar.gz nova-045efd331a22e454648fdeb2280df3abfca32fd9.tar.xz nova-045efd331a22e454648fdeb2280df3abfca32fd9.zip | |
Merge "Added validation for networks parameter value"
| -rw-r--r-- | nova/api/openstack/compute/servers.py | 3 | ||||
| -rw-r--r-- | nova/tests/api/openstack/compute/test_servers.py | 21 |
2 files changed, 24 insertions, 0 deletions
diff --git a/nova/api/openstack/compute/servers.py b/nova/api/openstack/compute/servers.py index 44d8dce3b..d6259be63 100644 --- a/nova/api/openstack/compute/servers.py +++ b/nova/api/openstack/compute/servers.py @@ -791,6 +791,9 @@ class Controller(wsgi.Controller): requested_networks = server_dict.get('networks') if requested_networks is not None: + if not isinstance(requested_networks, list): + expl = _('Bad networks format') + raise exc.HTTPBadRequest(explanation=expl) requested_networks = self._get_requested_networks( requested_networks) diff --git a/nova/tests/api/openstack/compute/test_servers.py b/nova/tests/api/openstack/compute/test_servers.py index 993451263..ca488a797 100644 --- a/nova/tests/api/openstack/compute/test_servers.py +++ b/nova/tests/api/openstack/compute/test_servers.py @@ -1885,6 +1885,27 @@ class ServersControllerCreateTest(test.TestCase): req, body) + def test_create_server_with_invalid_networks_parameter(self): + self.ext_mgr.extensions = {'os-networks': 'fake'} + image_href = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6' + flavor_ref = 'http://localhost/123/flavors/3' + body = { + 'server': { + 'name': 'server_test', + 'imageRef': image_href, + 'flavorRef': flavor_ref, + 'networks': {'uuid': '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'}, + } + } + 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_server_with_deleted_image(self): image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6' # Get the fake image service so we can set the status to deleted |
