diff --git a/lib/puppet/type/cinder_api_paste_ini.rb b/lib/puppet/type/cinder_api_paste_ini.rb index d895b4a3..c923389f 100644 --- a/lib/puppet/type/cinder_api_paste_ini.rb +++ b/lib/puppet/type/cinder_api_paste_ini.rb @@ -39,4 +39,9 @@ Puppet::Type.newtype(:cinder_api_paste_ini) do defaultto false end + + autorequire(:package) do + 'cinder' + end + end diff --git a/lib/puppet/type/cinder_config.rb b/lib/puppet/type/cinder_config.rb index 62d38256..6da9baf9 100644 --- a/lib/puppet/type/cinder_config.rb +++ b/lib/puppet/type/cinder_config.rb @@ -39,4 +39,9 @@ Puppet::Type.newtype(:cinder_config) do defaultto false end + + autorequire(:package) do + 'cinder' + end + end diff --git a/manifests/api.pp b/manifests/api.pp index 2ff12b25..61b027a7 100644 --- a/manifests/api.pp +++ b/manifests/api.pp @@ -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': diff --git a/manifests/backup.pp b/manifests/backup.pp index 12bd7bf8..50dd0b9e 100644 --- a/manifests/backup.pp +++ b/manifests/backup.pp @@ -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': diff --git a/manifests/init.pp b/manifests/init.pp index 72fb3cde..d6639728 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -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.') } diff --git a/manifests/scheduler.pp b/manifests/scheduler.pp index aed0d497..f72969d2 100644 --- a/manifests/scheduler.pp +++ b/manifests/scheduler.pp @@ -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, diff --git a/manifests/volume.pp b/manifests/volume.pp index 207c3fe8..cb6fd65e 100644 --- a/manifests/volume.pp +++ b/manifests/volume.pp @@ -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': diff --git a/spec/classes/cinder_backup_spec.rb b/spec/classes/cinder_backup_spec.rb index c175751a..7a12cc5f 100644 --- a/spec/classes/cinder_backup_spec.rb +++ b/spec/classes/cinder_backup_spec.rb @@ -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 diff --git a/spec/classes/cinder_scheduler_spec.rb b/spec/classes/cinder_scheduler_spec.rb index f0290ce4..d4505741 100644 --- a/spec/classes/cinder_scheduler_spec.rb +++ b/spec/classes/cinder_scheduler_spec.rb @@ -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'], ) } diff --git a/spec/unit/provider/cinder_config/ini_setting_spec.rb b/spec/unit/provider/cinder_config/ini_setting_spec.rb new file mode 100644 index 00000000..6aad3845 --- /dev/null +++ b/spec/unit/provider/cinder_config/ini_setting_spec.rb @@ -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 diff --git a/spec/unit/type/cinder_config_spec.rb b/spec/unit/type/cinder_config_spec.rb new file mode 100644 index 00000000..61589890 --- /dev/null +++ b/spec/unit/type/cinder_config_spec.rb @@ -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