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: I42bc4700302b4c3141345fe442168771c079f712
This commit is contained in:
parent
775b96af2f
commit
69bfb7cb81
|
@ -39,4 +39,9 @@ Puppet::Type.newtype(:cinder_api_paste_ini) do
|
|||
|
||||
defaultto false
|
||||
end
|
||||
|
||||
autorequire(:package) do
|
||||
'cinder'
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -39,4 +39,9 @@ Puppet::Type.newtype(:cinder_config) do
|
|||
|
||||
defaultto false
|
||||
end
|
||||
|
||||
autorequire(:package) do
|
||||
'cinder'
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -161,8 +161,6 @@ class cinder::api (
|
|||
|
||||
if $::cinder::params::api_package {
|
||||
Package['cinder-api'] -> Class['cinder::policy']
|
||||
Package['cinder-api'] -> Cinder_config<||>
|
||||
Package['cinder-api'] -> Cinder_api_paste_ini<||>
|
||||
Package['cinder-api'] -> Service['cinder-api']
|
||||
Package['cinder-api'] ~> Exec<| title == 'cinder-manage db_sync' |>
|
||||
package { 'cinder-api':
|
||||
|
|
|
@ -64,7 +64,6 @@ class cinder::backup (
|
|||
Exec<| title == 'cinder-manage db_sync' |> ~> Service['cinder-backup']
|
||||
|
||||
if $::cinder::params::backup_package {
|
||||
Package['cinder-backup'] -> Cinder_config<||>
|
||||
Package['cinder-backup'] -> Service['cinder-backup']
|
||||
Package['cinder-backup'] ~> Exec<| title == 'cinder-manage db_sync' |>
|
||||
package { 'cinder-backup':
|
||||
|
|
|
@ -296,9 +296,6 @@ class cinder (
|
|||
|
||||
include ::cinder::params
|
||||
|
||||
Package['cinder'] -> Cinder_config<||>
|
||||
Package['cinder'] -> Cinder_api_paste_ini<||>
|
||||
|
||||
if $mysql_module {
|
||||
warning('The mysql_module parameter is deprecated. The latest 2.x mysql module will be used.')
|
||||
}
|
||||
|
|
|
@ -45,8 +45,6 @@ class cinder::scheduler (
|
|||
}
|
||||
|
||||
if $::cinder::params::scheduler_package {
|
||||
Package['cinder-scheduler'] -> Cinder_config<||>
|
||||
Package['cinder-scheduler'] -> Cinder_api_paste_ini<||>
|
||||
Package['cinder-scheduler'] -> Service['cinder-scheduler']
|
||||
package { 'cinder-scheduler':
|
||||
ensure => $package_ensure,
|
||||
|
|
|
@ -27,8 +27,6 @@ class cinder::volume (
|
|||
Exec<| title == 'cinder-manage db_sync' |> ~> Service['cinder-volume']
|
||||
|
||||
if $::cinder::params::volume_package {
|
||||
Package['cinder-volume'] -> Cinder_config<||>
|
||||
Package['cinder-volume'] -> Cinder_api_paste_ini<||>
|
||||
Package['cinder'] -> Package['cinder-volume']
|
||||
Package['cinder-volume'] -> Service['cinder-volume']
|
||||
package { 'cinder-volume':
|
||||
|
|
|
@ -48,7 +48,6 @@ describe 'cinder::backup' do
|
|||
:ensure => 'present',
|
||||
:tag => ['openstack', 'cinder-package'],
|
||||
)
|
||||
is_expected.to contain_package('cinder-backup').with_before(/Cinder_config\[.+\]/)
|
||||
is_expected.to contain_package('cinder-backup').with_before(/Service\[cinder-backup\]/)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -16,7 +16,7 @@ describe 'cinder::scheduler' do
|
|||
it { is_expected.to contain_package('cinder-scheduler').with(
|
||||
:name => 'cinder-scheduler',
|
||||
:ensure => 'present',
|
||||
:before => ['Cinder_config[DEFAULT/scheduler_driver]','Service[cinder-scheduler]'],
|
||||
:before => ['Service[cinder-scheduler]'],
|
||||
:tag => ['openstack', 'cinder-package'],
|
||||
) }
|
||||
|
||||
|
|
|
@ -0,0 +1,42 @@
|
|||
$LOAD_PATH.push(
|
||||
File.join(
|
||||
File.dirname(__FILE__),
|
||||
'..',
|
||||
'..',
|
||||
'..',
|
||||
'fixtures',
|
||||
'modules',
|
||||
'inifile',
|
||||
'lib')
|
||||
)
|
||||
|
||||
require 'spec_helper'
|
||||
|
||||
provider_class = Puppet::Type.type(:cinder_config).provider(:ini_setting)
|
||||
|
||||
describe provider_class do
|
||||
|
||||
it 'should default to the default setting when no other one is specified' do
|
||||
resource = Puppet::Type::Cinder_config.new(
|
||||
{
|
||||
:name => 'DEFAULT/foo',
|
||||
:value => 'bar'
|
||||
}
|
||||
)
|
||||
provider = provider_class.new(resource)
|
||||
expect(provider.section).to eq('DEFAULT')
|
||||
expect(provider.setting).to eq('foo')
|
||||
end
|
||||
|
||||
it 'should allow setting to be set explicitly' do
|
||||
resource = Puppet::Type::Cinder_config.new(
|
||||
{
|
||||
:name => 'dude/foo',
|
||||
:value => 'bar'
|
||||
}
|
||||
)
|
||||
provider = provider_class.new(resource)
|
||||
expect(provider.section).to eq('dude')
|
||||
expect(provider.setting).to eq('foo')
|
||||
end
|
||||
end
|
|
@ -0,0 +1,19 @@
|
|||
require 'puppet'
|
||||
require 'puppet/type/cinder_config'
|
||||
|
||||
describe 'Puppet::Type.type(:cinder_config)' do
|
||||
before :each do
|
||||
@cinder_config = Puppet::Type.type(:cinder_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 => 'cinder')
|
||||
catalog.add_resource package, @cinder_config
|
||||
dependency = @cinder_config.autorequire
|
||||
expect(dependency.size).to eq(1)
|
||||
expect(dependency[0].target).to eq(@cinder_config)
|
||||
expect(dependency[0].source).to eq(package)
|
||||
end
|
||||
|
||||
end
|
Loading…
Reference in New Issue