Exemplo n.º 1
0
    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()
Exemplo n.º 2
0
    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])
Exemplo n.º 3
0
 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
Exemplo n.º 4
0
 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
                         })
Exemplo n.º 5
0
 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()
Exemplo n.º 6
0
 def __init__(self):
     LOG.info(_LI("ML2 UplinkTypeDriver initialization complete"))
Exemplo n.º 7
0
 def __init__(self):
     LOG.info(_LI("ML2 MidonetTypeDriver initialization complete"))