From: Yanis Guenane Date: Wed, 12 Aug 2015 07:45:38 +0000 (+0200) Subject: Rely on autorequire for config resource ordering X-Git-Tag: 7.0.0-mos-rc1~7^2 X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=e729f2d91177a64db52476b4e3b3c2d361b1cf47;p=puppet-modules%2Fpuppet-ceilometer.git Rely on autorequire for config resource ordering Currently we specify the ordering of config resources wherever it is necessary based on the presence of the file it will write to, or the presence of the package in charge of providing the file it will write to. Those kind of ordering can be specified directly at the resource level using the autorequire mechanism. With this patch, any config resource will make sure the package in charge of providing the file will be installed first. Change-Id: Ie99aec47f9bf334336e9cd87106c9f47d6e5abfa --- diff --git a/lib/puppet/type/ceilometer_config.rb b/lib/puppet/type/ceilometer_config.rb index 77215b2..cb03195 100644 --- a/lib/puppet/type/ceilometer_config.rb +++ b/lib/puppet/type/ceilometer_config.rb @@ -41,4 +41,8 @@ Puppet::Type.newtype(:ceilometer_config) do defaultto false end + autorequire(:package) do + 'ceilometer-common' + end + end diff --git a/manifests/api.pp b/manifests/api.pp index b6ea672..b0bbde6 100644 --- a/manifests/api.pp +++ b/manifests/api.pp @@ -90,7 +90,6 @@ class ceilometer::api ( Ceilometer_config<||> ~> Service['ceilometer-api'] Class['ceilometer::policy'] ~> Service['ceilometer-api'] - Package['ceilometer-api'] -> Ceilometer_config<||> Package['ceilometer-api'] -> Service['ceilometer-api'] Package['ceilometer-api'] -> Class['ceilometer::policy'] package { 'ceilometer-api': diff --git a/manifests/init.pp b/manifests/init.pp index 0f8d28a..7d65717 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -202,8 +202,6 @@ class ceilometer( tag => ['openstack', 'ceilometer-package'], } - Package['ceilometer-common'] -> Ceilometer_config<||> - # we keep "ceilometer.openstack.common.rpc.impl_kombu" for backward compatibility if $rpc_backend == 'ceilometer.openstack.common.rpc.impl_kombu' or $rpc_backend == 'rabbit' { diff --git a/spec/unit/type/ceilometer_config_spec.rb b/spec/unit/type/ceilometer_config_spec.rb index 226507e..3683479 100644 --- a/spec/unit/type/ceilometer_config_spec.rb +++ b/spec/unit/type/ceilometer_config_spec.rb @@ -50,4 +50,15 @@ describe 'Puppet::Type.type(:ceilometer_config)' do @ceilometer_config[:ensure] = :latest }.to raise_error(Puppet::Error, /Invalid value/) end + + it 'should autorequire the package that install the file' do + catalog = Puppet::Resource::Catalog.new + package = Puppet::Type.type(:package).new(:name => 'ceilometer-common') + catalog.add_resource package, @ceilometer_config + dependency = @ceilometer_config.autorequire + expect(dependency.size).to eq(1) + expect(dependency[0].target).to eq(@ceilometer_config) + expect(dependency[0].source).to eq(package) + end + end