diff --git a/autogenerate_config_docs/autohelp.py b/autogenerate_config_docs/autohelp.py index 8ed0e421..2e333b5c 100755 --- a/autogenerate_config_docs/autohelp.py +++ b/autogenerate_config_docs/autohelp.py @@ -30,6 +30,7 @@ import sys import jinja2 import stevedore +from oslo_config import generator try: from sqlalchemy import exc except Exception: @@ -677,6 +678,25 @@ def main(): options = OptionsCache(overrides, verbose=args.verbose) options.maybe_load_extensions(args.repos) + # NOTE(gpocentek): most projects have moved to oslo_config.generator to + # handle their opt files. We try to use it and add the new options. + # We should probably only use this at some point (here or in a sphinx + # extension). + try: + generator_opts = generator._list_opts(package_name)[0][1] + except Exception as e: + generator_opts = None + + if generator_opts is not None: + for grouped_opts in generator_opts: + group = grouped_opts[0] + for opt in grouped_opts[1]: + if group in ('DEFAULT', None): + optname = opt.name + else: + optname = '%s/%s' % (group, opt.name) + options._add_opt(optname, group, opt) + if args.verbose > 0: print("%s options imported from package %s." % (len(options), str(package_name)))