~yolanda.robla/nova/precise-security

« back to all changes in this revision

Viewing changes to nova/tests/test_network.py

  • Committer: Package Import Robot
  • Author(s): Chuck Short
  • Date: 2011-12-02 10:56:30 UTC
  • mto: (79.1.1 precise-proposed)
  • mto: This revision was merged to the branch mainline in revision 53.
  • Revision ID: package-import@ubuntu.com-20111202105630-tjly1gpmdh533s0q
Tags: upstream-2012.1~e2~20111202.11641
ImportĀ upstreamĀ versionĀ 2012.1~e2~20111202.11641

Show diffs side-by-side

added added

removed removed

Lines of Context:
164
164
                     'ips': 'DONTCARE',
165
165
                     'label': 'test%d' % i,
166
166
                     'mac': 'DE:AD:BE:EF:00:%02x' % i,
 
167
                     'rxtx_cap': "%d" % i * 3,
167
168
                     'vif_uuid':
168
169
                        '00000000-0000-0000-0000-00000000000000%02d' % i,
169
170
                     'rxtx_cap': 3,
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')
891
893
 
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,
 
896
                                                      {'ip': '.*'})
894
897
        self.assertEqual(len(res), len(_vifs))
895
898
 
896
899
        # Doesn't exist
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,
 
901
                                                      {'ip': '10.0.0.1'})
898
902
        self.assertFalse(res)
899
903
 
900
904
        # Get instance 1
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'])
906
910
 
907
911
        # Get instance 2
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'])
913
917
 
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'])
921
925
 
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')
933
938
 
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,
 
941
                                                      {'ip6': '.*'})
936
942
        self.assertEqual(len(res), len(_vifs))
937
943
 
938
944
        # Doesn't exist
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)
942
948
 
943
949
        # Get instance 1
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,
 
951
                                                      {'ip6': '2001:.*2'})
946
952
        self.assertTrue(res)
947
953
        self.assertEqual(len(res), 1)
948
954
        self.assertEqual(res[0]['instance_id'], _vifs[1]['instance_id'])
949
955
 
950
956
        # Get instance 2
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,
 
959
                                                      {'ip6': ip6})
953
960
        self.assertTrue(res)
954
961
        self.assertEqual(len(res), 1)
955
962
        self.assertEqual(res[0]['instance_id'], _vifs[2]['instance_id'])
956
963
 
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'])
963
971
 
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,
 
975
                                                      {'ip6': ip6})
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')
975
985
 
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)
980
990
 
981
991
        # Doesn't exist
982
992
        ip = '10.0.0.1'
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)
986
996
 
987
997
        # Get instance 1
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)
994
1004
 
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'])
1002
1012
 
1003
1013
 
 
1014
class TestRPCFixedManager(network_manager.RPCAllocateFixedIP,
 
1015
        network_manager.NetworkManager):
 
1016
    """Dummy manager that implements RPCAllocateFixedIP"""
 
1017
 
 
1018
 
 
1019
class RPCAllocateTestCase(test.TestCase):
 
1020
    """Tests nova.network.manager.RPCAllocateFixedIP"""
 
1021
    def setUp(self):
 
1022
        super(RPCAllocateTestCase, self).setUp()
 
1023
        self.rpc_fixed = TestRPCFixedManager()
 
1024
        self.context = context.RequestContext('fake', 'fake')
 
1025
 
 
1026
    def test_rpc_allocate(self):
 
1027
        """Test to verify bug 855030 doesn't resurface.
 
1028
 
 
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'
 
1032
 
 
1033
        def fake_allocate(*args, **kwargs):
 
1034
            return address
 
1035
 
 
1036
        def fake_network_get(*args, **kwargs):
 
1037
            return {}
 
1038
 
 
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,
 
1042
                                                     'fake_instance',
 
1043
                                                     'fake_network')
 
1044
        self.assertEqual(rval, address)
 
1045
 
 
1046
 
1004
1047
class TestFloatingIPManager(network_manager.FloatingIP,
1005
1048
        network_manager.NetworkManager):
1006
1049
    """Dummy manager that implements FloatingIP"""