oslo.config reads options in a confusing and counter-intuitive order
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
oslo-incubator |
Fix Released
|
High
|
Unassigned |
Bug Description
The current behavior of oslo.config is to have config files override command line options. This is backwards and wrong. Directly given command line options should ALWAYS be the element which takes the most precedent. In fact, the typical and correct order that every piece of software follows and which every user expects is (order of least-precedence to most-precedence)
- Built-in defaults
- System config files
- User config files (if that is a thing that makes sense)
- Environment variables
- Command line options
Swapping the order of any of these things makes the software massively unusable, because it means the presense of a file in /etc will override an option given on the command line. This can have very dangerous unexpected effects (user expects to be spinning up a test instance, does not) and is very difficult to work around.
Changed in oslo: | |
milestone: | none → havana-3 |
status: | Fix Committed → Fix Released |
Changed in oslo: | |
milestone: | havana-3 → 2013.2 |
In the list thread on this the relative difficulty of editing the command line for systemd was advanced as a reason to alter the order. I think this was responded to on-list, but for the record - the most predictable way to solve this is to change the systemd config file so that it has no options, and then users can change the config file for everything.