conf: Make list->dict conversion more specific

All of the Nova configuration options' 'list_opts' functions have been
updated to return dicts rather than lists of tuples. However, two
dependency libraries still return dicts.

Replace the general handling code for this with specific code in the
two offending places. This gives a more actionable resolution.

Blueprint centralize-config-options-ocata
Change-Id: I5ce9ac2037e4374215a96e09e12b0873c31dd27e
This commit is contained in:
Stephen Finucane 2016-08-23 17:39:49 +01:00
parent d3c9c476fc
commit 5af99c7545
3 changed files with 4 additions and 13 deletions

View File

@ -23,4 +23,5 @@ def register_opts(conf):
def list_opts():
return core._opts.list_opts()
# The oslo_cache library returns a list of tuples
return dict(core._opts.list_opts())

View File

@ -72,19 +72,8 @@ def _import_modules(module_names):
return imported_modules
def _process_old_opts(configs):
"""Convert old-style 2-tuple configs to dicts."""
if isinstance(configs, tuple):
configs = [configs]
return {label: options for label, options in configs}
def _append_config_options(imported_modules, config_options):
for mod in imported_modules:
configs = mod.list_opts()
# TODO(markus_z): Remove this compatibility shim once all list_opts()
# functions have been updated to return dicts.
if not isinstance(configs, dict):
configs = _process_old_opts(configs)
for key, val in configs.items():
config_options[key].extend(val)

View File

@ -21,4 +21,5 @@ def register_opts(conf):
def list_opts():
return sslutils.list_opts()
# The oslo_cache library returns a list of tuples
return dict(sslutils.list_opts())