def __init__(self): # Ordered list of extension drivers, defining # the order in which the drivers are called. self.ordered_ext_drivers = [] LOG.info(_LI("Configured extension driver names: %s"), _EXTENSION_DRIVERS) super(ExtensionManager, self).__init__('neutron.ml2.extension_drivers', _EXTENSION_DRIVERS, invoke_on_load=True, name_order=True) LOG.info(_LI("Loaded extension driver names: %s"), self.names()) self._register_drivers()
def _register_drivers(self): """Register all extension drivers. This method should only be called once in the ExtensionManager constructor. """ for ext in self: self.ordered_ext_drivers.append(ext) LOG.info(_LI("Registered extension drivers: %s"), [driver.name for driver in self.ordered_ext_drivers])
def extension_aliases(self): exts = [] for driver in self.ordered_ext_drivers: alias = driver.obj.extension_alias if alias: exts.append(alias) LOG.info(_LI("Got %(alias)s extension from driver '%(drv)s'"), { 'alias': alias, 'drv': driver.name }) return exts
def _call_on_ext_drivers(self, method_name, plugin_context, data, result): """Helper method for calling a method across all extension drivers.""" for driver in self.ordered_ext_drivers: try: getattr(driver.obj, method_name)(plugin_context, data, result) except Exception: with excutils.save_and_reraise_exception(): LOG.info( _LI("Extension driver '%(name)s' failed in " "%(method)s"), { 'name': driver.name, 'method': method_name })
def initialize(self): # Initialize each driver in the list. for driver in self.ordered_ext_drivers: LOG.info(_LI("Initializing extension driver '%s'"), driver.name) driver.obj.initialize()
def __init__(self): LOG.info(_LI("ML2 UplinkTypeDriver initialization complete"))
def __init__(self): LOG.info(_LI("ML2 MidonetTypeDriver initialization complete"))