[openstack-dev] [nova][oslo] oslo.config and import chains

Kevin L. Mitchell kevin.mitchell at rackspace.com
Thu Aug 7 15:27:41 UTC 2014

On Thu, 2014-08-07 at 12:15 +0100, Matthew Booth wrote:
> A (the?) solution is to register_opts() in foo before importing any
> modules which might also use oslo.config.

Actually, I disagree.  The real problem here is the definition of
bar_func().  The default value of the parameter "arg" will likely always
be the default value of foo_opt, rather than the configured value,
because "CONF.foo_opt" will be evaluated at module load time.  The way
bar_func() should be defined would be:

        def bar_func(arg=None):
            if not arg:
                arg = CONF.foo_opt

That ensures that arg will be the configured value, and should also
solve the import conflict.
Kevin L. Mitchell <kevin.mitchell at rackspace.com>

More information about the OpenStack-dev mailing list