Move Configuration into NoSQL DB

Registered by Duncan McGreggor

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

Related branches

Sprints

Whiteboard

[oubiwann] select a nosql database backend (see blueprint https://blueprints.launchpad.net/pymon/+spec/mongo-db): DONE
[oubiwann] define a best-guess schema for global system configuration data (see blueprint https://blueprints.launchpad.net/pymon/+spec/json-config-schemas): INPROGRESS
[oubiwann] define a best-guess schema for monitored services configuration data (see blueprint https://blueprints.launchpad.net/pymon/+spec/json-config-schemas): INPROGRESS
[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.

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.