Ejemplo n.º 1
0
 def test_retry_on_unavailable(self):
     pl = NeutronManager.get_plugin()
     with nested(
             mock.patch(SERVERMANAGER + '.ServerProxy.rest_call',
                        return_value=(httplib.SERVICE_UNAVAILABLE, 0, 0,
                                      0)),
             mock.patch(SERVERMANAGER + '.time.sleep')) as (srestmock,
                                                            tmock):
         # making a call should trigger retries with sleeps in between
         pl.servers.rest_call('GET', '/', '', None, [])
         rest_call = [
             mock.call('GET',
                       '/',
                       '',
                       None,
                       False,
                       reconnect=True,
                       hash_handler=mock.ANY)
         ]
         rest_call_count = (
             servermanager.HTTP_SERVICE_UNAVAILABLE_RETRY_COUNT + 1)
         srestmock.assert_has_calls(rest_call * rest_call_count)
         sleep_call = [
             mock.call(
                 servermanager.HTTP_SERVICE_UNAVAILABLE_RETRY_INTERVAL)
         ]
         # should sleep 1 less time than the number of calls
         sleep_call_count = rest_call_count - 1
         tmock.assert_has_calls(sleep_call * sleep_call_count)
    def setUp(self, plugin=None):
        ext_mgr = test_extension_security_group.SecurityGroupTestExtensionManager()
        super(PortSecurityTestCase, self).setUp(plugin=plugin, ext_mgr=ext_mgr)

        # Check if a plugin supports security groups
        plugin_obj = NeutronManager.get_plugin()
        self._skip_security_group = "security-group" not in plugin_obj.supported_extension_aliases
Ejemplo n.º 3
0
    def setUp(self):
        super(ProvidernetExtensionTestCase, self).setUp()

        plugin = 'neutron.neutron_plugin_base_v2.NeutronPluginBaseV2'
        # Ensure 'stale' patched copies of the plugin are never returned
        NeutronManager._instance = None

        # Ensure existing ExtensionManager is not used
        extensions.PluginAwareExtensionManager._instance = None

        # Save the global RESOURCE_ATTRIBUTE_MAP
        self.saved_attr_map = {}
        for resource, attrs in attributes.RESOURCE_ATTRIBUTE_MAP.iteritems():
            self.saved_attr_map[resource] = attrs.copy()

        # Update the plugin and extensions path
        cfg.CONF.set_override('core_plugin', plugin)
        cfg.CONF.set_override('allow_pagination', True)
        cfg.CONF.set_override('allow_sorting', True)
        self._plugin_patcher = mock.patch(plugin, autospec=True)
        self.plugin = self._plugin_patcher.start()
        # Ensure Quota checks never fail because of mock
        instance = self.plugin.return_value
        instance.get_networks_count.return_value = 1
        # Instantiate mock plugin and enable the 'provider' extension
        NeutronManager.get_plugin().supported_extension_aliases = ([
            "provider"
        ])
        ext_mgr = ProviderExtensionManager()
        self.ext_mdw = test_extensions.setup_extensions_middleware(ext_mgr)
        self.addCleanup(self._plugin_patcher.stop)
        self.addCleanup(cfg.CONF.reset)
        self.addCleanup(self._restore_attribute_map)
        self.api = webtest.TestApp(router.APIRouter())
Ejemplo n.º 4
0
 def test_network_admin_state(self):
     name = "network_test"
     admin_status_up = False
     tenant_id = "tenant_test"
     network = {"network": {"name": name, "admin_state_up": admin_status_up, "tenant_id": tenant_id}}
     plugin = NeutronManager.get_plugin()
     self.assertEqual(plugin._network_admin_state(network), network)
 def test_update_port_security_off_address_pairs(self):
     if self._skip_port_security:
         self.skipTest("Plugin does not implement port-security extension")
     with self.network() as net:
         with self.subnet(network=net):
             address_pairs = [{'mac_address': '00:00:00:00:00:01',
                               'ip_address': '10.0.0.1'}]
             res = self._create_port(self.fmt, net['network']['id'],
                                     arg_list=('port_security_enabled',
                                               addr_pair.ADDRESS_PAIRS,),
                                     port_security_enabled=True,
                                     allowed_address_pairs=address_pairs)
             port = self.deserialize(self.fmt, res)
             print port
             update_port = {'port': {psec.PORTSECURITY: False}}
             # If plugin implements security groups we also need to remove
             # the security group on port.
             plugin_obj = NeutronManager.get_plugin()
             if 'security-groups' in plugin_obj.supported_extension_aliases:
                 update_port['port']['security_groups'] = []
             req = self.new_update_request('ports', update_port,
                                           port['port']['id'])
             res = req.get_response(self.api)
             self.assertEqual(res.status_int, 409)
             self._delete('ports', port['port']['id'])
Ejemplo n.º 6
0
    def test_create_networks_bulk_emulated_plugin_failure(self):
        real_has_attr = hasattr

        def fakehasattr(item, attr):
            if attr.endswith('__native_bulk_support'):
                return False
            return real_has_attr(item, attr)

        plugin_obj = NeutronManager.get_plugin()
        orig = plugin_obj.create_network
        #ensures the API choose the emulation code path
        with mock.patch('__builtin__.hasattr',
                        new=fakehasattr):
            with mock.patch.object(plugin_obj,
                                   'create_network') as patched_plugin:
                def side_effect(*args, **kwargs):
                    return self._do_side_effect(patched_plugin, orig,
                                                *args, **kwargs)
                patched_plugin.side_effect = side_effect
                res = self._create_network_bulk(self.fmt, 2, 'test', True)
                LOG.debug("response is %s" % res)
                # We expect an internal server error as we injected a fault
                self._validate_behavior_on_bulk_failure(
                    res,
                    'networks',
                    wexc.HTTPInternalServerError.code)
Ejemplo n.º 7
0
 def test_load_api_extensions(self):
     q_config.parse(['--config-file', BASE_CONF_PATH,
                     '--config-file', NSX_INI_FULL_PATH])
     cfg.CONF.set_override('core_plugin', PLUGIN_NAME)
     # Load the configuration, and initialize the plugin
     NeutronManager().get_plugin()
     self.assertIn('extensions', cfg.CONF.api_extensions_path)
Ejemplo n.º 8
0
 def test_file_put_contents(self):
     pl = NeutronManager.get_plugin()
     with mock.patch(SERVERMANAGER + '.open', create=True) as omock:
         pl.servers._file_put_contents('somepath', 'contents')
         omock.assert_has_calls([mock.call('somepath', 'w')])
         omock.return_value.__enter__.return_value.assert_has_calls(
             [mock.call.write('contents')])
Ejemplo n.º 9
0
 def test_cert_get_fail(self):
     pl = NeutronManager.get_plugin()
     pl.servers.ssl = True
     with mock.patch('os.path.exists', return_value=False):
         self.assertRaises(cfg.Error,
                           pl.servers._get_combined_cert_for_server,
                           *('example.org', 443))
Ejemplo n.º 10
0
 def setUp(self):
     self.httpPatch = patch('httplib.HTTPConnection', create=True,
                            new=HTTPConnectionMock)
     self.httpPatch.start()
     test_l3_plugin.L3NatDBTestCase.setUp = new_L3_setUp
     super(RouterDBTestCase, self).setUp()
     self.plugin_obj = NeutronManager.get_plugin()
    def setUp(self, plugin=None):
        super(PortSecurityTestCase, self).setUp()

        # Check if a plugin supports security groups
        plugin_obj = NeutronManager.get_plugin()
        self._skip_security_group = (
            'security-group' not in plugin_obj.supported_extension_aliases)
 def test_update_port_security_off_address_pairs(self):
     if self._skip_port_security:
         self.skipTest("Plugin does not implement port-security extension")
     with self.network() as net:
         with self.subnet(network=net):
             address_pairs = [{
                 'mac_address': '00:00:00:00:00:01',
                 'ip_address': '10.0.0.1'
             }]
             res = self._create_port(self.fmt,
                                     net['network']['id'],
                                     arg_list=(
                                         'port_security_enabled',
                                         addr_pair.ADDRESS_PAIRS,
                                     ),
                                     port_security_enabled=True,
                                     allowed_address_pairs=address_pairs)
             port = self.deserialize(self.fmt, res)
             update_port = {'port': {psec.PORTSECURITY: False}}
             # If plugin implements security groups we also need to remove
             # the security group on port.
             plugin_obj = NeutronManager.get_plugin()
             if 'security-groups' in plugin_obj.supported_extension_aliases:
                 update_port['port']['security_groups'] = []
             req = self.new_update_request('ports', update_port,
                                           port['port']['id'])
             res = req.get_response(self.api)
             self.assertEqual(res.status_int, 409)
             self._delete('ports', port['port']['id'])
Ejemplo n.º 13
0
    def _update_secgrp_rule(self, context, rule_id):
        compute, project = self.gce_svc, self.gce_project
        name = self._gce_secgrp_id(rule_id)
        try:
            gce_firewall_info = gceutils.get_firewall_rule(
                compute, project, name)
        except gce_errors.HttpError:
            return

        try:
            core_plugin = NeutronManager.get_plugin()
        except AttributeError:
            core_plugin = directory.get_plugin()
        rule = core_plugin.get_security_group_rule(context, rule_id)

        network_link = gce_firewall_info['network']
        try:
            gce_rule = self._convert_secgrp_rule_to_gce(rule, network_link)
            LOG.info("Update GCE firewall rule %s" % name)
            operation = gceutils.update_firewall_rule(compute, project, name,
                                                      gce_rule)
            gceutils.wait_for_operation(compute, project, operation)
        except Exception as e:
            LOG.exception("An error occurred while updating security "
                          "group: %s" % e)
            LOG.error("Deleting existing GCE firewall rule %s" % name)
            operation = gceutils.delete_firewall_rule(compute, project, name)
            gceutils.wait_for_operation(compute, project, operation)
Ejemplo n.º 14
0
    def test_update_network(self):
        plugin_obj = NeutronManager.get_plugin()
        networks_req = {}
        router_inst = RouterInstance()
        network = {
            'router:external': router_inst,
            u'name': u'network1',
            'admin_state_up': 'True',
            'tenant_id': uuid.uuid4().hex.decode(),
            'vpc:route_table': '',
            'shared': False,
            'port_security_enabled': True,
            u'contrail:policys': [],
        }

        context_obj = Context(network['tenant_id'])
        #create project
        if not GlobalProjects:
            project_name = 'admin'
            GlobalProjects.append(MockProject(name=project_name))

        networks_req[u'network'] = network
        net_dict = plugin_obj.create_network(context_obj, networks_req)
        net_id = net_dict.get('id')
        # change one of the attribute and update the network
        network['admin_state_up'] = 'False'
        new_dict = plugin_obj.update_network(context_obj, net_id,
                                             networks_req)
        self.assertNotEqual(net_dict.get('admin_state_up'),
                            new_dict.get('admin_state_up'))
Ejemplo n.º 15
0
    def test_delete_subnet(self):
        #First create virtual network without subnet and then
        #create subnet to update given network.
        plugin_obj = NeutronManager.get_plugin()
        networks_req = {}
        router_inst = RouterInstance()
        network = {
            'router:external': router_inst,
            u'name': u'network1',
            'admin_state_up': 'True',
            'tenant_id': uuid.uuid4().hex.decode(),
            'vpc:route_table': '',
            'shared': False,
            'port_security_enabled': True,
            u'contrail:policys': [],
        }

        networks_req[u'network'] = network
        context_obj = Context(network['tenant_id'])
        #create project
        if not GlobalProjects:
            project_name = 'admin'
            GlobalProjects.append(MockProject(name=project_name))

        net = plugin_obj.create_network(context_obj, networks_req)

        subnet_obj[u'subnet']['network_id'] = net['id']
        subnet_dict = plugin_obj.create_subnet(context_obj, subnet_obj)
        subnet_id = subnet_dict['id']
        plugin_obj.delete_subnet(context_obj, subnet_id)
Ejemplo n.º 16
0
    def test_delete_network(self):
        # First create the network and request to delete the same
        plugin_obj = NeutronManager.get_plugin()
        networks_req = {}
        router_inst = RouterInstance()
        network = {
            'router:external': router_inst,
            u'name': u'network1',
            'admin_state_up': 'True',
            'tenant_id': uuid.uuid4().hex.decode(),
            'vpc:route_table': '',
            'shared': False,
            'port_security_enabled': True,
            u'contrail:policys': [],
        }

        context_obj = Context(network['tenant_id'])
        #create project
        if not GlobalProjects:
            project_name = 'admin'
            GlobalProjects.append(MockProject(name=project_name))

        networks_req[u'network'] = network
        net_dict = plugin_obj.create_network(context_obj, networks_req)
        net_id = net_dict.get('id')

        plugin_obj.delete_network(context_obj, net_id)
        mock_vnc_api_cls.virtual_network_delete.assert_called_once()
Ejemplo n.º 17
0
    def test_create_network(self):
        plugin_obj = NeutronManager.get_plugin()
        networks_req = {}
        router_inst = RouterInstance()
        network = {
            'router:external': router_inst,
            u'name': u'network1',
            'admin_state_up': 'True',
            'tenant_id': uuid.uuid4().hex.decode(),
            'vpc:route_table': '',
            'shared': False,
            'port_security_enabled': True,
            u'contrail:policys': [],
        }

        networks_req[u'network'] = network
        context_obj = Context(network['tenant_id'])

        #create project
        if not GlobalProjects:
            project_name = 'admin'
            GlobalProjects.append(MockProject(name=project_name))

        net = plugin_obj.create_network(context_obj, networks_req)
        if 'contrail:fq_name' not in net.keys():
            assert False
        else:
            assert True
    def setUp(self, plugin=None):
        super(AllowedAddressPairTestCase, self).setUp()

        # Check if a plugin supports security groups
        plugin_obj = NeutronManager.get_plugin()
        self._skip_port_security = (
            'port-security' not in plugin_obj.supported_extension_aliases)
    def setUp(self, plugin=None):
        super(AllowedAddressPairTestCase, self).setUp()

        # Check if a plugin supports security groups
        plugin_obj = NeutronManager.get_plugin()
        self._skip_port_security = ('port-security' not in
                                    plugin_obj.supported_extension_aliases)
 def test_update_port_security_off_address_pairs(self):
     if self._skip_port_security:
         self.skipTest("Plugin does not implement port-security extension")
     with self.network() as net:
         with self.subnet(network=net):
             address_pairs = [{"mac_address": "00:00:00:00:00:01", "ip_address": "10.0.0.1"}]
             res = self._create_port(
                 self.fmt,
                 net["network"]["id"],
                 arg_list=("port_security_enabled", addr_pair.ADDRESS_PAIRS),
                 port_security_enabled=True,
                 allowed_address_pairs=address_pairs,
             )
             port = self.deserialize(self.fmt, res)
             print port
             update_port = {"port": {psec.PORTSECURITY: False}}
             # If plugin implements security groups we also need to remove
             # the security group on port.
             plugin_obj = NeutronManager.get_plugin()
             if "security-groups" in plugin_obj.supported_extension_aliases:
                 update_port["port"]["security_groups"] = []
             req = self.new_update_request("ports", update_port, port["port"]["id"])
             res = req.get_response(self.api)
             self.assertEqual(res.status_int, 409)
             self._delete("ports", port["port"]["id"])
Ejemplo n.º 21
0
    def test_create_subnets_bulk_emulated_plugin_failure(self):
        real_has_attr = hasattr

        #ensures the API choose the emulation code path
        def fakehasattr(item, attr):
            if attr.endswith('__native_bulk_support'):
                return False
            return real_has_attr(item, attr)

        with mock.patch('__builtin__.hasattr',
                        new=fakehasattr):
            plugin_obj = NeutronManager.get_plugin()
            orig = plugin_obj.create_subnet
            with mock.patch.object(plugin_obj,
                                   'create_subnet') as patched_plugin:

                def side_effect(*args, **kwargs):
                    self._do_side_effect(patched_plugin, orig,
                                         *args, **kwargs)

                patched_plugin.side_effect = side_effect
                with self.network() as net:
                    res = self._create_subnet_bulk(self.fmt, 2,
                                                   net['network']['id'],
                                                   'test')
                # We expect an internal server error as we injected a fault
                self._validate_behavior_on_bulk_failure(
                    res,
                    'subnets',
                    wexc.HTTPInternalServerError.code)
    def setUp(self, plugin=None):
        super(PortSecurityTestCase, self).setUp()

        # Check if a plugin supports security groups
        plugin_obj = NeutronManager.get_plugin()
        self._skip_security_group = ('security-group' not in
                                     plugin_obj.supported_extension_aliases)
Ejemplo n.º 23
0
 def test_create404_triggers_background_sync(self):
     # allow the async background thread to run for this test
     self.spawn_p.stop()
     with nested(
         mock.patch(
             SERVER_POOL + ".rest_create_port",
             side_effect=servermanager.RemoteRestError(reason=servermanager.NXNETWORK, status=404),
         ),
         mock.patch(DRIVER + "._send_all_data"),
         self.port(**{"device_id": "devid", "binding:host_id": "host"}),
     ) as (mock_http, mock_send_all, p):
         # wait for thread to finish
         mm = NeutronManager.get_plugin().mechanism_manager
         bigdriver = mm.mech_drivers["bigswitch"].obj
         bigdriver.evpool.waitall()
         mock_send_all.assert_has_calls(
             [
                 mock.call(
                     send_routers=False,
                     send_ports=True,
                     send_floating_ips=False,
                     triggered_by_tenant=p["port"]["tenant_id"],
                 )
             ]
         )
     self.spawn_p.start()
Ejemplo n.º 24
0
    def test_create_networks_bulk_emulated_plugin_failure(self):
        real_has_attr = hasattr

        def fakehasattr(item, attr):
            if attr.endswith('__native_bulk_support'):
                return False
            return real_has_attr(item, attr)

        plugin_obj = NeutronManager.get_plugin()
        orig = plugin_obj.create_network
        #ensures the API choose the emulation code path
        with mock.patch('__builtin__.hasattr', new=fakehasattr):
            with mock.patch.object(plugin_obj,
                                   'create_network') as patched_plugin:

                def side_effect(*args, **kwargs):
                    return self._do_side_effect(patched_plugin, orig, *args,
                                                **kwargs)

                patched_plugin.side_effect = side_effect
                res = self._create_network_bulk(self.fmt, 2, 'test', True)
                LOG.debug("response is %s" % res)
                # We expect an internal server error as we injected a fault
                self._validate_behavior_on_bulk_failure(
                    res, 'networks', wexc.HTTPInternalServerError.code)
Ejemplo n.º 25
0
    def test_create_subnets_bulk_emulated_plugin_failure(self):
        real_has_attr = hasattr

        #ensures the API choose the emulation code path
        def fakehasattr(item, attr):
            if attr.endswith('__native_bulk_support'):
                return False
            return real_has_attr(item, attr)

        with mock.patch('__builtin__.hasattr', new=fakehasattr):
            plugin_obj = NeutronManager.get_plugin()
            orig = plugin_obj.create_subnet
            with mock.patch.object(plugin_obj,
                                   'create_subnet') as patched_plugin:

                def side_effect(*args, **kwargs):
                    self._do_side_effect(patched_plugin, orig, *args, **kwargs)

                patched_plugin.side_effect = side_effect
                with self.network() as net:
                    res = self._create_subnet_bulk(self.fmt, 2,
                                                   net['network']['id'],
                                                   'test')
                # We expect an internal server error as we injected a fault
                self._validate_behavior_on_bulk_failure(
                    res, 'subnets', wexc.HTTPInternalServerError.code)
Ejemplo n.º 26
0
 def test_conflict_sync_raises_error_without_topology(self):
     pl = NeutronManager.get_plugin()
     pl.servers.get_topo_function = None
     with mock.patch(SERVERMANAGER + ".ServerProxy.rest_call", return_value=(httplib.CONFLICT, 0, 0, 0)):
         # making a call should trigger a conflict sync that will
         # error without the topology function set
         self.assertRaises(cfg.Error, pl.servers.rest_call, *("GET", "/", "", None, []))
Ejemplo n.º 27
0
 def test_consistency_watchdog(self):
     pl = NeutronManager.get_plugin()
     pl.servers.capabilities = []
     self.watch_p.stop()
     with nested(
         mock.patch('eventlet.sleep'),
         mock.patch(
             SERVERMANAGER + '.ServerPool.rest_call',
             side_effect=servermanager.RemoteRestError(
                 reason='Failure to trigger except clause.'
             )
         ),
         mock.patch(
             SERVERMANAGER + '.LOG.exception',
             side_effect=KeyError('Failure to break loop')
         )
     ) as (smock, rmock, lmock):
         # should return immediately without consistency capability
         pl.servers._consistency_watchdog()
         self.assertFalse(smock.called)
         pl.servers.capabilities = ['consistency']
         self.assertRaises(KeyError,
                           pl.servers._consistency_watchdog)
         rmock.assert_called_with('GET', '/health', '', {}, [], False)
         self.assertEqual(1, len(lmock.mock_calls))
Ejemplo n.º 28
0
    def setUp(self):
        super(ProvidernetExtensionTestCase, self).setUp()

        plugin = 'neutron.neutron_plugin_base_v2.NeutronPluginBaseV2'

        # Ensure existing ExtensionManager is not used
        extensions.PluginAwareExtensionManager._instance = None

        # Save the global RESOURCE_ATTRIBUTE_MAP
        self.saved_attr_map = {}
        for resource, attrs in attributes.RESOURCE_ATTRIBUTE_MAP.iteritems():
            self.saved_attr_map[resource] = attrs.copy()

        # Update the plugin and extensions path
        self.setup_coreplugin(plugin)
        cfg.CONF.set_override('allow_pagination', True)
        cfg.CONF.set_override('allow_sorting', True)
        self._plugin_patcher = mock.patch(plugin, autospec=True)
        self.plugin = self._plugin_patcher.start()
        # Ensure Quota checks never fail because of mock
        instance = self.plugin.return_value
        instance.get_networks_count.return_value = 1
        # Instantiate mock plugin and enable the 'provider' extension
        NeutronManager.get_plugin().supported_extension_aliases = (
            ["provider"])
        ext_mgr = ProviderExtensionManager()
        self.ext_mdw = test_extensions.setup_extensions_middleware(ext_mgr)
        self.addCleanup(self._plugin_patcher.stop)
        self.addCleanup(self._restore_attribute_map)
        self.api = webtest.TestApp(router.APIRouter())

        quota.QUOTAS._driver = None
        cfg.CONF.set_override('quota_driver', 'neutron.quota.ConfDriver',
                              group='QUOTAS')
Ejemplo n.º 29
0
 def test_port_vif_details(self):
     plugin = NeutronManager.get_plugin()
     with self.port(name='name') as port1:
         ctx = context.get_admin_context()
         port = plugin.get_port(ctx, port1['port']['id'])
         self.assertEqual(port['binding:vif_type'],
                          portbindings.VIF_TYPE_OVS)
Ejemplo n.º 30
0
 def test_cert_get_fail(self):
     pl = NeutronManager.get_plugin()
     pl.servers.ssl = True
     with mock.patch('os.path.exists', return_value=False):
         self.assertRaises(cfg.Error,
                           pl.servers._get_combined_cert_for_server,
                           *('example.org', 443))
 def get_resources(cls):
     """Returns Ext Resources."""
     parent_resource = dict(member_name="tenant",
                            collection_name="extensions/csco/tenants")
     controller = CredentialController(NeutronManager.get_plugin())
     return [extensions.ResourceExtension('credentials', controller,
                                          parent=parent_resource)]
Ejemplo n.º 32
0
 def test_file_put_contents(self):
     pl = NeutronManager.get_plugin()
     with mock.patch(SERVERMANAGER + '.open', create=True) as omock:
         pl.servers._file_put_contents('somepath', 'contents')
         omock.assert_has_calls([mock.call('somepath', 'w')])
         omock.return_value.__enter__.return_value.assert_has_calls([
             mock.call.write('contents')
         ])
Ejemplo n.º 33
0
 def test_core_plugin_supports_services(self):
     cfg.CONF.set_override("core_plugin", "neutron.tests.unit.test_neutron_manager." "MultiServiceCorePlugin")
     mgr = NeutronManager.get_instance()
     svc_plugins = mgr.get_service_plugins()
     self.assertEqual(3, len(svc_plugins))
     self.assertIn(constants.CORE, svc_plugins.keys())
     self.assertIn(constants.LOADBALANCER, svc_plugins.keys())
     self.assertIn(constants.DUMMY, svc_plugins.keys())
Ejemplo n.º 34
0
 def setUp(self):
     self.setup_patches()
     self.setup_config_files()
     ext_mgr = RouterRulesTestExtensionManager()
     super(RouterDBTestCase, self).setUp(plugin=self._plugin_name,
                                         ext_mgr=ext_mgr)
     cfg.CONF.set_default('allow_overlapping_ips', False)
     self.plugin_obj = NeutronManager.get_plugin()
Ejemplo n.º 35
0
 def setUp(self):
     self.setup_patches()
     self.setup_config_files()
     ext_mgr = RouterRulesTestExtensionManager()
     super(RouterDBTestBase, self).setUp(plugin=self._plugin_name, ext_mgr=ext_mgr)
     cfg.CONF.set_default("allow_overlapping_ips", False)
     self.plugin_obj = NeutronManager.get_plugin()
     self.startHttpPatch()
Ejemplo n.º 36
0
 def test_load_plugin_with_full_options(self):
     q_config.parse(['--config-file', BASE_CONF_PATH,
                     '--config-file', NSX_INI_FULL_PATH])
     cfg.CONF.set_override('core_plugin', PLUGIN_NAME)
     plugin = NeutronManager().get_plugin()
     cluster = plugin.cluster
     self._assert_required_options(cluster)
     self._assert_extra_options(cluster)
Ejemplo n.º 37
0
 def test_sticky_cert_fetch_fail(self):
     pl = NeutronManager.get_plugin()
     pl.servers.ssl = True
     with mock.patch(
         "ssl.get_server_certificate", side_effect=Exception("There is no more entropy in the universe")
     ) as sslgetmock:
         self.assertRaises(cfg.Error, pl.servers._get_combined_cert_for_server, *("example.org", 443))
         sslgetmock.assert_has_calls([mock.call(("example.org", 443))])
Ejemplo n.º 38
0
    def _get_plugin_ref(self):
        plugin_obj = NeutronManager.get_plugin()
        if getattr(plugin_obj, "_master"):
            plugin_ref = plugin_obj
        else:
            plugin_ref = getattr(plugin_obj, "_model")._plugins[const.VSWITCH_PLUGIN]

        return plugin_ref
Ejemplo n.º 39
0
 def test_ports_vif_details(self):
     cfg.CONF.set_default("allow_overlapping_ips", True)
     plugin = NeutronManager.get_plugin()
     with contextlib.nested(self.port(), self.port()) as (port1, port2):
         ctx = context.get_admin_context()
         ports = plugin.get_ports(ctx)
         self.assertEqual(len(ports), 2)
         for port in ports:
             self.assertEqual(port["binding:vif_type"], portbindings.VIF_TYPE_OVS)
Ejemplo n.º 40
0
 def test_conflict_sync_raises_error_without_topology(self):
     pl = NeutronManager.get_plugin()
     pl.servers.get_topo_function = None
     with mock.patch(SERVERMANAGER + '.ServerProxy.rest_call',
                     return_value=(httplib.CONFLICT, 0, 0, 0)):
         # making a call should trigger a conflict sync that will
         # error without the topology function set
         self.assertRaises(cfg.Error, pl.servers.rest_call,
                           *('GET', '/', '', None, []))
Ejemplo n.º 41
0
 def _delete_secgrp(self, context, secgrp_id):
     try:
         core_plugin = NeutronManager.get_plugin()
     except AttributeError:
         core_plugin = directory.get_plugin()
     secgrp = core_plugin.get_security_group(context, secgrp_id)
     secgrp_rules = secgrp['security_group_rules']
     for secgrp_rule in secgrp_rules:
         self._delete_secgrp_rule(context, secgrp_rule['id'])
Ejemplo n.º 42
0
 def get_resources(cls):
     """Returns Ext Resources."""
     controller = resource.Resource(
         QuotaSetsController(NeutronManager.get_plugin()),
         faults=base.FAULT_MAP)
     return [extensions.ResourceExtension(
         Quotasv2.get_alias(),
         controller,
         collection_actions={'tenant': 'GET'})]
Ejemplo n.º 43
0
 def get_resources(cls):
     """Returns Ext Resources."""
     controller = resource.Resource(
         QuotaSetsController(NeutronManager.get_plugin()),
         faults=base.FAULT_MAP)
     return [extensions.ResourceExtension(
         Quotasv2.get_alias(),
         controller,
         collection_actions={'tenant': 'GET'})]
Ejemplo n.º 44
0
 def test_network_admin_state(self):
     name = 'network_test'
     admin_status_up = False
     tenant_id = 'tenant_test'
     network = {'network': {'name': name,
                            'admin_state_up': admin_status_up,
                            'tenant_id': tenant_id}}
     plugin = NeutronManager.get_plugin()
     self.assertEqual(plugin._network_admin_state(network), network)
Ejemplo n.º 45
0
 def test_allocate_pools_for_subnet(self):
     cidr = '10.0.0.0/24'
     gateway_ip = '10.0.0.254'
     subnet = {'gateway_ip': gateway_ip, 'cidr': cidr, 'ip_version': 4}
     allocation_pool = [{"start": '10.0.0.2', "end": '10.0.0.253'}]
     context = None
     plugin = NeutronManager.get_plugin()
     pool = plugin._allocate_pools_for_subnet(context, subnet)
     self.assertEqual(allocation_pool, pool)
Ejemplo n.º 46
0
    def _get_plugin_ref(self):
        plugin_obj = NeutronManager.get_plugin()
        if getattr(plugin_obj, "_master"):
            plugin_ref = plugin_obj
        else:
            plugin_ref = getattr(plugin_obj, "_model").\
                _plugins[const.VSWITCH_PLUGIN]

        return plugin_ref
Ejemplo n.º 47
0
    def setUp(self, plugin=None):
        ext_mgr = (
            test_extension_security_group.SecurityGroupTestExtensionManager())
        super(PortSecurityTestCase, self).setUp(plugin=plugin, ext_mgr=ext_mgr)

        # Check if a plugin supports security groups
        plugin_obj = NeutronManager.get_plugin()
        self._skip_security_group = ('security-group' not in
                                     plugin_obj.supported_extension_aliases)
Ejemplo n.º 48
0
 def test_delete_failure_sets_bad_hash(self):
     pl = NeutronManager.get_plugin()
     hash_handler = cdb.HashHandler()
     with mock.patch(SERVERMANAGER + '.ServerProxy.rest_call',
                     return_value=(httplib.INTERNAL_SERVER_ERROR, 0, 0, 0)):
         # a failed delete call should put a bad hash in the DB
         pl.servers.rest_call('DELETE', '/', '', None, [])
         self.assertEqual('INCONSISTENT,INCONSISTENT',
                          hash_handler.read_for_update())
Ejemplo n.º 49
0
 def test_allocate_pools_for_subnet(self):
     cidr = "10.0.0.0/24"
     gateway_ip = "10.0.0.254"
     subnet = {"gateway_ip": gateway_ip, "cidr": cidr, "ip_version": 4}
     allocation_pool = [{"start": "10.0.0.2", "end": "10.0.0.253"}]
     context = None
     plugin = NeutronManager.get_plugin()
     pool = plugin._allocate_pools_for_subnet(context, subnet)
     self.assertEqual(allocation_pool, pool)
Ejemplo n.º 50
0
 def test_no_cert_error(self):
     pl = NeutronManager.get_plugin()
     pl.servers.ssl = True
     cfg.CONF.set_override("ssl_sticky", False, "RESTPROXY")
     # pretend base dir exists and 3 children do, but host cert doesn't
     with mock.patch("os.path.exists", side_effect=[True, True, True, True, False]) as exmock:
         # will raise error because no certs found
         self.assertRaises(cfg.Error, pl.servers._get_combined_cert_for_server, *("example.org", 443))
         self.assertEqual(exmock.call_count, 5)
Ejemplo n.º 51
0
 def test_core_plugin_supports_services(self):
     cfg.CONF.set_override("core_plugin",
                           "neutron.tests.unit.test_neutron_manager."
                           "MultiServiceCorePlugin")
     mgr = NeutronManager.get_instance()
     svc_plugins = mgr.get_service_plugins()
     self.assertEqual(3, len(svc_plugins))
     self.assertIn(constants.CORE, svc_plugins.keys())
     self.assertIn(constants.LOADBALANCER, svc_plugins.keys())
     self.assertIn(constants.DUMMY, svc_plugins.keys())
Ejemplo n.º 52
0
 def test_ports_vif_details(self):
     cfg.CONF.set_default('allow_overlapping_ips', True)
     plugin = NeutronManager.get_plugin()
     with contextlib.nested(self.port(), self.port()) as (port1, port2):
         ctx = context.get_admin_context()
         ports = plugin.get_ports(ctx)
         self.assertEqual(len(ports), 2)
         for port in ports:
             self.assertEqual(port['binding:vif_type'],
                              portbindings.VIF_TYPE_OVS)
Ejemplo n.º 53
0
    def test_service_plugin_by_name_is_loaded(self):
        cfg.CONF.set_override("core_plugin", DB_PLUGIN_KLASS)
        cfg.CONF.set_override("service_plugins", ["dummy"])
        mgr = NeutronManager.get_instance()
        plugin = mgr.get_service_plugins()[constants.DUMMY]

        self.assertTrue(
            isinstance(plugin,
                       (dummy_plugin.DummyServicePlugin, types.ClassType)),
            "loaded plugin should be of type neutronDummyPlugin")