888
889
def test_get_instance_uuids_by_ip_regex(self):
889
890
manager = fake_network.FakeNetworkManager()
890
891
_vifs = manager.db.virtual_interface_get_all(None)
892
fake_context = context.RequestContext('user', 'project')
892
894
# Greedy get eveything
893
res = manager.get_instance_uuids_by_ip_filter(None, {'ip': '.*'})
895
res = manager.get_instance_uuids_by_ip_filter(fake_context,
894
897
self.assertEqual(len(res), len(_vifs))
897
res = manager.get_instance_uuids_by_ip_filter(None, {'ip': '10.0.0.1'})
900
res = manager.get_instance_uuids_by_ip_filter(fake_context,
898
902
self.assertFalse(res)
901
res = manager.get_instance_uuids_by_ip_filter(None,
902
{'ip': '172.16.0.2'})
905
res = manager.get_instance_uuids_by_ip_filter(fake_context,
906
{'ip': '172.16.0.2'})
903
907
self.assertTrue(res)
904
908
self.assertEqual(len(res), 1)
905
909
self.assertEqual(res[0]['instance_id'], _vifs[1]['instance_id'])
908
res = manager.get_instance_uuids_by_ip_filter(None,
909
{'ip': '173.16.0.2'})
912
res = manager.get_instance_uuids_by_ip_filter(fake_context,
913
{'ip': '173.16.0.2'})
910
914
self.assertTrue(res)
911
915
self.assertEqual(len(res), 1)
912
916
self.assertEqual(res[0]['instance_id'], _vifs[2]['instance_id'])
914
918
# Get instance 0 and 1
915
res = manager.get_instance_uuids_by_ip_filter(None,
916
{'ip': '172.16.0.*'})
919
res = manager.get_instance_uuids_by_ip_filter(fake_context,
920
{'ip': '172.16.0.*'})
917
921
self.assertTrue(res)
918
922
self.assertEqual(len(res), 2)
919
923
self.assertEqual(res[0]['instance_id'], _vifs[0]['instance_id'])
920
924
self.assertEqual(res[1]['instance_id'], _vifs[1]['instance_id'])
922
926
# Get instance 1 and 2
923
res = manager.get_instance_uuids_by_ip_filter(None,
924
{'ip': '17..16.0.2'})
927
res = manager.get_instance_uuids_by_ip_filter(fake_context,
928
{'ip': '17..16.0.2'})
925
929
self.assertTrue(res)
926
930
self.assertEqual(len(res), 2)
927
931
self.assertEqual(res[0]['instance_id'], _vifs[1]['instance_id'])
930
934
def test_get_instance_uuids_by_ipv6_regex(self):
931
935
manager = fake_network.FakeNetworkManager()
932
936
_vifs = manager.db.virtual_interface_get_all(None)
937
fake_context = context.RequestContext('user', 'project')
934
939
# Greedy get eveything
935
res = manager.get_instance_uuids_by_ip_filter(None, {'ip6': '.*'})
940
res = manager.get_instance_uuids_by_ip_filter(fake_context,
936
942
self.assertEqual(len(res), len(_vifs))
939
res = manager.get_instance_uuids_by_ip_filter(None,
945
res = manager.get_instance_uuids_by_ip_filter(fake_context,
940
946
{'ip6': '.*1034.*'})
941
947
self.assertFalse(res)
944
res = manager.get_instance_uuids_by_ip_filter(None,
945
{'ip6': '2001:.*:2'})
950
res = manager.get_instance_uuids_by_ip_filter(fake_context,
946
952
self.assertTrue(res)
947
953
self.assertEqual(len(res), 1)
948
954
self.assertEqual(res[0]['instance_id'], _vifs[1]['instance_id'])
951
ip6 = '2002:db8::dcad:beff:feef:2'
952
res = manager.get_instance_uuids_by_ip_filter(None, {'ip6': ip6})
957
ip6 = '2001:db8:69:1f:dead:beff:feff:ef03'
958
res = manager.get_instance_uuids_by_ip_filter(fake_context,
953
960
self.assertTrue(res)
954
961
self.assertEqual(len(res), 1)
955
962
self.assertEqual(res[0]['instance_id'], _vifs[2]['instance_id'])
957
964
# Get instance 0 and 1
958
res = manager.get_instance_uuids_by_ip_filter(None, {'ip6': '2001:.*'})
965
res = manager.get_instance_uuids_by_ip_filter(fake_context,
966
{'ip6': '.*ef0[1,2]'})
959
967
self.assertTrue(res)
960
968
self.assertEqual(len(res), 2)
961
969
self.assertEqual(res[0]['instance_id'], _vifs[0]['instance_id'])
962
970
self.assertEqual(res[1]['instance_id'], _vifs[1]['instance_id'])
964
972
# Get instance 1 and 2
965
ip6 = '200.:db8::dcad:beff:feef:2'
966
res = manager.get_instance_uuids_by_ip_filter(None, {'ip6': ip6})
973
ip6 = '2001:db8:69:1.:dead:beff:feff:ef0.'
974
res = manager.get_instance_uuids_by_ip_filter(fake_context,
967
976
self.assertTrue(res)
968
977
self.assertEqual(len(res), 2)
969
978
self.assertEqual(res[0]['instance_id'], _vifs[1]['instance_id'])
972
981
def test_get_instance_uuids_by_ip(self):
973
982
manager = fake_network.FakeNetworkManager()
974
983
_vifs = manager.db.virtual_interface_get_all(None)
984
fake_context = context.RequestContext('user', 'project')
976
986
# No regex for you!
977
res = manager.get_instance_uuids_by_ip_filter(None,
987
res = manager.get_instance_uuids_by_ip_filter(fake_context,
978
988
{'fixed_ip': '.*'})
979
989
self.assertFalse(res)
983
res = manager.get_instance_uuids_by_ip_filter(None,
993
res = manager.get_instance_uuids_by_ip_filter(fake_context,
984
994
{'fixed_ip': ip})
985
995
self.assertFalse(res)
988
998
ip = '172.16.0.2'
989
res = manager.get_instance_uuids_by_ip_filter(None,
999
res = manager.get_instance_uuids_by_ip_filter(fake_context,
990
1000
{'fixed_ip': ip})
991
1001
self.assertTrue(res)
992
1002
self.assertEqual(len(res), 1)
995
1005
# Get instance 2
996
1006
ip = '173.16.0.2'
997
res = manager.get_instance_uuids_by_ip_filter(None,
1007
res = manager.get_instance_uuids_by_ip_filter(fake_context,
998
1008
{'fixed_ip': ip})
999
1009
self.assertTrue(res)
1000
1010
self.assertEqual(len(res), 1)
1001
1011
self.assertEqual(res[0]['instance_id'], _vifs[2]['instance_id'])
1014
class TestRPCFixedManager(network_manager.RPCAllocateFixedIP,
1015
network_manager.NetworkManager):
1016
"""Dummy manager that implements RPCAllocateFixedIP"""
1019
class RPCAllocateTestCase(test.TestCase):
1020
"""Tests nova.network.manager.RPCAllocateFixedIP"""
1022
super(RPCAllocateTestCase, self).setUp()
1023
self.rpc_fixed = TestRPCFixedManager()
1024
self.context = context.RequestContext('fake', 'fake')
1026
def test_rpc_allocate(self):
1027
"""Test to verify bug 855030 doesn't resurface.
1029
Mekes sure _rpc_allocate_fixed_ip returns a value so the call
1030
returns properly and the greenpool completes."""
1031
address = '10.10.10.10'
1033
def fake_allocate(*args, **kwargs):
1036
def fake_network_get(*args, **kwargs):
1039
self.stubs.Set(self.rpc_fixed, 'allocate_fixed_ip', fake_allocate)
1040
self.stubs.Set(self.rpc_fixed.db, 'network_get', fake_network_get)
1041
rval = self.rpc_fixed._rpc_allocate_fixed_ip(self.context,
1044
self.assertEqual(rval, address)
1004
1047
class TestFloatingIPManager(network_manager.FloatingIP,
1005
1048
network_manager.NetworkManager):
1006
1049
"""Dummy manager that implements FloatingIP"""