# It should be false when you use nova security group.
# enable_security_group = True
+[qos]
+# QoS agent driver
+# agent_driver = ovs
+
#-----------------------------------------------------------------------------
# Sample Configurations.
#-----------------------------------------------------------------------------
import abc
import collections
-from oslo_utils import importutils
+from oslo_config import cfg
import six
from neutron.agent.l2 import agent_extension
from neutron.api.rpc.callbacks import resources
+from neutron import manager
@six.add_metaclass(abc.ABCMeta)
resource by type and id
"""
super(QosAgentExtension, self).initialize(resource_rpc)
- #TODO(QoS) - Load it from Config
- qos_driver_cls = importutils.import_class(
- 'neutron.plugins.ml2.drivers.openvswitch.agent.'
- 'extension_drivers.qos_driver.QosOVSAgentDriver')
- self.qos_driver = qos_driver_cls()
+
+ self.qos_driver = manager.NeutronManager.load_class_for_provider(
+ 'neutron.qos.agent_drivers', cfg.CONF.qos.agent_driver)
self.qos_driver.initialize()
self.qos_policy_ports = collections.defaultdict(dict)
self.known_ports = set()
"timeout won't be changed"))
]
+qos_opts = [
+ cfg.StrOpt('agent_driver', default='ovs', help=_('QoS agent driver.')),
+]
+
cfg.CONF.register_opts(ovs_opts, "OVS")
cfg.CONF.register_opts(agent_opts, "AGENT")
+cfg.CONF.register_opts(qos_opts, "qos")
config.register_agent_state_opts_helper(cfg.CONF)
self.qos_agent = qos_agent.QosAgentExtension()
self.context = mock.Mock()
- # Force our fake underlying QoS driver
- #TODO(QoS): change config value when we tie this to a configuration
- # entry.
-
- self.import_patcher = mock.patch(
- 'oslo_utils.importutils.import_class',
- return_value=mock.Mock())
- self.import_patcher.start()
+ # Don't rely on used driver
+ mock.patch(
+ 'neutron.manager.NeutronManager.load_class_for_provider',
+ return_value=mock.Mock(spec=qos_agent.QosAgentDriver)).start()
self._create_fake_resource_rpc()
self.qos_agent.initialize(self.resource_rpc_mock)
internal = neutron.ipam.drivers.neutrondb_ipam.driver:NeutronDbPool
neutron.agent.l2.extensions =
qos = neutron.agent.l2.extensions.qos_agent:QosAgentExtension
+neutron.qos.agent_drivers =
+ ovs = neutron.plugins.ml2.drivers.openvswitch.agent.extension_drivers.qos_driver:QosOVSAgentDriver
# These are for backwards compat with Icehouse notification_driver configuration values
oslo.messaging.notify.drivers =
neutron.openstack.common.notifier.log_notifier = oslo_messaging.notify._impl_log:LogDriver