Configurable db plugins

Registered by Boden R on 2014-04-29

I'd like to propose the ability to support configurable db plugins for
trove. Currently the sqlalchemy api's configure_db() function in trove
supports the ability to pass in 1 or more db plugin (mappers) classes
[1] which allow consumers to add their own schema (tables) to trove's
db. However the current trove.cmd.*.py entry points do not support any
means to pass in such plugins (example [2]).

I was thinking something like the following:
(a) Support a comma list property on CONF.DEFAULT in the trove conf
files.. e.g.
[DEFAULT]
db_plugins =
org.foo.bar.sqlalchemy.BarPlugins,org.yadda.sqlalchemy.MyPlugins

(b) In the trove CONF, default the comma list property to empty list
(e.g. []).

(c) Update each of the respective trove.cmd.*.py entry point (main()
methods) which call into configure_db() to first load any plugin classes
and them pass them into the method.. e.g.
get_db_api().configure_db(CONF, import_classes(CONF.db_plugins))

The above should give consumers the ability to plug into the trove
database api and add scheme without upstream changes.

See email list: http://lists.openstack.org/pipermail/openstack-dev/2014-April/033900.html

Blueprint information

Status:
Complete
Approver:
None
Priority:
Undefined
Drafter:
Boden R
Direction:
Needs approval
Assignee:
None
Definition:
Superseded
Series goal:
None
Implementation:
Unknown
Milestone target:
None
Completed by
Nikhil Manchanda on 2014-07-14

Related branches

Sprints

Whiteboard

Based on trove BP meeting we have moved to drop this BP due to:
(a) It couples consumers using this feature to the underlying implementation which may not be supported long term.
(b) No other openstack projects are exposing such functionality; an indication this is not a good practice.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.