Use anchor to require necessary packages

... so that correct packages are required without re-defining them in
resource implementations.

Change-Id: I5be94c01b9ec1bbfdae37b3a7e282f1b457fe3e0
This commit is contained in:
Takashi Kajinami 2020-05-04 12:00:45 +09:00
parent 56b76020af
commit 115be330eb
22 changed files with 59 additions and 91 deletions

View File

@ -46,8 +46,8 @@ Puppet::Type.newtype(:swift_account_config) do
defaultto('<SERVICE DEFAULT>')
end
autorequire(:package) do
'swift-account'
autorequire(:anchor) do
['swift::install::end']
end
end

View File

@ -46,8 +46,8 @@ Puppet::Type.newtype(:swift_bench_config) do
defaultto('<SERVICE DEFAULT>')
end
autorequire(:package) do
'swift'
autorequire(:anchor) do
['swift::install::end']
end
end

View File

@ -47,8 +47,8 @@ Puppet::Type.newtype(:swift_config) do
end
# Require the swift.conf to be present
autorequire(:package) do
'swift'
autorequire(:anchor) do
['swift::install::end']
end
end

View File

@ -46,8 +46,8 @@ Puppet::Type.newtype(:swift_container_config) do
defaultto('<SERVICE DEFAULT>')
end
autorequire(:package) do
'swift-container'
autorequire(:anchor) do
['swift::install::end']
end
end

View File

@ -44,12 +44,8 @@ Puppet::Type.newtype(:swift_container_reconciler_config) do
end
# Require the package providing container-reconciler to be present
autorequire(:package) do
if Facter.value(:osfamily) == 'Debian'
'swift-container-reconciler'
elsif Facter.value(:osfamily) == 'RedHat'
'openstack-swift-container'
end
autorequire(:anchor) do
['swift::install::end']
end
end

View File

@ -46,8 +46,8 @@ Puppet::Type.newtype(:swift_container_sync_realms_config) do
defaultto('<SERVICE DEFAULT>')
end
autorequire(:package) do
'swift'
autorequire(:anchor) do
['swift::install::end']
end
end

View File

@ -46,8 +46,8 @@ Puppet::Type.newtype(:swift_dispersion_config) do
defaultto('<SERVICE DEFAULT>')
end
autorequire(:package) do
'swift'
autorequire(:anchor) do
['swift::install::end']
end
end

View File

@ -46,8 +46,8 @@ Puppet::Type.newtype(:swift_keymaster_config) do
defaultto('<SERVICE DEFAULT>')
end
autorequire(:package) do
'swift-proxy'
autorequire(:anchor) do
['swift::install::end']
end
end

View File

@ -46,8 +46,8 @@ Puppet::Type.newtype(:swift_memcache_config) do
defaultto('<SERVICE DEFAULT>')
end
autorequire(:package) do
'swift'
autorequire(:anchor) do
['swift::install::end']
end
end

View File

@ -46,8 +46,8 @@ Puppet::Type.newtype(:swift_object_config) do
defaultto('<SERVICE DEFAULT>')
end
autorequire(:package) do
'swift-object'
autorequire(:anchor) do
['swift::install::end']
end
end

View File

@ -44,12 +44,8 @@ Puppet::Type.newtype(:swift_object_expirer_config) do
end
# Require the package providing object-expirer to be present
autorequire(:package) do
if Facter.value(:osfamily) == 'Debian'
'swift-object-expirer'
elsif Facter.value(:osfamily) == 'RedHat'
'openstack-swift-proxy'
end
autorequire(:anchor) do
['swift::install::end']
end
end

View File

@ -46,8 +46,8 @@ Puppet::Type.newtype(:swift_proxy_config) do
defaultto('<SERVICE DEFAULT>')
end
autorequire(:package) do
'swift-proxy'
autorequire(:anchor) do
['swift::install::end']
end
end

View File

@ -8,12 +8,12 @@ describe 'Puppet::Type.type(:swift_account_config)' do
it 'should autorequire the package that install the file' do
catalog = Puppet::Resource::Catalog.new
package = Puppet::Type.type(:package).new(:name => 'swift-account')
catalog.add_resource package, @swift_account_config
anchor = Puppet::Type.type(:anchor).new(:name => 'swift::install::end')
catalog.add_resource anchor, @swift_account_config
dependency = @swift_account_config.autorequire
expect(dependency.size).to eq(1)
expect(dependency[0].target).to eq(@swift_account_config)
expect(dependency[0].source).to eq(package)
expect(dependency[0].source).to eq(anchor)
end
end

View File

@ -8,12 +8,12 @@ describe 'Puppet::Type.type(:swift_bench_config)' do
it 'should autorequire the package that install the file' do
catalog = Puppet::Resource::Catalog.new
package = Puppet::Type.type(:package).new(:name => 'swift')
catalog.add_resource package, @swift_bench_config
anchor = Puppet::Type.type(:anchor).new(:name => 'swift::install::end')
catalog.add_resource anchor, @swift_bench_config
dependency = @swift_bench_config.autorequire
expect(dependency.size).to eq(1)
expect(dependency[0].target).to eq(@swift_bench_config)
expect(dependency[0].source).to eq(package)
expect(dependency[0].source).to eq(anchor)
end
end

View File

@ -53,12 +53,12 @@ describe 'Puppet::Type.type(:swift_config)' do
it 'should autorequire the package that install the file' do
catalog = Puppet::Resource::Catalog.new
package = Puppet::Type.type(:package).new(:name => 'swift')
catalog.add_resource package, @swift_config
anchor = Puppet::Type.type(:anchor).new(:name => 'swift::install::end')
catalog.add_resource anchor, @swift_config
dependency = @swift_config.autorequire
expect(dependency.size).to eq(1)
expect(dependency[0].target).to eq(@swift_config)
expect(dependency[0].source).to eq(package)
expect(dependency[0].source).to eq(anchor)
end
end

View File

@ -8,12 +8,12 @@ describe 'Puppet::Type.type(:swift_container_config)' do
it 'should autorequire the package that install the file' do
catalog = Puppet::Resource::Catalog.new
package = Puppet::Type.type(:package).new(:name => 'swift-container')
catalog.add_resource package, @swift_container_config
anchor = Puppet::Type.type(:anchor).new(:name => 'swift::install::end')
catalog.add_resource anchor, @swift_container_config
dependency = @swift_container_config.autorequire
expect(dependency.size).to eq(1)
expect(dependency[0].target).to eq(@swift_container_config)
expect(dependency[0].source).to eq(package)
expect(dependency[0].source).to eq(anchor)
end
end

View File

@ -8,12 +8,12 @@ describe 'Puppet::Type.type(:swift_container_sync_realms_config)' do
it 'should autorequire the package that install the file' do
catalog = Puppet::Resource::Catalog.new
package = Puppet::Type.type(:package).new(:name => 'swift-container')
catalog.add_resource package, @swift_container_sync_realms_config
anchor = Puppet::Type.type(:anchor).new(:name => 'swift::install::end')
catalog.add_resource anchor, @swift_container_sync_realms_config
dependency = @swift_container_sync_realms_config.autorequire
expect(dependency.size).to eq(1)
expect(dependency[0].target).to eq(@swift_container_sync_realms_config)
expect(dependency[0].source).to eq(package)
expect(dependency[0].source).to eq(anchor)
end
end

View File

@ -8,12 +8,12 @@ describe 'Puppet::Type.type(:swift_dispersion_config)' do
it 'should autorequire the package that install the file' do
catalog = Puppet::Resource::Catalog.new
package = Puppet::Type.type(:package).new(:name => 'swift')
catalog.add_resource package, @swift_dispersion_config
anchor = Puppet::Type.type(:anchor).new(:name => 'swift::install::end')
catalog.add_resource anchor, @swift_dispersion_config
dependency = @swift_dispersion_config.autorequire
expect(dependency.size).to eq(1)
expect(dependency[0].target).to eq(@swift_dispersion_config)
expect(dependency[0].source).to eq(package)
expect(dependency[0].source).to eq(anchor)
end
end

View File

@ -8,12 +8,12 @@ describe 'Puppet::Type.type(:swift_keymaster_config)' do
it 'should autorequire the package that install the file' do
catalog = Puppet::Resource::Catalog.new
package = Puppet::Type.type(:package).new(:name => 'swift-proxy')
catalog.add_resource package, @swift_keymaster_config
anchor = Puppet::Type.type(:anchor).new(:name => 'swift::install::end')
catalog.add_resource anchor, @swift_keymaster_config
dependency = @swift_keymaster_config.autorequire
expect(dependency.size).to eq(1)
expect(dependency[0].target).to eq(@swift_keymaster_config)
expect(dependency[0].source).to eq(package)
expect(dependency[0].source).to eq(anchor)
end
end

View File

@ -8,12 +8,12 @@ describe 'Puppet::Type.type(:swift_object_config)' do
it 'should autorequire the package that install the file' do
catalog = Puppet::Resource::Catalog.new
package = Puppet::Type.type(:package).new(:name => 'swift-object')
catalog.add_resource package, @swift_object_config
anchor = Puppet::Type.type(:anchor).new(:name => 'swift::install::end')
catalog.add_resource anchor, @swift_object_config
dependency = @swift_object_config.autorequire
expect(dependency.size).to eq(1)
expect(dependency[0].target).to eq(@swift_object_config)
expect(dependency[0].source).to eq(package)
expect(dependency[0].source).to eq(anchor)
end
end

View File

@ -3,41 +3,17 @@ require 'puppet/type/swift_object_expirer_config'
describe 'Puppet::Type.type(:swift_object_expirer_config)' do
before :each do
# If we do not remove the type, if will only be processed once on
# initialization, thus it will only read the fact on startup, no
# matter how we try to stub it.
Puppet::Type.rmtype(:swift_object_expirer_config)
Facter.fact(:osfamily).stubs(:value).returns(platform_params[:osfamily])
@swift_object_expirer_config = Puppet::Type.type(:swift_object_expirer_config).new(:name => 'DEFAULT/foo', :value => 'bar')
end
shared_examples_for 'swift-object-expirer' do
it 'should autorequire the package that installs the file' do
catalog = Puppet::Resource::Catalog.new
package = Puppet::Type.type(:package).new(:name => platform_params[:package_name])
catalog.add_resource package, @swift_object_expirer_config
dependency = @swift_object_expirer_config.autorequire
expect(dependency.size).to eq(1)
expect(dependency[0].target).to eq(@swift_object_expirer_config)
expect(dependency[0].source).to eq(package)
end
it 'should autorequire the package that installs the file' do
catalog = Puppet::Resource::Catalog.new
anchor = Puppet::Type.type(:anchor).new(:name => 'swift::install::end')
catalog.add_resource anchor, @swift_object_expirer_config
dependency = @swift_object_expirer_config.autorequire
expect(dependency.size).to eq(1)
expect(dependency[0].target).to eq(@swift_object_expirer_config)
expect(dependency[0].source).to eq(anchor)
end
context 'on Debian platforms' do
let :platform_params do
{ :package_name => 'swift-object-expirer',
:osfamily => 'Debian' }
end
it_behaves_like 'swift-object-expirer'
end
context 'on RedHat platforms' do
let :platform_params do
{ :package_name => 'openstack-swift-proxy',
:osfamily => 'RedHat'}
end
it_behaves_like 'swift-object-expirer'
end
end

View File

@ -8,12 +8,12 @@ describe 'Puppet::Type.type(:swift_proxy_config)' do
it 'should autorequire the package that install the file' do
catalog = Puppet::Resource::Catalog.new
package = Puppet::Type.type(:package).new(:name => 'swift-proxy')
catalog.add_resource package, @swift_proxy_config
anchor = Puppet::Type.type(:anchor).new(:name => 'swift::install::end')
catalog.add_resource anchor, @swift_proxy_config
dependency = @swift_proxy_config.autorequire
expect(dependency.size).to eq(1)
expect(dependency[0].target).to eq(@swift_proxy_config)
expect(dependency[0].source).to eq(package)
expect(dependency[0].source).to eq(anchor)
end
end