]> review.fuel-infra Code Review - puppet-modules/puppet-ceilometer.git/commitdiff
Rely on autorequire for config resource ordering
authorYanis Guenane <yguenane@redhat.com>
Wed, 12 Aug 2015 07:45:38 +0000 (09:45 +0200)
committerYanis Guenane <yguenane@redhat.com>
Wed, 12 Aug 2015 16:45:28 +0000 (18:45 +0200)
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

lib/puppet/type/ceilometer_config.rb
manifests/api.pp
manifests/init.pp
spec/unit/type/ceilometer_config_spec.rb

index 77215b251537f3676f6832169f94c6c8fddc9aad..cb03195065f13d71812c2cdad2d5865f6b4a53ba 100644 (file)
@@ -41,4 +41,8 @@ Puppet::Type.newtype(:ceilometer_config) do
     defaultto false
   end
 
+  autorequire(:package) do
+    'ceilometer-common'
+  end
+
 end
index b6ea6728ad006c954939e4325f90728e72551cc5..b0bbde65060888dcb8af36b87779d7dd5eff55f5 100644 (file)
@@ -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':
index 0f8d28a4ef3580fbb86312662f45eb631bf6a6cc..7d65717c7c1c33e7f79ed2d7fbe2de7514e8e997 100644 (file)
@@ -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' {
 
index 226507eb9e69d2cee12ea9625851c310b24848a7..368347904407123ccd2c094c34a8405d50f89cdc 100644 (file)
@@ -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