diff options
| author | Jenkins <jenkins@review.openstack.org> | 2012-08-15 01:27:45 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2012-08-15 01:27:45 +0000 |
| commit | 0bc32cfef94dc2e45f86a0e526e3415ec5d4ca39 (patch) | |
| tree | ef33778221b5d9d9a71774ce903929d58406de2b /nova/tests | |
| parent | 76267f4d6268b3a39e46dbace140e15d874dadc5 (diff) | |
| parent | 9af40c167879096a8f0f209bde4e6c5cc9295b86 (diff) | |
Merge "Implement network association in OS API"
Diffstat (limited to 'nova/tests')
| -rw-r--r-- | nova/tests/api/openstack/compute/contrib/test_networks.py | 53 |
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') |
