summaryrefslogtreecommitdiffstats
path: root/nova/tests
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-08-15 01:27:45 +0000
committerGerrit Code Review <review@openstack.org>2012-08-15 01:27:45 +0000
commit0bc32cfef94dc2e45f86a0e526e3415ec5d4ca39 (patch)
treeef33778221b5d9d9a71774ce903929d58406de2b /nova/tests
parent76267f4d6268b3a39e46dbace140e15d874dadc5 (diff)
parent9af40c167879096a8f0f209bde4e6c5cc9295b86 (diff)
Merge "Implement network association in OS API"
Diffstat (limited to 'nova/tests')
-rw-r--r--nova/tests/api/openstack/compute/contrib/test_networks.py53
1 files changed, 40 insertions, 13 deletions
diff --git a/nova/tests/api/openstack/compute/contrib/test_networks.py b/nova/tests/api/openstack/compute/contrib/test_networks.py
index 91858f156..efbb7ceba 100644
--- a/nova/tests/api/openstack/compute/contrib/test_networks.py
+++ b/nova/tests/api/openstack/compute/contrib/test_networks.py
@@ -46,6 +46,7 @@ FAKE_NETWORKS = [
'bridge': 'br101', 'vpn_public_port': 1001,
'dhcp_start': '10.0.0.11', 'bridge_interface': 'eth0',
'updated_at': None, 'id': 2, 'cidr_v6': None,
+ 'uuid': '20c8acc0-f747-4d71-a389-46d078ebf000',
'deleted_at': None, 'gateway': '10.0.0.9',
'label': 'mynet_1', 'project_id': None,
'vpn_private_address': '10.0.0.10', 'deleted': False,
@@ -70,7 +71,7 @@ FAKE_USER_NETWORKS = [
'id': 2, 'cidr': '10.0.0.10/29', 'netmask': '255.255.255.248',
'gateway': '10.0.0.9', 'broadcast': '10.0.0.15', 'dns1': None,
'dns2': None, 'cidr_v6': None, 'gateway_v6': None, 'label': 'mynet_1',
- 'netmask_v6': None,
+ 'netmask_v6': None, 'uuid': '20c8acc0-f747-4d71-a389-46d078ebf000',
},
]
@@ -87,13 +88,26 @@ class FakeNetworkAPI(object):
return True
raise exception.NetworkNotFoundForUUID()
- #NOTE(bcwaldon): this does nothing other than check for existance
- def disassociate(self, context, network_id):
- for i, network in enumerate(self.networks):
- if network.get('uuid') == network_id:
+ def disassociate(self, context, network_uuid):
+ for network in self.networks:
+ if network.get('uuid') == network_uuid:
+ network['project_id'] = None
return True
raise exception.NetworkNotFound()
+ def add_network_to_project(self, context,
+ project_id, network_uuid=None):
+ if network_uuid:
+ for network in self.networks:
+ if network.get('project_id', None) is None:
+ network['project_id'] = project_id
+ return
+ return
+ for network in self.networks:
+ if network.get('uuid') == network_uuid:
+ network['project_id'] = project_id
+ return
+
def get_all(self, context):
return self.networks
@@ -113,13 +127,18 @@ class NetworksTest(test.TestCase):
fakes.stub_out_networking(self.stubs)
fakes.stub_out_rate_limiting(self.stubs)
+ @staticmethod
+ def network_uuid_to_id(network):
+ network['id'] = network['uuid']
+ del network['uuid']
+
def test_network_list_all_as_user(self):
self.maxDiff = None
req = fakes.HTTPRequest.blank('/v2/1234/os-networks')
res_dict = self.controller.index(req)
expected = copy.deepcopy(FAKE_USER_NETWORKS)
- expected[0]['id'] = expected[0]['uuid']
- del expected[0]['uuid']
+ for network in expected:
+ self.network_uuid_to_id(network)
self.assertEquals(res_dict, {'networks': expected})
def test_network_list_all_as_admin(self):
@@ -127,8 +146,8 @@ class NetworksTest(test.TestCase):
req.environ["nova.context"].is_admin = True
res_dict = self.controller.index(req)
expected = copy.deepcopy(FAKE_NETWORKS)
- expected[0]['id'] = expected[0]['uuid']
- del expected[0]['uuid']
+ for network in expected:
+ self.network_uuid_to_id(network)
self.assertEquals(res_dict, {'networks': expected})
def test_network_disassociate(self):
@@ -148,8 +167,7 @@ class NetworksTest(test.TestCase):
req = fakes.HTTPRequest.blank('/v2/1234/os-networks/%s' % uuid)
res_dict = self.controller.show(req, uuid)
expected = {'network': copy.deepcopy(FAKE_USER_NETWORKS[0])}
- expected['network']['id'] = expected['network']['uuid']
- del expected['network']['uuid']
+ self.network_uuid_to_id(expected['network'])
self.assertEqual(res_dict, expected)
def test_network_get_as_admin(self):
@@ -158,8 +176,7 @@ class NetworksTest(test.TestCase):
req.environ["nova.context"].is_admin = True
res_dict = self.controller.show(req, uuid)
expected = {'network': copy.deepcopy(FAKE_NETWORKS[0])}
- expected['network']['id'] = expected['network']['uuid']
- del expected['network']['uuid']
+ self.network_uuid_to_id(expected['network'])
self.assertEqual(res_dict, expected)
def test_network_get_not_found(self):
@@ -177,3 +194,13 @@ class NetworksTest(test.TestCase):
req = fakes.HTTPRequest.blank('/v2/1234/os-networks/100')
self.assertRaises(webob.exc.HTTPNotFound,
self.controller.delete, req, 100)
+
+ def test_network_add(self):
+ uuid = FAKE_NETWORKS[1]['uuid']
+ req = fakes.HTTPRequest.blank('/v2/1234/os-networks/add')
+ res = self.controller.add(req, {'id': uuid})
+ self.assertEqual(res.status_int, 202)
+ req = fakes.HTTPRequest.blank('/v2/1234/os-networks/%s' % uuid)
+ req.environ["nova.context"].is_admin = True
+ res_dict = self.controller.show(req, uuid)
+ self.assertEqual(res_dict['network']['project_id'], 'fake')