[openstack-dev] [puppet] Why do we have two providers for openstack_config ?

Emilien Macchi emilien at redhat.com
Thu Aug 11 14:09:28 UTC 2016


On Thu, Aug 11, 2016 at 9:26 AM, Sofer Athlan-Guyot <sathlang at redhat.com> wrote:
> Hi,
>
> I stumbled on the fact that there are two providers for the
> openstack_config type: ruby[1]; ini_setting.rb[2].
>
> The ruby's one has a fork of the inifile ruby's provider is there[3].
>
> It is currently used by those 6 types:
>
>  - neutron_lbaas_service_config
>  - nova_config
>  - neutron_vpnaas_service_config
>  - neutron_config
>  - ceilometer_config
>  - barbican_config
>
> They all have in common to define the value type as an array, for
> instance in [4].
>
> A basic support for :array_matching => all in ini_setting is not hard to
> do (added there [5]).
>
> So, are there other reasons I missed, that force us to keep the second
> provider ?
>
> For instance that could be places where this array_matching => all is
> currently used in any config setting like:
>
>     nova_config { 'foo/bar' => ['1','2','3'] }
>
> Or, digging into the code, I've got the impression that it's able to
> "collect" configuration like this:
>
>     [foo]
>     bar = 1
>     bar = 2
>     bar = 3
>
> but then again, not sure and didn't have to test it all.
>
> If someone has some answer to the why and how of the ruby.rb provider,
> that would be awesome.  At the very least we could add it to the README.

It seems like it comes from:
https://github.com/openstack/puppet-openstacklib/commit/029c6a74cce2dceff5ae78c138a050d9eb7a6f9b

"This patch add support for parsing configuration files of projects
which use oslo.config.cfg.MultiStrOpt (currently Neutron LBaaSv2)"

Which is exactly what you're talking about.

I'm 100% in favor of removing this provider and add the feature into
ini_setting if possible.

Thanks,

> Thanks for reading this far,
> Regards,
>
> [1] https://github.com/openstack/puppet-openstacklib/blob/master/lib/puppet/provider/openstack_config/ruby.rb
> [2] https://github.com/openstack/puppet-openstacklib/blob/master/lib/puppet/provider/openstack_config/ini_setting.rb
> [3] https://github.com/openstack/puppet-openstacklib/tree/master/lib/puppet/util
> [4] https://github.com/openstack/puppet-neutron/blob/master/lib/puppet/type/neutron_lbaas_service_config.rb#L10
> [5] https://review.openstack.org/#/c/354018/
> --
> Sofer Athlan-Guyot
>
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev



-- 
Emilien Macchi



More information about the OpenStack-dev mailing list