[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 -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp