summaryrefslogtreecommitdiffstats
path: root/nova
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2013-05-23 07:30:06 +0000
committerGerrit Code Review <review@openstack.org>2013-05-23 07:30:06 +0000
commit045efd331a22e454648fdeb2280df3abfca32fd9 (patch)
treefc67407538cb4b619b05d1c6b27e289c8266ea99 /nova
parent6b4bf59c410ef1339dda1010bc3b68c1869bb63f (diff)
parent53226b3262a95e4e62472416c125ee3ebd58b52e (diff)
downloadnova-045efd331a22e454648fdeb2280df3abfca32fd9.tar.gz
nova-045efd331a22e454648fdeb2280df3abfca32fd9.tar.xz
nova-045efd331a22e454648fdeb2280df3abfca32fd9.zip
Merge "Added validation for networks parameter value"
Diffstat (limited to 'nova')
-rw-r--r--nova/api/openstack/compute/servers.py3
-rw-r--r--nova/tests/api/openstack/compute/test_servers.py21
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