diff --git a/lib/puppet/type/gnocchi_config.rb b/lib/puppet/type/gnocchi_config.rb index 9fbf10c0..acdb0e76 100644 --- a/lib/puppet/type/gnocchi_config.rb +++ b/lib/puppet/type/gnocchi_config.rb @@ -39,4 +39,9 @@ Puppet::Type.newtype(:gnocchi_config) do defaultto false end + + autorequire(:package) do + 'gnocchi-api' + end + end diff --git a/manifests/api.pp b/manifests/api.pp index 86be53de..f21b611f 100644 --- a/manifests/api.pp +++ b/manifests/api.pp @@ -101,7 +101,6 @@ class gnocchi::api( Gnocchi_config<||> ~> Exec['post-gnocchi_config'] Gnocchi_config<||> ~> Service['gnocchi-api'] - Package['gnocchi-api'] -> Gnocchi_config<||> if $::gnocchi::database_connection { if($::gnocchi::database_connection =~ /mysql:\/\/\S+:\S+@\S+\/\S+/) { diff --git a/spec/unit/type/gnocchi_config_spec.rb b/spec/unit/type/gnocchi_config_spec.rb index d711b034..64580fe4 100644 --- a/spec/unit/type/gnocchi_config_spec.rb +++ b/spec/unit/type/gnocchi_config_spec.rb @@ -49,4 +49,15 @@ describe 'Puppet::Type.type(:gnocchi_config)' do @gnocchi_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 => 'gnocchi-api') + catalog.add_resource package, @gnocchi_config + dependency = @gnocchi_config.autorequire + expect(dependency.size).to eq(1) + expect(dependency[0].target).to eq(@gnocchi_config) + expect(dependency[0].source).to eq(package) + end + end