コード例 #1
0
    def setUp(self):
        self.adminContext = context.get_admin_context()
        test_config['config_files'] = [get_fake_conf('nsx.ini.full.test')]
        cfg.CONF.set_override('api_extensions_path', NSXEXT_PATH)
        # Save the original RESOURCE_ATTRIBUTE_MAP
        self.saved_attr_map = {}
        for resource, attrs in attributes.RESOURCE_ATTRIBUTE_MAP.iteritems():
            self.saved_attr_map[resource] = attrs.copy()
        ext_mgr = MacLearningExtensionManager()
        # mock api client
        self.fc = fake.FakeClient(STUBS_PATH)
        self.mock_nsx = mock.patch(NSXAPI_NAME, autospec=True)
        instance = self.mock_nsx.start()
        # Avoid runs of the synchronizer looping call
        patch_sync = mock.patch.object(sync, '_start_loopingcall')
        patch_sync.start()

        # Emulate tests against NSX 2.x
        instance.return_value.get_version.return_value = Version("3.0")
        instance.return_value.request.side_effect = self.fc.fake_request
        cfg.CONF.set_override('metadata_mode', None, 'NSX')
        self.addCleanup(self.fc.reset_all)
        self.addCleanup(self.restore_resource_attribute_map)
        super(MacLearningDBTestCase, self).setUp(plugin=PLUGIN_NAME,
                                                 ext_mgr=ext_mgr)
コード例 #2
0
ファイル: test_router.py プロジェクト: mshabdiz/neutron
 def _prepare_nat_rules_for_delete_tests(self):
     lrouter = routerlib.create_lrouter(self.fake_cluster,
                                        uuidutils.generate_uuid(), 'pippo',
                                        'fake-lrouter', '10.0.0.1')
     # v2 or v3 makes no difference for this test
     with mock.patch.object(self.fake_cluster.api_client,
                            'get_version',
                            new=lambda: Version('2.0')):
         routerlib.create_lrouter_snat_rule(
             self.fake_cluster,
             lrouter['uuid'],
             '10.0.0.2',
             '10.0.0.2',
             order=220,
             match_criteria={'source_ip_addresses': '192.168.0.0/24'})
         routerlib.create_lrouter_snat_rule(
             self.fake_cluster,
             lrouter['uuid'],
             '10.0.0.3',
             '10.0.0.3',
             order=200,
             match_criteria={'source_ip_addresses': '192.168.0.2/32'})
         routerlib.create_lrouter_dnat_rule(
             self.fake_cluster,
             lrouter['uuid'],
             '192.168.0.2',
             order=200,
             match_criteria={'destination_ip_addresses': '10.0.0.3'})
     return lrouter
コード例 #3
0
ファイル: test_router.py プロジェクト: mshabdiz/neutron
    def _test_version_dependent_update_lrouter(self, version):
        def foo(*args, **kwargs):
            return version

        foo_func_dict = {
            'update_lrouter': {
                2: {
                    -1: foo
                },
                3: {
                    -1: foo,
                    2: foo
                }
            }
        }

        with mock.patch.object(self.fake_cluster.api_client,
                               'get_version',
                               return_value=Version(version)):
            with mock.patch.dict(routerlib.ROUTER_FUNC_DICT,
                                 foo_func_dict,
                                 clear=True):
                return routerlib.update_lrouter(
                    self.fake_cluster,
                    'foo_router_id',
                    'foo_router_name',
                    'foo_nexthop',
                    routes={'foo_destination': 'foo_address'})
コード例 #4
0
 def _create_lrouter(self, version, neutron_id=None, distributed=None):
     with mock.patch.object(
         self.fake_cluster.api_client, 'get_version',
         return_value=Version(version)):
         if not neutron_id:
             neutron_id = uuidutils.generate_uuid()
         lrouter = routerlib.create_lrouter(
             self.fake_cluster, neutron_id, 'pippo',
             'fake-lrouter', '10.0.0.1', distributed=distributed)
         return routerlib.get_lrouter(self.fake_cluster,
                                      lrouter['uuid'])
コード例 #5
0
ファイル: test_router.py プロジェクト: mshabdiz/neutron
 def _test_create_router_nosnat_rule(self, version, expected=1):
     lrouter = routerlib.create_lrouter(self.fake_cluster,
                                        uuidutils.generate_uuid(), 'pippo',
                                        'fake-lrouter', '10.0.0.1')
     with mock.patch.object(self.fake_cluster.api_client,
                            'get_version',
                            new=lambda: Version(version)):
         routerlib.create_lrouter_nosnat_rule(
             self.fake_cluster,
             lrouter['uuid'],
             order=100,
             match_criteria={'destination_ip_addresses': '192.168.0.0/24'})
         rules = routerlib.query_nat_rules(self.fake_cluster,
                                           lrouter['uuid'])
         # NoSNAT rules do not exist in V2
         self.assertEqual(len(rules), expected)
コード例 #6
0
 def _test_create_router_dnat_rule(self, version, dest_port=None):
     lrouter = routerlib.create_lrouter(self.fake_cluster,
                                        uuidutils.generate_uuid(),
                                        'pippo',
                                        'fake-lrouter',
                                        '10.0.0.1')
     with mock.patch.object(self.fake_cluster.api_client,
                            'get_version',
                            return_value=Version(version)):
         routerlib.create_lrouter_dnat_rule(
             self.fake_cluster, lrouter['uuid'], '192.168.0.2', order=200,
             dest_port=dest_port,
             match_criteria={'destination_ip_addresses': '10.0.0.3'})
         rules = routerlib.query_nat_rules(
             self.fake_cluster, lrouter['uuid'])
         self.assertEqual(len(rules), 1)
コード例 #7
0
 def _test_create_router_snat_rule(self, version):
     lrouter = routerlib.create_lrouter(self.fake_cluster,
                                        uuidutils.generate_uuid(),
                                        'pippo',
                                        'fake-lrouter',
                                        '10.0.0.1')
     with mock.patch.object(self.fake_cluster.api_client,
                            'get_version',
                            new=lambda: Version(version)):
         routerlib.create_lrouter_snat_rule(
             self.fake_cluster, lrouter['uuid'],
             '10.0.0.2', '10.0.0.2', order=200,
             match_criteria={'source_ip_addresses': '192.168.0.24'})
         rules = routerlib.query_nat_rules(
             self.fake_cluster, lrouter['uuid'])
         self.assertEqual(len(rules), 1)
コード例 #8
0
 def _test_create_lrouter_dnat_rule(self, version):
     with mock.patch.object(self.fake_cluster.api_client,
                            'get_version',
                            new=lambda: Version(version)):
         tenant_id = 'pippo'
         lrouter = routerlib.create_lrouter(self.fake_cluster,
                                            uuidutils.generate_uuid(),
                                            tenant_id, 'fake_router',
                                            '192.168.0.1')
         nat_rule = routerlib.create_lrouter_dnat_rule(
             self.fake_cluster,
             lrouter['uuid'],
             '10.0.0.99',
             match_criteria={'destination_ip_addresses': '192.168.0.5'})
         uri = nsxlib._build_uri_path(routerlib.LROUTERNAT_RESOURCE,
                                      nat_rule['uuid'], lrouter['uuid'])
         resp_obj = nsxlib.do_request("GET", uri, cluster=self.fake_cluster)
         self.assertEqual('DestinationNatRule', resp_obj['type'])
         self.assertEqual('192.168.0.5',
                          resp_obj['match']['destination_ip_addresses'])
コード例 #9
0
 def test_function_handling_with_obsolete_major(self):
     version = Version('1.2')
     self.assertRaises(NotImplementedError,
                       versioning.get_function_by_version,
                       routerlib.ROUTER_FUNC_DICT, 'create_lrouter',
                       version)
コード例 #10
0
 def test_function_handling_with_newer_major(self):
     version = Version('5.2')
     function = versioning.get_function_by_version(
         routerlib.ROUTER_FUNC_DICT, 'create_lrouter', version)
     self.assertEqual(routerlib.create_explicit_routing_lrouter, function)
コード例 #11
0
 def test_function_handling_missing_minor(self):
     version = Version('2.0')
     function = versioning.get_function_by_version(
         routerlib.ROUTER_FUNC_DICT, 'create_lrouter', version)
     self.assertEqual(routerlib.create_implicit_routing_lrouter, function)