Comment 2 for bug 949373

Revision history for this message
Joseph Heck (heckj) wrote :

I think it is too - the ConfigMixin() setup in keystone/config.py has me stumbling over this a bit. I'm assigning the bug to termie because I need his help to get this resolved:

I think I'm not quite grokking how the override of __call__() does it's magic. Here's what I'm seeing (and what I'm trying to do).

I tried a
 CONF(sys.argv[1:])

in keystone-all right after the CONF was configured with a config file. I stepped through it in pdb, and what we get into the ConfigMixin __call__() method, the parameters there are getting pulled in as config_files, causing all sorts of havoc.

Any idea how to get into those into the subclasses' (ConfigOpts) __call__ method?

While trying to work around it, it looks like the wrappers in for keystone.config.register_* are also making it so that config options defined in keystone/config.py aren't embedded into expected subdicts

i.e.

    CONF._cli_values inspected from pdb right after the whole critter is loaded:

(Pdb) CONF._cli_values
{'log_date_format': None, 'config_file': None, 'verbose': None, 'use_syslog': None, 'log_dir': None, 'syslog_log_facility': None, 'debug': None, 'log_format': None, 'log_file': None, 'log_config': None}