Refactoring datastore options in trove/common/cfg.py

Registered by SnowDust

Trove project now supports multiple datastores. Trove's abstract commonality is extended by each datastore implementation. Trove should continue to handle databases as plugins/components and need not carry any prior knowledge(as configuration) of a DB adapted to work with it.

The current implementation of datastore options tie the datastore configurations hardcoded in cfg.py.

Alternatively DB implementation joining trove should provide its configurations with module entry points. cfg.py shall load the configurations by calling the module level settings.

Following are the necessary discussion points driving this blueprint.

SlickNik: "I'm not a fan of adding a fallback to the default configuration, either. However, I do see that it's currently difficult for an external datastore implementation to load config values for its use. I'd be open to discussing a bp that implements dynamic configuration loading that would make this easier."

amcrn: "unless someone writes a blueprint and a rough poc proving a polymorphic load would work, and wouldn't have detrimental side-effects"

amcrn: " SnowDust: so for now, no defaults. as a side project, you can look into what it means to make it pluggable."

Blueprint information

Status:
Complete
Approver:
Nikhil Manchanda
Priority:
Undefined
Drafter:
SnowDust
Direction:
Needs approval
Assignee:
Michael Basnight
Definition:
Superseded
Series goal:
None
Implementation:
Needs Code Review
Milestone target:
milestone icon next
Started by
Michael Basnight
Completed by
Nikhil Manchanda

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/refactoring-datastore-options-in-cfg,n,z

Addressed by: https://review.openstack.org/87038
    Fixes redundant get call in a few places

Addressed by: https://review.openstack.org/87040
    Move usage_timeout out of guest options

Addressed by: https://review.openstack.org/86808
    Removal of uneeded guest mount_point from taskmgr

(?)

Work Items

Work items:
Remove the tcp/udp ports from the datastore groups: TODO
Move the datastore groups to where they are actually used (i believe the manager.py): TODO

This blueprint contains Public information 
Everyone can see this information.