Move Configuration into NoSQL DB
The configuration system is too complex and depends upon root permissions to write to /etc. Let's abolish this, and just put the configuration in the database as JSON data along with everything else. A database is going to be required anyway, might as well make the configuration part of that.
Blueprint information
- Status:
- Started
- Approver:
- Duncan McGreggor
- Priority:
- High
- Drafter:
- None
- Direction:
- Approved
- Assignee:
- Duncan McGreggor
- Definition:
- Approved
- Series goal:
- None
- Implementation:
-
Good progress
- Milestone target:
- None
- Started by
- Duncan McGreggor
- Completed by
Related branches
Related bugs
Sprints
Whiteboard
[oubiwann] select a nosql database backend (see blueprint https:/
[oubiwann] define a best-guess schema for global system configuration data (see blueprint https:/
[oubiwann] define a best-guess schema for monitored services configuration data (see blueprint https:/
[oubiwann] convert current configuration data to JSON and store configuration data in nosql db: TODO
[oubiwann] run pymon successfully with this configuration data (from db): TODO
[oubiwann] support reading this data from files with start-up options: TODO
[oubiwann] run pymon successfully with this configuration data (from files, with no db installed): TODO
[oubiwann] examine configuration systems that support nested structures (like ZConfig) but are easier to use (e.g., YAML); the chosen system must support reading in dicts and outputing as dicts: DONE
* YAML wins
* it's used all over the place
* it supports nested data structures that are easy to convert to JSON
[oubiwann] convert combined ZConfig to chosen format: INPROGRESS
[oubiwann] write a json converter for configuration data (read and write): TODO
[oubiwann] write a tool for editing the configuration data, presented to the user in the format of the chosen configuration system and then output as JSON: TODO
[oubiwann] write a service hook that installs the .yaml config file data into the MongoDB upon first run: TODO
Work Items
Dependency tree

* Blueprints in grey have been implemented.