[openstack-dev] [nova][oslo] oslo.config and import chains
Matthew Booth
mbooth at redhat.com
Thu Aug 7 16:27:58 UTC 2014
On 07/08/14 16:27, Kevin L. Mitchell wrote:
> 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.
That's different behaviour, because you can no longer pass arg=None. The
fix isn't to change the behaviour of the code.
Matt
--
Matthew Booth
Red Hat Engineering, Virtualisation Team
Phone: +442070094448 (UK)
GPG ID: D33C3490
GPG FPR: 3733 612D 2D05 5458 8A8A 1600 3441 EA19 D33C 3490
More information about the OpenStack-dev
mailing list