← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1023156] Re: [RFE] QuantumDbPluginV2 should support extended attributes on core resources

 

[Expired for neutron because there has been no activity for 60 days.]

** Changed in: neutron
       Status: Incomplete => Expired

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

Title:
  [RFE] QuantumDbPluginV2 should support extended attributes on core
  resources

Status in neutron:
  Expired

Bug description:
  Quantum API extensions such as
  https://blueprints.launchpad.net/quantum/+spec/provider-networks add
  extended attributes to the request and response messages of existing
  core resource actions (create, get, get collection, update, delete).
  This category of extension is implemented within a plugin, typically
  exposing details of how the plugin maps core API virtual resources to
  physical networking mechanisms. See
  https://bugs.launchpad.net/quantum/+bug/1023111 regarding enhancing
  the Quantum extension framework to support extended attributes. This
  bug addresses enhancing the
  quantum.db.db_base_plugin_v2.QuantumDbPluginV2 base class to better
  support extended attributes.

  Currently, plugins supporting extended attributes can implement core
  resource action methods (such as create_network) by calling the
  overridden QuantumDbPluginV2 base class method, processing extended
  request attributes, then finally adding extended response attributes
  to the dictionary returned by the base method. Field selection for
  both core and extended attributes can be supported in the
  get_<resource> and get_<collection> methods by passing None as the
  fields param to the base method, then calling
  QuantumDbPLuginV2._fields on the complete network dictionary before
  its returned. But supporting filtering across core and extended
  attributes in the get_<collection> method is more difficult since
  filtering of the core attributes is handled by
  http://docs.sqlalchemy.org/en/rel_0_7/orm/query.html#sqlalchemy.orm.query.Query.filter
  but that's not available for the extended attributes.

  One enhancement would be to support extended attributes by "event
  handler" methods as mentioned in the QuantumDbPluginV2 class's doc
  string. The base class's create_<resource> methods could call a
  _creating_<resource> method to allow the plugin to process the
  extended request attributes, probably after the UUID is assigned but
  before the DB record is created. The base class's create_<resource>,
  update_<resource>, get_<resource>, and get_<collection> methods could
  call an _extend_<resource>_dict method after the core attributes are
  added (but before field selection for get_*) to allow the plugin to
  add extended response attributes to the dictionary. The base class
  would have "pass" implementations of these event handlers that would
  only be overridden by plugin implementations when needed.

  The other enhancement would be to address the DB querying and
  filtering so that core and extended attributes can be handled
  uniformly. This might involve joins between the base class and plugin-
  specific tables, or might involve some mechanism to extend the base
  model classes with plugin-specific columns.

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