have show-options load the generator config file

Add an option to the show-options directive to read existing
configuration files for the sample config generator instead of making
the author provide the list of namespaces inline.

Change-Id: I0ec46cc7aa820ae592d8e4e7b56ee98f0c5cbfb4
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
This commit is contained in:
Doug Hellmann 2016-02-05 16:52:22 -05:00
parent e056c80dd1
commit ad440d7957
2 changed files with 25 additions and 5 deletions

View File

@ -29,6 +29,14 @@ two roles.
oslo.config
oslo.log
To use an existing configuration file for the sample configuration
generator, use the ``config-file`` option instead of specifying the
namespaces inline.
::
.. show-options::
:config-file: etc/oslo-config-generator/glance-api.conf
.. rst:role:: option
Link to an option.

View File

@ -68,6 +68,7 @@ class ShowOptionsDirective(rst.Directive):
option_spec = {
'split-namespaces': directives.flag,
'config-file': directives.unchanged,
}
has_content = True
@ -90,11 +91,22 @@ class ShowOptionsDirective(rst.Directive):
split_namespaces = 'split-namespaces' in self.options
namespaces = [
c.strip()
for c in self.content
if c.strip()
]
config_file = self.options.get('config-file')
if config_file:
app.info('loading config file %s' % config_file)
conf = cfg.ConfigOpts()
conf.register_opts(generator._generator_opts)
conf(
args=['--config-file', config_file],
project='oslo.config.sphinxext',
)
namespaces = conf.namespace[:]
else:
namespaces = [
c.strip()
for c in self.content
if c.strip()
]
opts = generator._list_opts(namespaces)