コード例 #1
0
ファイル: test_router.py プロジェクト: paulphoenix01/neutron2
    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_module.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'})
コード例 #2
0
 def test_delete_nat_rules_by_match_len_mismatch_does_not_raise(self):
     lrouter = self._prepare_nat_rules_for_delete_tests()
     rules = routerlib.query_nat_rules(self.fake_cluster, lrouter['uuid'])
     self.assertEqual(len(rules), 3)
     deleted_rules = routerlib.delete_nat_rules_by_match(
         self.fake_cluster,
         lrouter['uuid'],
         'DestinationNatRule',
         max_num_expected=1,
         min_num_expected=1,
         raise_on_len_mismatch=False,
         destination_ip_addresses='99.99.99.99')
     self.assertEqual(0, deleted_rules)
     # add an extra rule to emulate a duplicate one
     with mock.patch.object(self.fake_cluster.api_client,
                            'get_version',
                            new=lambda: version_module.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'})
     deleted_rules_2 = routerlib.delete_nat_rules_by_match(
         self.fake_cluster,
         lrouter['uuid'],
         'SourceNatRule',
         min_num_expected=1,
         max_num_expected=1,
         raise_on_len_mismatch=False,
         source_ip_addresses='192.168.0.0/24')
     self.assertEqual(2, deleted_rules_2)
コード例 #3
0
ファイル: base.py プロジェクト: ygkim93/OpenStackInAction
    def setUp(self):
        self.fc = fake.FakeClient(STUBS_PATH)
        self.mock_nsxapi = mock.patch(NSXAPI_NAME, autospec=True)
        instance = self.mock_nsxapi.start()
        instance.return_value.login.return_value = "the_cookie"
        # Choose 3.0, but the version is irrelevant for the aim of
        # these tests as calls are throwing up errors anyway
        fake_version = getattr(self, 'fake_version', "3.0")
        instance.return_value.get_version.return_value = (
            version.Version(fake_version))

        def _faulty_request(*args, **kwargs):
            raise exception.NsxApiException

        instance.return_value.request.side_effect = _faulty_request
        self.fake_cluster = cluster.NSXCluster(
            name='fake-cluster', nsx_controllers=['1.1.1.1:999'],
            default_tz_uuid=_uuid(), nsx_user='******', nsx_password='******')
        self.fake_cluster.api_client = client.NsxApiClient(
            ('1.1.1.1', '999', True),
            self.fake_cluster.nsx_user, self.fake_cluster.nsx_password,
            self.fake_cluster.req_timeout, self.fake_cluster.http_timeout,
            self.fake_cluster.retries, self.fake_cluster.redirects)

        super(NsxlibNegativeBaseTestCase, self).setUp()
        self.addCleanup(self.fc.reset_all)
        self.addCleanup(self.mock_nsxapi.stop)
コード例 #4
0
ファイル: test_router.py プロジェクト: paulphoenix01/neutron2
 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_module.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
コード例 #5
0
    def setUp(self):
        test_lib.test_config['config_files'] = [
            vmware.get_fake_conf('nsx.ini.full.test')]
        cfg.CONF.set_override('api_extensions_path', vmware.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(vmware.STUBS_PATH)
        self.mock_nsx = mock.patch(vmware.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.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=vmware.PLUGIN_NAME,
                                                 ext_mgr=ext_mgr)
        self.adminContext = context.get_admin_context()
コード例 #6
0
ファイル: test_nsx_opts.py プロジェクト: nabilmaad/neutron
 def test_agentless_extensions_version_fail(self):
     q_config.parse(['--config-file', BASE_CONF_PATH,
                     '--config-file', NSX_INI_AGENTLESS_PATH])
     cfg.CONF.set_override('core_plugin', PLUGIN_NAME)
     self.assertEqual(config.AgentModes.AGENTLESS,
                      cfg.CONF.NSX.agent_mode)
     with mock.patch.object(client.NsxApiClient,
                            'get_version',
                            return_value=version.Version("3.2")):
         self.assertRaises(exceptions.NsxPluginException, NeutronManager)
コード例 #7
0
ファイル: test_nsx_sync.py プロジェクト: mshabdiz/neutron
    def setUp(self):
        # mock api client
        self.fc = fake.FakeClient(STUBS_PATH)
        mock_api = mock.patch(NSXAPI_NAME, autospec=True)
        # Avoid runs of the synchronizer looping call
        # These unit tests will excplicitly invoke synchronization
        patch_sync = mock.patch.object(sync, '_start_loopingcall')
        self.mock_api = mock_api.start()
        patch_sync.start()
        self.mock_api.return_value.login.return_value = "the_cookie"
        # Emulate tests against NSX 3.x
        self.mock_api.return_value.get_version.return_value = (
            version.Version("3.1"))

        self.mock_api.return_value.request.side_effect = self.fc.fake_request
        self.fake_cluster = cluster.NSXCluster(name='fake-cluster',
                                               nsx_controllers=['1.1.1.1:999'],
                                               default_tz_uuid=_uuid(),
                                               nsx_user='******',
                                               nsx_password='******')
        self.fake_cluster.api_client = client.NsxApiClient(
            ('1.1.1.1', '999', True),
            self.fake_cluster.nsx_user,
            self.fake_cluster.nsx_password,
            request_timeout=self.fake_cluster.req_timeout,
            http_timeout=self.fake_cluster.http_timeout,
            retries=self.fake_cluster.retries,
            redirects=self.fake_cluster.redirects)
        # Instantiate Neutron plugin
        # and setup needed config variables
        args = [
            '--config-file',
            get_fake_conf('neutron.conf.test'), '--config-file',
            get_fake_conf('nsx.ini.test')
        ]
        config.parse(args=args)
        cfg.CONF.set_override('allow_overlapping_ips', True)
        self._plugin = plugin.NsxPlugin()
        # Mock neutron manager plugin load functions to speed up tests
        mock_nm_get_plugin = mock.patch('neutron.manager.NeutronManager.'
                                        'get_plugin')
        mock_nm_get_service_plugins = mock.patch(
            'neutron.manager.NeutronManager.get_service_plugins')
        self.mock_nm_get_plugin = mock_nm_get_plugin.start()
        self.mock_nm_get_plugin.return_value = self._plugin
        mock_nm_get_service_plugins.start()
        super(SyncTestCase, self).setUp()
        self.addCleanup(self.fc.reset_all)
        self.addCleanup(patch_sync.stop)
        self.addCleanup(mock_api.stop)
        self.addCleanup(mock_nm_get_plugin.stop)
        self.addCleanup(mock_nm_get_service_plugins.stop)
コード例 #8
0
ファイル: test_router.py プロジェクト: paulphoenix01/neutron2
 def _create_lrouter(self, version, neutron_id=None, distributed=None):
     with mock.patch.object(self.fake_cluster.api_client,
                            'get_version',
                            return_value=version_module.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'])
コード例 #9
0
 def test_agentless_extensions_unmet_deps_fail(self):
     self.config_parse(args=['--config-file', BASE_CONF_PATH,
                             '--config-file', NSX_INI_AGENTLESS_PATH])
     cfg.CONF.set_override('core_plugin', vmware.PLUGIN_NAME)
     self.assertEqual(config.AgentModes.AGENTLESS,
                      cfg.CONF.NSX.agent_mode)
     with mock.patch.object(client.NsxApiClient,
                            'get_version',
                            return_value=version.Version("3.2")):
         with mock.patch.object(lsnlib,
                                'service_cluster_exists',
                                return_value=False):
             self.assertRaises(exceptions.NsxPluginException,
                               manager.NeutronManager)
コード例 #10
0
ファイル: test_router.py プロジェクト: paulphoenix01/neutron2
 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_module.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)
コード例 #11
0
ファイル: test_router.py プロジェクト: paulphoenix01/neutron2
 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_module.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)
コード例 #12
0
ファイル: test_router.py プロジェクト: paulphoenix01/neutron2
 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_module.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)
コード例 #13
0
ファイル: test_nsx_opts.py プロジェクト: nabilmaad/neutron
 def test_agentless_extensions(self):
     q_config.parse(['--config-file', BASE_CONF_PATH,
                     '--config-file', NSX_INI_AGENTLESS_PATH])
     cfg.CONF.set_override('core_plugin', PLUGIN_NAME)
     self.assertEqual(config.AgentModes.AGENTLESS,
                      cfg.CONF.NSX.agent_mode)
     # The version returned from NSX does not really matter here
     with mock.patch.object(client.NsxApiClient,
                            'get_version',
                            return_value=version.Version("9.9")):
         with mock.patch.object(lsnlib,
                                'service_cluster_exists',
                                return_value=True):
             plugin = NeutronManager().get_plugin()
             self.assertNotIn('agent',
                              plugin.supported_extension_aliases)
             self.assertNotIn('dhcp_agent_scheduler',
                              plugin.supported_extension_aliases)
コード例 #14
0
ファイル: test_nsx_opts.py プロジェクト: cernops/neutron
 def test_combined_extensions(self):
     self.config_parse(args=[
         '--config-file', BASE_CONF_PATH, '--config-file',
         NSX_INI_COMBINED_PATH
     ])
     cfg.CONF.set_override('core_plugin', vmware.PLUGIN_NAME)
     self.assertEqual(config.AgentModes.COMBINED, cfg.CONF.NSX.agent_mode)
     with mock.patch.object(client.NsxApiClient,
                            'get_version',
                            return_value=version.Version("4.2")):
         with mock.patch.object(lsnlib,
                                'service_cluster_exists',
                                return_value=True):
             plugin = manager.NeutronManager().get_plugin()
             self.assertIn('agent', plugin.supported_extension_aliases)
             self.assertIn('dhcp_agent_scheduler',
                           plugin.supported_extension_aliases)
             self.assertIn('lsn', plugin.supported_extension_aliases)
コード例 #15
0
ファイル: test_router.py プロジェクト: paulphoenix01/neutron2
 def _test_create_lrouter_dnat_rule(self, version):
     with mock.patch.object(self.fake_cluster.api_client,
                            'get_version',
                            new=lambda: version_module.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'])
コード例 #16
0
ファイル: base.py プロジェクト: ygkim93/OpenStackInAction
    def setUp(self):
        self.fc = fake.FakeClient(STUBS_PATH)
        self.mock_nsxapi = mock.patch(NSXAPI_NAME, autospec=True)
        instance = self.mock_nsxapi.start()
        instance.return_value.login.return_value = "the_cookie"
        fake_version = getattr(self, 'fake_version', "3.0")
        instance.return_value.get_version.return_value = (
            version.Version(fake_version))

        instance.return_value.request.side_effect = self.fc.fake_request
        self.fake_cluster = cluster.NSXCluster(
            name='fake-cluster', nsx_controllers=['1.1.1.1:999'],
            default_tz_uuid=_uuid(), nsx_user='******', nsx_password='******')
        self.fake_cluster.api_client = client.NsxApiClient(
            ('1.1.1.1', '999', True),
            self.fake_cluster.nsx_user, self.fake_cluster.nsx_password,
            self.fake_cluster.req_timeout, self.fake_cluster.http_timeout,
            self.fake_cluster.retries, self.fake_cluster.redirects)

        super(NsxlibTestCase, self).setUp()
        self.addCleanup(self.fc.reset_all)
        self.addCleanup(self.mock_nsxapi.stop)
コード例 #17
0
 def test_function_handling_with_obsolete_major(self):
     version = version_module.Version('1.2')
     self.assertRaises(NotImplementedError,
                       versioning.get_function_by_version,
                       routerlib.ROUTER_FUNC_DICT, 'create_lrouter',
                       version)
コード例 #18
0
 def test_function_handling_with_newer_major(self):
     version = version_module.Version('5.2')
     function = versioning.get_function_by_version(
         routerlib.ROUTER_FUNC_DICT, 'create_lrouter', version)
     self.assertEqual(routerlib.create_explicit_routing_lrouter, function)
コード例 #19
0
 def test_function_handling_missing_minor(self):
     version = version_module.Version('2.0')
     function = versioning.get_function_by_version(
         routerlib.ROUTER_FUNC_DICT, 'create_lrouter', version)
     self.assertEqual(routerlib.create_implicit_routing_lrouter, function)