diff --git a/nova/openstack/common/config/generator.py b/nova/openstack/common/config/generator.py index ef90f168390f..73749834a555 100644 --- a/nova/openstack/common/config/generator.py +++ b/nova/openstack/common/config/generator.py @@ -179,6 +179,10 @@ def _list_opts(obj): not isinstance(o, cfg.SubCommandOpt)) opts = list() + + if 'list_opts' in dir(obj): + return getattr(obj, 'list_opts')() + for attr_str in dir(obj): attr_obj = getattr(obj, attr_str) if is_opt(attr_obj): diff --git a/nova/openstack/common/versionutils.py b/nova/openstack/common/versionutils.py index 6006f79384cb..d15862f00978 100644 --- a/nova/openstack/common/versionutils.py +++ b/nova/openstack/common/versionutils.py @@ -17,6 +17,7 @@ Helpers for comparing version strings. """ +import copy import functools import inspect import logging @@ -32,13 +33,19 @@ LOG = logging.getLogger(__name__) CONF = cfg.CONF -opts = [ +deprecated_opts = [ cfg.BoolOpt('fatal_deprecations', default=False, help='Enables or disables fatal status of deprecations.'), ] +def list_opts(): + """Entry point for oslo.config-generator. + """ + return [(None, copy.deepcopy(deprecated_opts))] + + class deprecated(object): """A decorator to mark callables as deprecated. @@ -230,7 +237,7 @@ def report_deprecated_feature(logger, msg, *args, **kwargs): fatal deprecations. """ stdmsg = _("Deprecated: %s") % msg - CONF.register_opts(opts) + CONF.register_opts(deprecated_opts) if CONF.fatal_deprecations: logger.critical(stdmsg, *args, **kwargs) raise DeprecatedConfig(msg=stdmsg)