From: Jenkins Date: Tue, 4 Aug 2015 13:44:31 +0000 (+0000) Subject: Merge "Remove handle_network/handle_subnet from l2 agent extensions" into feature/qos X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=d46bdf2d16d6d95d22db2e7fc4460c71f5f532ef;p=openstack-build%2Fneutron-build.git Merge "Remove handle_network/handle_subnet from l2 agent extensions" into feature/qos --- d46bdf2d16d6d95d22db2e7fc4460c71f5f532ef diff --cc neutron/agent/l2/agent_extensions_manager.py index 54d17adcf,f8204a0c4..6e1aa6370 --- a/neutron/agent/l2/agent_extensions_manager.py +++ b/neutron/agent/l2/agent_extensions_manager.py @@@ -22,39 -21,24 +22,27 @@@ from neutron.i18n import _LE, _L LOG = log.getLogger(__name__) -class AgentExtensionsManager(stevedore.named.NamedExtensionManager): - """Manage agent extensions.""" +L2_AGENT_EXT_MANAGER_NAMESPACE = 'neutron.agent.l2.extensions' +L2_AGENT_EXT_MANAGER_OPTS = [ + cfg.ListOpt('extensions', + default=[], + help=_('Extensions list to use')), +] + - def __init__(self): - # Ordered list of agent extensions, defining - # the order in which the agent extensions are called. +def register_opts(conf): + conf.register_opts(L2_AGENT_EXT_MANAGER_OPTS, 'agent') - #TODO(QoS): get extensions from config - agent_extensions = ('qos', ) - LOG.info(_LI("Configured agent extensions names: %s"), - agent_extensions) +class AgentExtensionsManager(stevedore.named.NamedExtensionManager): + """Manage agent extensions.""" + def __init__(self, conf): super(AgentExtensionsManager, self).__init__( - 'neutron.agent.l2.extensions', agent_extensions, + L2_AGENT_EXT_MANAGER_NAMESPACE, conf.agent.extensions, invoke_on_load=True, name_order=True) - LOG.info(_LI("Loaded agent extensions names: %s"), self.names()) + LOG.info(_LI("Loaded agent extensions: %s"), self.names()) - def _call_on_agent_extensions(self, method_name, context, data): - """Helper method for calling a method across all agent extensions.""" - for extension in self: - try: - getattr(extension.obj, method_name)(context, data) - # TODO(QoS) add agent extensions exception and catch them here - except AttributeError: - LOG.exception( - _LE("Agent Extension '%(name)s' failed in %(method)s"), - {'name': extension.name, 'method': method_name} - ) - def initialize(self): # Initialize each agent extension in the list. for extension in self: