← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1361605] [NEW] Use lazy init for L3 plugin reference

 

Public bug reported:

In many L3 plugins, there is a reference needed to the L3 core plugin.
This is typically done as:

        plugin =
manager.NeutronManager.get_service_plugins().get(constants.L3_ROUTER_NAT)

Rather than looking up the plugin, each time it is needed (e.g.
processing each VPN API request), this bug proposes to do a lazy init of
the plugin as in:

    @property
    def l3_plugin(self):
        try:
            return self._l3_plugin
        except AttributeError:
            self._l3_plugin = manager.NeutronManager.get_service_plugins().get(
                constants.L3_ROUTER_NAT)
            return self._l3_plugin

In addition, we can look at placing this in a common area (mixin?) or as
a decorator, so that each class that needs it could use the mixin,
rather than repeat this property.

** Affects: neutron
     Importance: Undecided
     Assignee: Paul Michali (pcm)
         Status: New

** Changed in: neutron
     Assignee: (unassigned) => Paul Michali (pcm)

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1361605

Title:
  Use lazy init for L3 plugin reference

Status in OpenStack Neutron (virtual network service):
  New

Bug description:
  In many L3 plugins, there is a reference needed to the L3 core plugin.
  This is typically done as:

          plugin =
  manager.NeutronManager.get_service_plugins().get(constants.L3_ROUTER_NAT)

  Rather than looking up the plugin, each time it is needed (e.g.
  processing each VPN API request), this bug proposes to do a lazy init
  of the plugin as in:

      @property
      def l3_plugin(self):
          try:
              return self._l3_plugin
          except AttributeError:
              self._l3_plugin = manager.NeutronManager.get_service_plugins().get(
                  constants.L3_ROUTER_NAT)
              return self._l3_plugin

  In addition, we can look at placing this in a common area (mixin?) or
  as a decorator, so that each class that needs it could use the mixin,
  rather than repeat this property.

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1361605/+subscriptions


Follow ups

References