From 82804eb46542b2fdaef8b6db8696b50dbf5b7210 Mon Sep 17 00:00:00 2001 From: Jason Kölker Date: Mon, 14 Nov 2011 13:14:58 -0600 Subject: Remove VIF<->Network FK dependancy Related to blueprint untie-nova-network-models. Depends-On: I665f402fe0ab1b301ab6761e80b11b101656065e Change-Id: I9bfb957effe0a2420c312add1cca5d7af509579d --- nova/tests/fake_network.py | 21 +++++++++++++++--- nova/tests/test_network.py | 55 +++++++++++++++++++++++++++------------------- 2 files changed, 50 insertions(+), 26 deletions(-) (limited to 'nova/tests') diff --git a/nova/tests/fake_network.py b/nova/tests/fake_network.py index bf12740e3..e1af85239 100644 --- a/nova/tests/fake_network.py +++ b/nova/tests/fake_network.py @@ -83,6 +83,9 @@ class FakeNetworkManager(network_manager.NetworkManager): fakenet['id'] = 999 return fakenet + def network_get(self, context, network_id): + return {'cidr_v6': '2001:db8:69:%x::/64' % network_id} + def network_get_all(self, context): raise exception.NoNetworksFound() @@ -92,15 +95,18 @@ class FakeNetworkManager(network_manager.NetworkManager): {'address': '173.16.1.2'}] vifs = [{'instance_id': 0, - 'fixed_ipv6': '2001:db8::dcad:beff:feef:1', + 'network_id': 1, + 'address': 'DC:AD:BE:FF:EF:01', 'fixed_ips': [{'address': '172.16.0.1', 'floating_ips': [floats[0]]}]}, {'instance_id': 20, - 'fixed_ipv6': '2001:db8::dcad:beff:feef:2', + 'network_id': 21, + 'address': 'DC:AD:BE:FF:EF:02', 'fixed_ips': [{'address': '172.16.0.2', 'floating_ips': [floats[1]]}]}, {'instance_id': 30, - 'fixed_ipv6': '2002:db8::dcad:beff:feef:2', + 'network_id': 31, + 'address': 'DC:AD:BE:FF:EF:03', 'fixed_ips': [{'address': '173.16.0.2', 'floating_ips': [floats[2]]}]}] return vifs @@ -236,6 +242,8 @@ def fake_get_instance_nw_info(stubs, num_networks=1, ips_per_vif=2, floating_ip_id = floating_ip_ids() fixed_ip_id = fixed_ip_ids() + networks = [fake_network(x) for x in xrange(num_networks)] + def fixed_ips_fake(*args, **kwargs): return [next_fixed_ip(i, floating_ips_per_fixed_ip) for i in xrange(num_networks) for j in xrange(ips_per_vif)] @@ -246,8 +254,15 @@ def fake_get_instance_nw_info(stubs, num_networks=1, ips_per_vif=2, def instance_type_fake(*args, **kwargs): return flavor + def network_get_fake(context, network_id): + nets = [n for n in networks if n['id'] == network_id] + if not nets: + raise exception.NetworkNotFound(network_id=network_id) + return nets[0] + stubs.Set(db, 'fixed_ip_get_by_instance', fixed_ips_fake) stubs.Set(db, 'virtual_interface_get_by_instance', virtual_interfaces_fake) stubs.Set(db, 'instance_type_get', instance_type_fake) + stubs.Set(db, 'network_get', network_get_fake) return network.get_instance_nw_info(None, 0, 0, None) diff --git a/nova/tests/test_network.py b/nova/tests/test_network.py index 9e12ed765..1cb049e4b 100644 --- a/nova/tests/test_network.py +++ b/nova/tests/test_network.py @@ -889,40 +889,43 @@ class CommonNetworkTestCase(test.TestCase): def test_get_instance_uuids_by_ip_regex(self): manager = fake_network.FakeNetworkManager() _vifs = manager.db.virtual_interface_get_all(None) + fake_context = context.RequestContext('user', 'project') # Greedy get eveything - res = manager.get_instance_uuids_by_ip_filter(None, {'ip': '.*'}) + res = manager.get_instance_uuids_by_ip_filter(fake_context, + {'ip': '.*'}) self.assertEqual(len(res), len(_vifs)) # Doesn't exist - res = manager.get_instance_uuids_by_ip_filter(None, {'ip': '10.0.0.1'}) + res = manager.get_instance_uuids_by_ip_filter(fake_context, + {'ip': '10.0.0.1'}) self.assertFalse(res) # Get instance 1 - res = manager.get_instance_uuids_by_ip_filter(None, - {'ip': '172.16.0.2'}) + res = manager.get_instance_uuids_by_ip_filter(fake_context, + {'ip': '172.16.0.2'}) self.assertTrue(res) self.assertEqual(len(res), 1) self.assertEqual(res[0]['instance_id'], _vifs[1]['instance_id']) # Get instance 2 - res = manager.get_instance_uuids_by_ip_filter(None, - {'ip': '173.16.0.2'}) + res = manager.get_instance_uuids_by_ip_filter(fake_context, + {'ip': '173.16.0.2'}) self.assertTrue(res) self.assertEqual(len(res), 1) self.assertEqual(res[0]['instance_id'], _vifs[2]['instance_id']) # Get instance 0 and 1 - res = manager.get_instance_uuids_by_ip_filter(None, - {'ip': '172.16.0.*'}) + res = manager.get_instance_uuids_by_ip_filter(fake_context, + {'ip': '172.16.0.*'}) self.assertTrue(res) self.assertEqual(len(res), 2) self.assertEqual(res[0]['instance_id'], _vifs[0]['instance_id']) self.assertEqual(res[1]['instance_id'], _vifs[1]['instance_id']) # Get instance 1 and 2 - res = manager.get_instance_uuids_by_ip_filter(None, - {'ip': '17..16.0.2'}) + res = manager.get_instance_uuids_by_ip_filter(fake_context, + {'ip': '17..16.0.2'}) self.assertTrue(res) self.assertEqual(len(res), 2) self.assertEqual(res[0]['instance_id'], _vifs[1]['instance_id']) @@ -931,40 +934,45 @@ class CommonNetworkTestCase(test.TestCase): def test_get_instance_uuids_by_ipv6_regex(self): manager = fake_network.FakeNetworkManager() _vifs = manager.db.virtual_interface_get_all(None) + fake_context = context.RequestContext('user', 'project') # Greedy get eveything - res = manager.get_instance_uuids_by_ip_filter(None, {'ip6': '.*'}) + res = manager.get_instance_uuids_by_ip_filter(fake_context, + {'ip6': '.*'}) self.assertEqual(len(res), len(_vifs)) # Doesn't exist - res = manager.get_instance_uuids_by_ip_filter(None, + res = manager.get_instance_uuids_by_ip_filter(fake_context, {'ip6': '.*1034.*'}) self.assertFalse(res) # Get instance 1 - res = manager.get_instance_uuids_by_ip_filter(None, - {'ip6': '2001:.*:2'}) + res = manager.get_instance_uuids_by_ip_filter(fake_context, + {'ip6': '2001:.*2'}) self.assertTrue(res) self.assertEqual(len(res), 1) self.assertEqual(res[0]['instance_id'], _vifs[1]['instance_id']) # Get instance 2 - ip6 = '2002:db8::dcad:beff:feef:2' - res = manager.get_instance_uuids_by_ip_filter(None, {'ip6': ip6}) + ip6 = '2001:db8:69:1f:dead:beff:feff:ef03' + res = manager.get_instance_uuids_by_ip_filter(fake_context, + {'ip6': ip6}) self.assertTrue(res) self.assertEqual(len(res), 1) self.assertEqual(res[0]['instance_id'], _vifs[2]['instance_id']) # Get instance 0 and 1 - res = manager.get_instance_uuids_by_ip_filter(None, {'ip6': '2001:.*'}) + res = manager.get_instance_uuids_by_ip_filter(fake_context, + {'ip6': '.*ef0[1,2]'}) self.assertTrue(res) self.assertEqual(len(res), 2) self.assertEqual(res[0]['instance_id'], _vifs[0]['instance_id']) self.assertEqual(res[1]['instance_id'], _vifs[1]['instance_id']) # Get instance 1 and 2 - ip6 = '200.:db8::dcad:beff:feef:2' - res = manager.get_instance_uuids_by_ip_filter(None, {'ip6': ip6}) + ip6 = '2001:db8:69:1.:dead:beff:feff:ef0.' + res = manager.get_instance_uuids_by_ip_filter(fake_context, + {'ip6': ip6}) self.assertTrue(res) self.assertEqual(len(res), 2) self.assertEqual(res[0]['instance_id'], _vifs[1]['instance_id']) @@ -973,21 +981,22 @@ class CommonNetworkTestCase(test.TestCase): def test_get_instance_uuids_by_ip(self): manager = fake_network.FakeNetworkManager() _vifs = manager.db.virtual_interface_get_all(None) + fake_context = context.RequestContext('user', 'project') # No regex for you! - res = manager.get_instance_uuids_by_ip_filter(None, + res = manager.get_instance_uuids_by_ip_filter(fake_context, {'fixed_ip': '.*'}) self.assertFalse(res) # Doesn't exist ip = '10.0.0.1' - res = manager.get_instance_uuids_by_ip_filter(None, + res = manager.get_instance_uuids_by_ip_filter(fake_context, {'fixed_ip': ip}) self.assertFalse(res) # Get instance 1 ip = '172.16.0.2' - res = manager.get_instance_uuids_by_ip_filter(None, + res = manager.get_instance_uuids_by_ip_filter(fake_context, {'fixed_ip': ip}) self.assertTrue(res) self.assertEqual(len(res), 1) @@ -995,7 +1004,7 @@ class CommonNetworkTestCase(test.TestCase): # Get instance 2 ip = '173.16.0.2' - res = manager.get_instance_uuids_by_ip_filter(None, + res = manager.get_instance_uuids_by_ip_filter(fake_context, {'fixed_ip': ip}) self.assertTrue(res) self.assertEqual(len(res), 1) -- cgit