[openstack-dev] [Mistral] Cleaning up configuration settings

Angus Salkeld angus.salkeld at RACKSPACE.COM
Fri May 23 01:20:07 UTC 2014


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 23/05/14 05:00, W Chan wrote:
> Renat,
> 
> I want to avoid having to explicitly import the mistral.config module in order 
> to have configuration loaded properly.  The problem with the way mistral.config 
> is coded is that we have to use importutils otherwise we get pep8 error if we 
> simply insert "from mistral import config".  An example at 
> https://github.com/stackforge/mistral/blob/master/mistral/engine/__init__.py#L29.  This 
> seems to be a chore when it comes down to writing tests where the mistral.config 
> is not necessary loaded (whereas the launch script registers the configuration 
> because the parse_args function in mistral.config is called and the problem 
> isn't as apparent).  So we see the importutils.import_module('mistral.config') 
> scattered in multiple tests.

That is why this exists:

cfg.CONF.import_opt('debug', 'mistral.openstack.common.log')

- -Angus

> 
> My initial patchset has all the configurations under mistral.config but I have 
> them separated into different methods.  The tools/config/generate_sample.sh 
> expects the options to be at top level in the module.  I also looked at a few 
> other OpenStack projects for reference (i.e. nova, ceilometer, oslo.messaging) 
> and then in the latest patchset moved them closer to the modules where they are 
> needed thinking this may be more consistent with other projects.
> 
> I can certainly revisit this and explore an alternate way to keep these config 
> together and avoid the importutils problem.  This may be minor but I want to 
> take care of this clean up before we hit the ground running with juno related bps.
> 
> Winson
> 
> 
> 
> On Thu, May 22, 2014 at 8:29 AM, Renat Akhmerov <rakhmerov at mirantis.com 
> <mailto:rakhmerov at mirantis.com>> wrote:
> 
>     I tend to disagree with the whole idea. Not sure 100% though yet. Could you
>     please explain the point of scattering configuration all over the code? In
>     my opinion, we’re mixing different application concerns. With the current
>     approach I always know where to look at in order to find all my
>     configuration option definitions (types, descriptions etc.) but with this
>     refactoring it seems to be a tricky task.
> 
>     Thoughts? What benefits of doing that?
> 
>     Renat Akhmerov
>     @ Mirantis Inc.
> 
> 
> 
>     On 16 May 2014, at 21:32, Dmitri Zimine <dz at stackstorm.com
>     <mailto:dz at stackstorm.com>> wrote:
> 
>>     +1 for breaking down the configuration by modules.
>>
>>     Not sure about names for configuration group. Do you mean just using the
>>     same group name? or more?
>>
>>     IMO groups are project specific; it doesn’t always make sense to use the
>>     same group name in the context of different projects. Our requirement is
>>     1) auto-generate mistral.conf.example from the config.py and 2) sections
>>     make sense in the product context.
>>
>>     For example: how do we deal with rpc_backend and transport_url for oslo
>>     messaging? Should we do something like CONF.import(_transport_opts,
>>     “oslo.messaging.transport”, “transport”)? And use it by passing the group,
>>     not entire contfig, like:
>>
>>     transport = messaging.get_transport(cfg.messaging.CONF)
>>     instead of
>>     transport = messaging.get_transport(cfg.CONF)
>>
>>     DZ>
>>
>>
>>     On May 16, 2014, at 12:46 PM, W Chan <m4d.coder at gmail.com
>>     <mailto:m4d.coder at gmail.com>> wrote:
>>
>>>     Regarding config opts for keystone, the keystoneclient middleware already
>>>     registers the opts at
>>>     https://github.com/openstack/python-keystoneclient/blob/master/keystoneclient/middleware/auth_token.py#L325
>>>     under a keystone_authtoken group in the config file.  Currently, Mistral
>>>     registers the opts again at
>>>     https://github.com/stackforge/mistral/blob/master/mistral/config.py#L108
>>>     under a different configuration group.  Should we remove the duplicate
>>>     from Mistral and refactor the reference to keystone configurations to the
>>>     keystone_authtoken group?  This seems more consistent.
>>>
>>>
>>>     On Thu, May 15, 2014 at 1:13 PM, W Chan <m4d.coder at gmail.com
>>>     <mailto:m4d.coder at gmail.com>> wrote:
>>>
>>>         Currently, the various configurations are registered in
>>>         ./mistral/config.py.  The configurations are registered when
>>>         mistral.config is referenced.  Given the way the code is written,
>>>         PEP8 throws referenced but not used error if mistral.config is
>>>         referenced but not called in the module.  In various use cases, this
>>>         is avoided by using importutils to import mistral.config (i.e.
>>>         https://github.com/stackforge/mistral/blob/master/mistral/tests/unit/engine/test_transport.py#L34).
>>>          I want to break down registration code in ./mistral/config.py into
>>>         separate functions for api, engine, db, etc and move the registration
>>>         closer to the module where the configuration is needed.  Any objections?
>>>
>>>
>>>     _______________________________________________
>>>     OpenStack-dev mailing list
>>>     OpenStack-dev at lists.openstack.org <mailto:OpenStack-dev at lists.openstack.org>
>>>     http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>
>>     _______________________________________________
>>     OpenStack-dev mailing list
>>     OpenStack-dev at lists.openstack.org <mailto:OpenStack-dev at lists.openstack.org>
>>     http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> 
> 
>     _______________________________________________
>     OpenStack-dev mailing list
>     OpenStack-dev at lists.openstack.org <mailto:OpenStack-dev at lists.openstack.org>
>     http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> 
> 

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQEcBAEBAgAGBQJTfqJHAAoJEFrDYBLxZjWoeKYH/16Y6NHQXQyaYOsPUdsqG8Vh
meYRT5hrgdWE/aja41PUyNa6v3eIAy/JaunkK538DKg3xrSNdZZhVXDhmoOxXK1e
3vaClCiPOQlKWhpUlRNTeU+buGqxNLj7mHcEUtWMSn0DDLHd6hNWCFPLIqkQ/nNs
XjO1VIsMn+PNzcsdxF0uXtIr5xH3tjWk2Gv6rjSRqKrvodu+T97B2UNME/s6/kln
y48Rl8iNJm0EBjuySRCtBoMnkuMXJ58jfxEVFo5WpJRJQIEnCWXgiQhRaSwvR5fS
KJB6cbyTd64peMOzgk4pdsr4c/uZKBYFYys//p6WpVzgPJof6CA4S0j2w8jd4ns=
=BVoZ
-----END PGP SIGNATURE-----



More information about the OpenStack-dev mailing list