Autorequire correct package based on the distro

Some distros (RHEL based) have a single glance package. On those
distros the ensure_package/autorequire stuff doesn't quite work
correctly as per the type code it is assumed two packages 'glance-api'
and 'glance-registry'

This commit makes sure that on RHEL based distros type only autorequire
'openstack-glance' while on other distros it correctly autorequire
'glance-api' and 'glance-registry'

Change-Id: I17c84b2282beadaec80f4db42fa5696b7967159f
Closes-bug: #1493442
Co-Authored-By: Yanis Guenane <yguenane@redhat.com>
This commit is contained in:
Dan Prince 2015-09-08 13:00:53 -04:00 committed by Yanis Guenane
parent f20357a7cf
commit bce0eac01c
9 changed files with 132 additions and 36 deletions

View File

@ -46,8 +46,14 @@ Puppet::Type.newtype(:glance_api_config) do
defaultto('<SERVICE DEFAULT>')
end
autorequire(:package) do
'glance-api'
if Facter['osfamily'].value == 'Debian'
autorequire(:package) do
'glance-api'
end
elsif Facter['osfamily'].value == 'RedHat'
autorequire(:package) do
'openstack-glance'
end
end
end

View File

@ -45,8 +45,14 @@ Puppet::Type.newtype(:glance_api_paste_ini) do
defaultto('<SERVICE DEFAULT>')
end
autorequire(:package) do
'glance-api'
if Facter['osfamily'].value == 'Debian'
autorequire(:package) do
'glance-api'
end
elsif Facter['osfamily'].value == 'RedHat'
autorequire(:package) do
'openstack-glance'
end
end
end

View File

@ -46,8 +46,14 @@ Puppet::Type.newtype(:glance_cache_config) do
defaultto('<SERVICE DEFAULT>')
end
autorequire(:package) do
'glance-api'
if Facter['osfamily'].value == 'Debian'
autorequire(:package) do
'glance-api'
end
elsif Facter['osfamily'].value == 'RedHat'
autorequire(:package) do
'openstack-glance'
end
end
end

View File

@ -46,8 +46,14 @@ Puppet::Type.newtype(:glance_registry_config) do
defaultto('<SERVICE DEFAULT>')
end
autorequire(:package) do
'glance-registry'
if Facter['osfamily'].value == 'Debian'
autorequire(:package) do
'glance-registry'
end
elsif Facter['osfamily'].value == 'RedHat'
autorequire(:package) do
'openstack-glance'
end
end
end

View File

@ -45,8 +45,14 @@ Puppet::Type.newtype(:glance_registry_paste_ini) do
defaultto('<SERVICE DEFAULT>')
end
autorequire(:package) do
'glance-registry'
if Facter['osfamily'].value == 'Debian'
autorequire(:package) do
'glance-registry'
end
elsif Facter['osfamily'].value == 'RedHat'
autorequire(:package) do
'openstack-glance'
end
end
end

View File

@ -23,9 +23,9 @@ class glance(
}
if ( $glance::params::api_package_name == $glance::params::registry_package_name ) {
package { $glance::params::api_package_name :
package { $::glance::params::api_package_name :
ensure => $package_ensure,
name => $::glance::params::package_name,
name => $::glance::params::api_package_name,
tag => ['openstack', 'glance-package'],
}
}

View File

@ -3,17 +3,39 @@ require 'puppet/type/glance_api_config'
describe 'Puppet::Type.type(:glance_api_config)' do
before :each do
Puppet::Type.rmtype(:glance_api_config)
Facter.fact(:osfamily).stubs(:value).returns(platform_params[:osfamily])
@glance_api_config = Puppet::Type.type(:glance_api_config).new(:name => 'DEFAULT/foo', :value => 'bar')
end
it 'should autorequire the package that install the file' do
catalog = Puppet::Resource::Catalog.new
package = Puppet::Type.type(:package).new(:name => 'glance-api')
catalog.add_resource package, @glance_api_config
dependency = @glance_api_config.autorequire
expect(dependency.size).to eq(1)
expect(dependency[0].target).to eq(@glance_api_config)
expect(dependency[0].source).to eq(package)
shared_examples_for 'glance_api_config' do
it 'should autorequire the package that install the file' do
catalog = Puppet::Resource::Catalog.new
package = Puppet::Type.type(:package).new(:name => platform_params[:package_name])
catalog.add_resource package, @glance_api_config
dependency = @glance_api_config.autorequire
expect(dependency.size).to eq(1)
expect(dependency[0].target).to eq(@glance_api_config)
expect(dependency[0].source).to eq(package)
end
end
context 'on Debian platforms' do
let :platform_params do
{ :package_name => 'glance-api',
:osfamily => 'Debian' }
end
it_behaves_like 'glance_api_config'
end
context 'on RedHat platforms' do
let :platform_params do
{ :package_name => 'openstack-glance',
:osfamily => 'RedHat'}
end
it_behaves_like 'glance_api_config'
end
end

View File

@ -3,17 +3,39 @@ require 'puppet/type/glance_cache_config'
describe 'Puppet::Type.type(:glance_cache_config)' do
before :each do
Puppet::Type.rmtype(:glance_cache_config)
Facter.fact(:osfamily).stubs(:value).returns(platform_params[:osfamily])
@glance_cache_config = Puppet::Type.type(:glance_cache_config).new(:name => 'DEFAULT/foo', :value => 'bar')
end
it 'should autorequire the package that install the file' do
catalog = Puppet::Resource::Catalog.new
package = Puppet::Type.type(:package).new(:name => 'glance-api')
catalog.add_resource package, @glance_cache_config
dependency = @glance_cache_config.autorequire
expect(dependency.size).to eq(1)
expect(dependency[0].target).to eq(@glance_cache_config)
expect(dependency[0].source).to eq(package)
shared_examples_for 'glance_cache_config' do
it 'should autorequire the package that install the file' do
catalog = Puppet::Resource::Catalog.new
package = Puppet::Type.type(:package).new(:name => platform_params[:package_name])
catalog.add_resource package, @glance_cache_config
dependency = @glance_cache_config.autorequire
expect(dependency.size).to eq(1)
expect(dependency[0].target).to eq(@glance_cache_config)
expect(dependency[0].source).to eq(package)
end
end
context 'on Debian platforms' do
let :platform_params do
{ :package_name => 'glance-api',
:osfamily => 'Debian' }
end
it_behaves_like 'glance_cache_config'
end
context 'on RedHat platforms' do
let :platform_params do
{ :package_name => 'openstack-glance',
:osfamily => 'RedHat'}
end
it_behaves_like 'glance_cache_config'
end
end

View File

@ -3,17 +3,39 @@ require 'puppet/type/glance_registry_config'
describe 'Puppet::Type.type(:glance_registry_config)' do
before :each do
Puppet::Type.rmtype(:glance_registry_config)
Facter.fact(:osfamily).stubs(:value).returns(platform_params[:osfamily])
@glance_registry_config = Puppet::Type.type(:glance_registry_config).new(:name => 'DEFAULT/foo', :value => 'bar')
end
it 'should autorequire the package that install the file' do
catalog = Puppet::Resource::Catalog.new
package = Puppet::Type.type(:package).new(:name => 'glance-registry')
catalog.add_resource package, @glance_registry_config
dependency = @glance_registry_config.autorequire
expect(dependency.size).to eq(1)
expect(dependency[0].target).to eq(@glance_registry_config)
expect(dependency[0].source).to eq(package)
shared_examples_for 'glance_registry_config' do
it 'should autorequire the package that install the file' do
catalog = Puppet::Resource::Catalog.new
package = Puppet::Type.type(:package).new(:name => platform_params[:package_name])
catalog.add_resource package, @glance_registry_config
dependency = @glance_registry_config.autorequire
expect(dependency.size).to eq(1)
expect(dependency[0].target).to eq(@glance_registry_config)
expect(dependency[0].source).to eq(package)
end
end
context 'on Debian platforms' do
let :platform_params do
{ :package_name => 'glance-registry',
:osfamily => 'Debian' }
end
it_behaves_like 'glance_registry_config'
end
context 'on RedHat platforms' do
let :platform_params do
{ :package_name => 'openstack-glance',
:osfamily => 'RedHat'}
end
it_behaves_like 'glance_registry_config'
end
end