summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTushar Patil <tushar.vitthal.patil@gmail.com>2011-07-14 15:53:16 -0700
committerTushar Patil <tushar.vitthal.patil@gmail.com>2011-07-14 15:53:16 -0700
commit0655f97b2cce1e28485ddb4c37a854a65cbbc276 (patch)
tree2451a01383ce3552f3aa9dd446c5a15593fc9752
parent2ecbdd46d48bafbeb451875ba6e7f67276d83602 (diff)
added integrated unit testcases and minor fixes
-rw-r--r--nova/api/openstack/create_instance_helper.py3
-rw-r--r--nova/network/manager.py6
-rw-r--r--nova/tests/__init__.py3
-rw-r--r--nova/tests/api/openstack/test_servers.py7
-rw-r--r--nova/tests/integrated/test_servers.py218
-rw-r--r--nova/tests/test_network.py8
6 files changed, 231 insertions, 14 deletions
diff --git a/nova/api/openstack/create_instance_helper.py b/nova/api/openstack/create_instance_helper.py
index 0337dd5bb..32b1b2f7c 100644
--- a/nova/api/openstack/create_instance_helper.py
+++ b/nova/api/openstack/create_instance_helper.py
@@ -329,9 +329,6 @@ class CreateInstanceHelper(object):
expl = _("Bad networks format: network id should "
"be integer (%s)") % network_id
raise faults.Fault(exc.HTTPBadRequest(explanation=expl))
- except TypeError:
- expl = _('Bad networks format')
- raise faults.Fault(exc.HTTPBadRequest(explanation=expl))
return networks
diff --git a/nova/network/manager.py b/nova/network/manager.py
index e665bb1fc..b2b9335a9 100644
--- a/nova/network/manager.py
+++ b/nova/network/manager.py
@@ -614,6 +614,7 @@ class NetworkManager(manager.SchedulerDependentManager):
net['gateway'] = str(project_net[1])
net['broadcast'] = str(project_net.broadcast)
net['dhcp_start'] = str(project_net[2])
+ net['project_id'] = kwargs['project_id']
if num_networks > 1:
net['label'] = '%s_%d' % (label, index)
else:
@@ -705,7 +706,7 @@ class NetworkManager(manager.SchedulerDependentManager):
"""check if the networks exists and host
is set to each network.
"""
- if networks is None:
+ if networks is None or len(networks) == 0:
return
result = self.db.network_get_requested_networks(context, networks)
@@ -965,10 +966,11 @@ class VlanManager(RPCAllocateFixedIP, FloatingIP, NetworkManager):
"""check if the networks exists and host
is set to each network.
"""
- if networks is None:
+ if networks is None or len(networks) == 0:
return
result = self.db.project_get_requested_networks(context, networks)
+
for network_id, fixed_ip in networks:
# check if the fixed IP address is valid and
# it actually belongs to the network
diff --git a/nova/tests/__init__.py b/nova/tests/__init__.py
index e4ed75d37..44ce2e635 100644
--- a/nova/tests/__init__.py
+++ b/nova/tests/__init__.py
@@ -66,7 +66,8 @@ def setup():
bridge=FLAGS.flat_network_bridge,
bridge_interface=bridge_interface,
vpn_start=FLAGS.vpn_start,
- vlan_start=FLAGS.vlan_start)
+ vlan_start=FLAGS.vlan_start,
+ project_id="openstack")
for net in db.network_get_all(ctxt):
network.set_network_host(ctxt, net['id'])
diff --git a/nova/tests/api/openstack/test_servers.py b/nova/tests/api/openstack/test_servers.py
index 52af4c17a..702dcb7a8 100644
--- a/nova/tests/api/openstack/test_servers.py
+++ b/nova/tests/api/openstack/test_servers.py
@@ -2516,6 +2516,13 @@ class TestServerInstanceCreation(test.TestCase):
self.assertEquals(response.status_int, 400)
self.assertEquals(networks, None)
+ def test_create_instance_with_network_non_string_fixed_ip(self):
+ networks = [('1', 12345)]
+ request, response, networks = \
+ self._create_instance_with_networks_json(networks)
+ self.assertEquals(response.status_int, 400)
+ self.assertEquals(networks, None)
+
def test_create_instance_with_network_empty_fixed_ip_xml(self):
networks = [('1', '')]
request, response, networks = \
diff --git a/nova/tests/integrated/test_servers.py b/nova/tests/integrated/test_servers.py
index fcb517cf5..08522f720 100644
--- a/nova/tests/integrated/test_servers.py
+++ b/nova/tests/integrated/test_servers.py
@@ -179,6 +179,224 @@ class ServersTest(integrated_helpers._IntegratedTestBase):
# Cleanup
self._delete_server(created_server_id)
+ def test_create_server_with_one_networks(self):
+ """Creates a server with networks."""
+
+ # Build the server data gradually, checking errors along the way
+ server = self._build_minimal_create_server_request()
+
+ network_list = [{'id': 1, 'fixed_ip': '10.0.0.3'}]
+ server['networks'] = network_list
+
+ post = {'server': server}
+ created_server = self.api.post_server(post)
+ LOG.debug("created_server: %s" % created_server)
+ self.assertTrue(created_server['id'])
+ created_server_id = created_server['id']
+
+ # Check it's there
+ found_server = self.api.get_server(created_server_id)
+ self.assertEqual(created_server_id, found_server['id'])
+
+ # Cleanup
+ self._delete_server(created_server_id)
+
+ def test_create_server_with_two_networks(self):
+ """Creates a server with networks."""
+
+ # Build the server data gradually, checking errors along the way
+ server = self._build_minimal_create_server_request()
+
+ network_list = [{'id': 1, 'fixed_ip': '10.0.0.3'},
+ {'id': 2, 'fixed_ip': '10.0.0.12'}]
+
+ server['networks'] = network_list
+
+ post = {'server': server}
+ created_server = self.api.post_server(post)
+ LOG.debug("created_server: %s" % created_server)
+ self.assertTrue(created_server['id'])
+ created_server_id = created_server['id']
+
+ # Check it's there
+ found_server = self.api.get_server(created_server_id)
+ self.assertEqual(created_server_id, found_server['id'])
+
+ # Cleanup
+ self._delete_server(created_server_id)
+
+ def test_create_server_with_empty_networks(self):
+ """Creates a server with networks."""
+
+ # Build the server data gradually, checking errors along the way
+ server = self._build_minimal_create_server_request()
+
+ network_list = []
+ server['networks'] = network_list
+
+ post = {'server': server}
+ created_server = self.api.post_server(post)
+ LOG.debug("created_server: %s" % created_server)
+ self.assertTrue(created_server['id'])
+ created_server_id = created_server['id']
+
+ # Check it's there
+ found_server = self.api.get_server(created_server_id)
+ self.assertEqual(created_server_id, found_server['id'])
+
+ # Cleanup
+ self._delete_server(created_server_id)
+
+ def test_create_server_with_networks_invalid_id(self):
+ """Creates a server with networks."""
+
+ # Build the server data gradually, checking errors along the way
+ server = self._build_minimal_create_server_request()
+
+ network_list = [{'id': "invalid", 'fixed_ip': '10.0.0.3'}]
+ server['networks'] = network_list
+
+ post = {'server': server}
+ self.assertRaises(client.OpenStackApiException,
+ self.api.post_server, post)
+
+ def test_create_server_with_networks_no_id(self):
+ """Creates a server with networks."""
+
+ # Build the server data gradually, checking errors along the way
+ server = self._build_minimal_create_server_request()
+
+ network_list = [{'fixed_ip': '10.0.0.3'}]
+ server['networks'] = network_list
+
+ post = {'server': server}
+ self.assertRaises(client.OpenStackApiException,
+ self.api.post_server, post)
+
+ def test_create_server_with_networks_non_exists_id(self):
+ """Creates a server with networks."""
+
+ # Build the server data gradually, checking errors along the way
+ server = self._build_minimal_create_server_request()
+
+ network_list = [{'id': 3, 'fixed_ip': '10.0.0.3'}]
+ server['networks'] = network_list
+
+ post = {'server': server}
+ self.assertRaises(client.OpenStackApiException,
+ self.api.post_server, post)
+
+ def test_create_server_with_networks_not_found_for_project(self):
+ """Creates a server with networks."""
+
+ # Build the server data gradually, checking errors along the way
+ server = self._build_minimal_create_server_request()
+
+ network_list = [{'id': 1, 'fixed_ip': '10.0.0.3'},
+ {'id': 3, 'fixed_ip': '10.0.0.12'}]
+ server['networks'] = network_list
+
+ post = {'server': server}
+ self.assertRaises(client.OpenStackApiException,
+ self.api.post_server, post)
+
+ def test_create_server_with_networks_invalid_fixed_ip(self):
+ """Creates a server with networks."""
+
+ # Build the server data gradually, checking errors along the way
+ server = self._build_minimal_create_server_request()
+
+ network_list = [{'id': 1, 'fixed_ip': '10.0.0.3.0'}]
+ server['networks'] = network_list
+
+ post = {'server': server}
+ self.assertRaises(client.OpenStackApiException,
+ self.api.post_server, post)
+
+ def test_create_server_with_networks_non_existing_fixed_ip(self):
+ """Creates a server with metadata."""
+
+ # Build the server data gradually, checking errors along the way
+ server = self._build_minimal_create_server_request()
+
+ network_list = [{'id': 1, 'fixed_ip': '10.100.0.3'}]
+ server['networks'] = network_list
+
+ post = {'server': server}
+ self.assertRaises(client.OpenStackApiException,
+ self.api.post_server, post)
+
+
+ def test_create_server_with_networks_empty_fixed_ip(self):
+ """Creates a server with networks."""
+
+ # Build the server data gradually, checking errors along the way
+ server = self._build_minimal_create_server_request()
+
+ network_list = [{'id': 1, 'fixed_ip': ''}]
+ server['networks'] = network_list
+
+ post = {'server': server}
+ self.assertRaises(client.OpenStackApiException,
+ self.api.post_server, post)
+
+ def test_create_server_with_networks_non_string_fixed_ip(self):
+ """Creates a server with networks."""
+
+ # Build the server data gradually, checking errors along the way
+ server = self._build_minimal_create_server_request()
+
+ network_list = [{'id': 1, 'fixed_ip': 12}]
+ server['networks'] = network_list
+
+ post = {'server': server}
+ self.assertRaises(client.OpenStackApiException,
+ self.api.post_server, post)
+
+ def test_create_server_with_networks_none_fixed_ip(self):
+ """Creates a server with networks."""
+
+ # Build the server data gradually, checking errors along the way
+ server = self._build_minimal_create_server_request()
+
+ network_list = [{'id': 1, 'fixed_ip': None}]
+ server['networks'] = network_list
+
+ post = {'server': server}
+ created_server = self.api.post_server(post)
+ LOG.debug("created_server: %s" % created_server)
+ self.assertTrue(created_server['id'])
+ created_server_id = created_server['id']
+
+ # Check it's there
+ found_server = self.api.get_server(created_server_id)
+ self.assertEqual(created_server_id, found_server['id'])
+
+ # Cleanup
+ self._delete_server(created_server_id)
+
+ def test_create_server_with_networks_no_fixed_ip(self):
+ """Creates a server with networks."""
+
+ # Build the server data gradually, checking errors along the way
+ server = self._build_minimal_create_server_request()
+
+ network_list = [{'id': 1}]
+ server['networks'] = network_list
+
+ post = {'server': server}
+ created_server = self.api.post_server(post)
+ LOG.debug("created_server: %s" % created_server)
+ self.assertTrue(created_server['id'])
+ created_server_id = created_server['id']
+
+ # Check it's there
+ found_server = self.api.get_server(created_server_id)
+ self.assertEqual(created_server_id, found_server['id'])
+
+ # Cleanup
+ self._delete_server(created_server_id)
+
def test_create_and_rebuild_server(self):
"""Rebuild a server."""
diff --git a/nova/tests/test_network.py b/nova/tests/test_network.py
index 63317b05a..fd4408831 100644
--- a/nova/tests/test_network.py
+++ b/nova/tests/test_network.py
@@ -203,9 +203,6 @@ class FlatNetworkTestCase(test.TestCase):
def test_validate_networks_empty_requested_networks(self):
requested_networks = []
- self.mox.StubOutWithMock(db, 'network_get_requested_networks')
- db.network_get_requested_networks(mox.IgnoreArg(),
- mox.IgnoreArg()).AndReturn(networks)
self.mox.ReplayAll()
self.network.validate_networks(None, requested_networks)
@@ -319,11 +316,6 @@ class VlanNetworkTestCase(test.TestCase):
def test_validate_networks_empty_requested_networks(self):
requested_networks = []
- self.mox.StubOutWithMock(db, 'project_get_requested_networks')
- db.project_get_requested_networks(mox.IgnoreArg(),
- mox.IgnoreArg()).AndReturn(networks)
- self.mox.ReplayAll()
-
self.network.validate_networks(None, requested_networks)
def test_validate_networks_invalid_fixed_ip(self):