Validator Tool for oslo.config

This is an announcement that we recently merged a new feature to oslo.config for validating the contents of config files. This has been an oft-requested feature, but in the past it was difficult to implement because config opts are registered dynamically at runtime and there's no good way to know for sure when all of them are present.

To address that, we made use of the somewhat new feature to generate machine-readable sample config. That data should contain all of the options for each service, so it provides a complete (mostly - more on that later) list of options that we can use to validate config files. If any options are not being provided to the sample config generator then that is a bug and should be addressed in the service anyway.

The tool will warn about any deprecated options present in the file and error on any completely missing ones. It can either use the sample-config-generator configuration file directly or use a pre-generated machine-readable sample config. One limitation of the current iteration of the tool is that it doesn't handle dynamic groups, so for projects that use those it may report some false positives. This should be solvable, but for the moment it is something to be aware of.

If this is something you were interested in, please try it out and let us know how it works for you. The latest release of oslo.config on pypi should have the tool, and since it doesn't necessarily need to be run on the production system the bleeding edge version can be installed somewhere else. Only the machine-readable sample config needs to be generated based on the production version of the code, and that capability has been in oslo.config for a few cycles now.

Hopefully this will be useful, but as mentioned above if you run into any issues with it please let the Oslo team know so we can get them addressed. Thanks.