diff --git a/spec/classes/cinder_api_spec.rb b/spec/classes/cinder_api_spec.rb index c7d52921..4c2f2c0f 100644 --- a/spec/classes/cinder_api_spec.rb +++ b/spec/classes/cinder_api_spec.rb @@ -2,291 +2,298 @@ require 'spec_helper' describe 'cinder::api' do - let :req_params do - {:keystone_password => 'foo'} - end - let :facts do - @default_facts.merge({ - :osfamily => 'Debian', - :processorcount => 8 - }) - end - - describe 'with only required params' do - let :params do - req_params + shared_examples_for 'cinder api' do + let :req_params do + {:keystone_password => 'foo'} end - it { is_expected.to contain_service('cinder-api').with( - 'hasstatus' => true, - 'ensure' => 'running', - 'tag' => 'cinder-service', - )} - - it 'should configure cinder api correctly' do - is_expected.to contain_cinder_config('DEFAULT/auth_strategy').with( - :value => 'keystone' - ) - is_expected.to contain_cinder_config('DEFAULT/osapi_volume_listen').with( - :value => '0.0.0.0' - ) - is_expected.to contain_cinder_config('DEFAULT/osapi_volume_workers').with( - :value => '8' - ) - is_expected.to contain_cinder_config('DEFAULT/nova_catalog_info').with( - :value => 'compute:Compute Service:publicURL' - ) - is_expected.to contain_cinder_config('DEFAULT/nova_catalog_admin_info').with( - :value => 'compute:Compute Service:adminURL' - ) - is_expected.to contain_cinder_config('DEFAULT/default_volume_type').with( - :value => '' - ) - is_expected.to contain_cinder_config('DEFAULT/os_region_name').with( - :value => '' - ) - is_expected.to contain_cinder_config('keystone_authtoken/auth_uri').with( - :value => 'http://localhost:5000/' - ) - is_expected.to contain_cinder_config('keystone_authtoken/identity_uri').with( - :value => 'http://localhost:35357/' - ) - is_expected.to contain_cinder_config('keystone_authtoken/admin_tenant_name').with( - :value => 'services' - ) - is_expected.to contain_cinder_config('keystone_authtoken/admin_user').with( - :value => 'cinder' - ) - is_expected.to contain_cinder_config('keystone_authtoken/admin_password').with( - :value => 'foo' - ) - - is_expected.to contain_cinder_config('DEFAULT/os_privileged_user_name').with_value('') - is_expected.to contain_cinder_config('DEFAULT/os_privileged_user_password').with_value('') - is_expected.to contain_cinder_config('DEFAULT/os_privileged_user_tenant').with_value('') - is_expected.to contain_cinder_config('DEFAULT/os_privileged_user_auth_url').with_value('') - is_expected.to contain_cinder_config('keymgr/encryption_auth_url').with_value('') - end - end - - describe 'with a custom nova_catalog params' do - let :params do - req_params.merge({ - 'nova_catalog_admin_info' => 'compute:nova:adminURL', - 'nova_catalog_info' => 'compute:nova:publicURL', - }) - end - it { is_expected.to contain_cinder_config('DEFAULT/nova_catalog_admin_info').with_value('compute:nova:adminURL') } - it { is_expected.to contain_cinder_config('DEFAULT/nova_catalog_info').with_value('compute:nova:publicURL') } - end - - describe 'with a custom region for nova' do - let :params do - req_params.merge({'os_region_name' => 'MyRegion'}) - end - it 'should configure the region for nova' do - is_expected.to contain_cinder_config('DEFAULT/os_region_name').with( - :value => 'MyRegion' - ) - end - end - - describe 'with an OpenStack privileged account' do - - context 'with all needed params' do + describe 'with only required params' do let :params do - req_params.merge({ - 'privileged_user' => 'true', - 'os_privileged_user_name' => 'admin', - 'os_privileged_user_password' => 'password', - 'os_privileged_user_tenant' => 'admin', - 'os_privileged_user_auth_url' => 'http://localhost:8080', - }) + req_params end - it { is_expected.to contain_cinder_config('DEFAULT/os_privileged_user_name').with_value('admin') } - it { is_expected.to contain_cinder_config('DEFAULT/os_privileged_user_password').with_value('password') } - it { is_expected.to contain_cinder_config('DEFAULT/os_privileged_user_tenant').with_value('admin') } - it { is_expected.to contain_cinder_config('DEFAULT/os_privileged_user_auth_url').with_value('http://localhost:8080') } + it { is_expected.to contain_service('cinder-api').with( + 'hasstatus' => true, + 'ensure' => 'running', + 'tag' => 'cinder-service', + )} + + it 'should configure cinder api correctly' do + is_expected.to contain_cinder_config('DEFAULT/auth_strategy').with( + :value => 'keystone' + ) + is_expected.to contain_cinder_config('DEFAULT/osapi_volume_listen').with( + :value => '0.0.0.0' + ) + is_expected.to contain_cinder_config('DEFAULT/osapi_volume_workers').with( + :value => '8' + ) + is_expected.to contain_cinder_config('DEFAULT/nova_catalog_info').with( + :value => 'compute:Compute Service:publicURL' + ) + is_expected.to contain_cinder_config('DEFAULT/nova_catalog_admin_info').with( + :value => 'compute:Compute Service:adminURL' + ) + is_expected.to contain_cinder_config('DEFAULT/default_volume_type').with( + :value => '' + ) + is_expected.to contain_cinder_config('DEFAULT/os_region_name').with( + :value => '' + ) + is_expected.to contain_cinder_config('keystone_authtoken/auth_uri').with( + :value => 'http://localhost:5000/' + ) + is_expected.to contain_cinder_config('keystone_authtoken/identity_uri').with( + :value => 'http://localhost:35357/' + ) + is_expected.to contain_cinder_config('keystone_authtoken/admin_tenant_name').with( + :value => 'services' + ) + is_expected.to contain_cinder_config('keystone_authtoken/admin_user').with( + :value => 'cinder' + ) + is_expected.to contain_cinder_config('keystone_authtoken/admin_password').with( + :value => 'foo' + ) + + is_expected.to contain_cinder_config('DEFAULT/os_privileged_user_name').with_value('') + is_expected.to contain_cinder_config('DEFAULT/os_privileged_user_password').with_value('') + is_expected.to contain_cinder_config('DEFAULT/os_privileged_user_tenant').with_value('') + is_expected.to contain_cinder_config('DEFAULT/os_privileged_user_auth_url').with_value('') + is_expected.to contain_cinder_config('keymgr/encryption_auth_url').with_value('') + end end - context 'without os_privileged_user_auth_url' do + describe 'with a custom nova_catalog params' do let :params do req_params.merge({ - 'privileged_user' => 'true', - 'os_privileged_user_name' => 'admin', - 'os_privileged_user_password' => 'password', - 'os_privileged_user_tenant' => 'admin', + 'nova_catalog_admin_info' => 'compute:nova:adminURL', + 'nova_catalog_info' => 'compute:nova:publicURL', }) end - - it { is_expected.to contain_cinder_config('DEFAULT/os_privileged_user_name').with_value('admin') } - it { is_expected.to contain_cinder_config('DEFAULT/os_privileged_user_password').with_value('password') } - it { is_expected.to contain_cinder_config('DEFAULT/os_privileged_user_tenant').with_value('admin') } - it { is_expected.to contain_cinder_config('DEFAULT/os_privileged_user_auth_url').with_value('') } + it { is_expected.to contain_cinder_config('DEFAULT/nova_catalog_admin_info').with_value('compute:nova:adminURL') } + it { is_expected.to contain_cinder_config('DEFAULT/nova_catalog_info').with_value('compute:nova:publicURL') } end - context 'without os_privileged_user' do + describe 'with a custom region for nova' do + let :params do + req_params.merge({'os_region_name' => 'MyRegion'}) + end + it 'should configure the region for nova' do + is_expected.to contain_cinder_config('DEFAULT/os_region_name').with( + :value => 'MyRegion' + ) + end + end + + describe 'with an OpenStack privileged account' do + + context 'with all needed params' do + let :params do + req_params.merge({ + 'privileged_user' => 'true', + 'os_privileged_user_name' => 'admin', + 'os_privileged_user_password' => 'password', + 'os_privileged_user_tenant' => 'admin', + 'os_privileged_user_auth_url' => 'http://localhost:8080', + }) + end + + it { is_expected.to contain_cinder_config('DEFAULT/os_privileged_user_name').with_value('admin') } + it { is_expected.to contain_cinder_config('DEFAULT/os_privileged_user_password').with_value('password') } + it { is_expected.to contain_cinder_config('DEFAULT/os_privileged_user_tenant').with_value('admin') } + it { is_expected.to contain_cinder_config('DEFAULT/os_privileged_user_auth_url').with_value('http://localhost:8080') } + end + + context 'without os_privileged_user_auth_url' do + let :params do + req_params.merge({ + 'privileged_user' => 'true', + 'os_privileged_user_name' => 'admin', + 'os_privileged_user_password' => 'password', + 'os_privileged_user_tenant' => 'admin', + }) + end + + it { is_expected.to contain_cinder_config('DEFAULT/os_privileged_user_name').with_value('admin') } + it { is_expected.to contain_cinder_config('DEFAULT/os_privileged_user_password').with_value('password') } + it { is_expected.to contain_cinder_config('DEFAULT/os_privileged_user_tenant').with_value('admin') } + it { is_expected.to contain_cinder_config('DEFAULT/os_privileged_user_auth_url').with_value('') } + end + + context 'without os_privileged_user' do + let :params do + req_params.merge({ + 'privileged_user' => 'true', + }) + end + + it_raises 'a Puppet::Error', /The os_privileged_user_name parameter is required when privileged_user is set to true/ + end + + context 'without os_privileged_user_password' do + let :params do + req_params.merge({ + 'privileged_user' => 'true', + 'os_privileged_user_name' => 'admin', + }) + end + + it_raises 'a Puppet::Error', /The os_privileged_user_password parameter is required when privileged_user is set to true/ + end + + context 'without os_privileged_user_tenant' do + let :params do + req_params.merge({ + 'privileged_user' => 'true', + 'os_privileged_user_name' => 'admin', + 'os_privileged_user_password' => 'password', + }) + end + + it_raises 'a Puppet::Error', /The os_privileged_user_tenant parameter is required when privileged_user is set to true/ + end + end + + describe 'with a default volume type' do + let :params do + req_params.merge({'default_volume_type' => 'foo'}) + end + it 'should configure the default volume type for cinder' do + is_expected.to contain_cinder_config('DEFAULT/default_volume_type').with( + :value => 'foo' + ) + end + end + + describe 'with only required params' do + let :params do + req_params.merge({'bind_host' => '192.168.1.3'}) + end + it 'should configure cinder api correctly' do + is_expected.to contain_cinder_config('DEFAULT/osapi_volume_listen').with( + :value => '192.168.1.3' + ) + end + end + + describe 'with sync_db set to false' do + let :params do + { + :keystone_password => 'dummy', + :enabled => 'true', + :sync_db => false, + } + end + it { is_expected.not_to contain_class('cinder::db::sync') } + end + + describe 'with enabled false' do + let :params do + req_params.merge({'enabled' => false}) + end + it 'should stop the service' do + is_expected.to contain_service('cinder-api').with_ensure('stopped') + end + it 'includes cinder::db::sync' do + is_expected.to contain_class('cinder::db::sync') + end + end + + describe 'with manage_service false' do + let :params do + req_params.merge({'manage_service' => false}) + end + it 'should not change the state of the service' do + is_expected.to contain_service('cinder-api').without_ensure + end + it 'includes cinder::db::sync' do + is_expected.to contain_class('cinder::db::sync') + end + end + + describe 'with ratelimits' do + let :params do + req_params.merge({ :ratelimits => '(GET, "*", .*, 100, MINUTE);(POST, "*", .*, 200, MINUTE)' }) + end + + it { is_expected.to contain_cinder_api_paste_ini('filter:ratelimit/limits').with( + :value => '(GET, "*", .*, 100, MINUTE);(POST, "*", .*, 200, MINUTE)' + )} + end + + describe 'with encryption_auth_url' do + let :params do + req_params.merge({ :keymgr_encryption_auth_url => 'http://localhost:5000/v3' }) + end + + it { is_expected.to contain_cinder_config('keymgr/encryption_auth_url').with( + :value => 'http://localhost:5000/v3' + )} + end + + describe 'while validating the service with default command' do let :params do req_params.merge({ - 'privileged_user' => 'true', + :validate => true, }) end + it { is_expected.to contain_exec('execute cinder-api validation').with( + :path => '/usr/bin:/bin:/usr/sbin:/sbin', + :provider => 'shell', + :tries => '10', + :try_sleep => '2', + :command => 'cinder --os-auth-url http://localhost:5000/ --os-tenant-name services --os-username cinder --os-password foo list', + )} - it_raises 'a Puppet::Error', /The os_privileged_user_name parameter is required when privileged_user is set to true/ + it { is_expected.to contain_anchor('create cinder-api anchor').with( + :require => 'Exec[execute cinder-api validation]', + )} end - context 'without os_privileged_user_password' do + describe 'while validating the service with custom command' do let :params do req_params.merge({ - 'privileged_user' => 'true', - 'os_privileged_user_name' => 'admin', + :validate => true, + :validation_options => { 'cinder-api' => { 'command' => 'my-script' } } }) end + it { is_expected.to contain_exec('execute cinder-api validation').with( + :path => '/usr/bin:/bin:/usr/sbin:/sbin', + :provider => 'shell', + :tries => '10', + :try_sleep => '2', + :command => 'my-script', + )} - it_raises 'a Puppet::Error', /The os_privileged_user_password parameter is required when privileged_user is set to true/ + it { is_expected.to contain_anchor('create cinder-api anchor').with( + :require => 'Exec[execute cinder-api validation]', + )} end - context 'without os_privileged_user_tenant' do + describe "with custom keystone identity_uri and auth_uri" do let :params do req_params.merge({ - 'privileged_user' => 'true', - 'os_privileged_user_name' => 'admin', - 'os_privileged_user_password' => 'password', + :identity_uri => 'https://localhost:35357/', + :auth_uri => 'https://localhost:5000/', }) end - - it_raises 'a Puppet::Error', /The os_privileged_user_tenant parameter is required when privileged_user is set to true/ + it 'configures identity_uri and auth_uri but deprecates old auth settings' do + is_expected.to contain_cinder_config('keystone_authtoken/identity_uri').with_value("https://localhost:35357/") + is_expected.to contain_cinder_config('keystone_authtoken/auth_uri').with_value("https://localhost:5000/") + end end end - describe 'with a default volume type' do - let :params do - req_params.merge({'default_volume_type' => 'foo'}) - end - it 'should configure the default volume type for cinder' do - is_expected.to contain_cinder_config('DEFAULT/default_volume_type').with( - :value => 'foo' - ) + on_supported_os({ + :supported_os => OSDefaults.get_supported_os + }).each do |os,facts| + context "on #{os}" do + let (:facts) do + facts.merge(OSDefaults.get_facts({:processorcount => 8})) + end + + it_configures 'cinder api' end end - - describe 'with only required params' do - let :params do - req_params.merge({'bind_host' => '192.168.1.3'}) - end - it 'should configure cinder api correctly' do - is_expected.to contain_cinder_config('DEFAULT/osapi_volume_listen').with( - :value => '192.168.1.3' - ) - end - end - - describe 'with sync_db set to false' do - let :params do - { - :keystone_password => 'dummy', - :enabled => 'true', - :sync_db => false, - } - end - it { is_expected.not_to contain_class('cinder::db::sync') } - end - - describe 'with enabled false' do - let :params do - req_params.merge({'enabled' => false}) - end - it 'should stop the service' do - is_expected.to contain_service('cinder-api').with_ensure('stopped') - end - it 'includes cinder::db::sync' do - is_expected.to contain_class('cinder::db::sync') - end - end - - describe 'with manage_service false' do - let :params do - req_params.merge({'manage_service' => false}) - end - it 'should not change the state of the service' do - is_expected.to contain_service('cinder-api').without_ensure - end - it 'includes cinder::db::sync' do - is_expected.to contain_class('cinder::db::sync') - end - end - - describe 'with ratelimits' do - let :params do - req_params.merge({ :ratelimits => '(GET, "*", .*, 100, MINUTE);(POST, "*", .*, 200, MINUTE)' }) - end - - it { is_expected.to contain_cinder_api_paste_ini('filter:ratelimit/limits').with( - :value => '(GET, "*", .*, 100, MINUTE);(POST, "*", .*, 200, MINUTE)' - )} - end - - describe 'with encryption_auth_url' do - let :params do - req_params.merge({ :keymgr_encryption_auth_url => 'http://localhost:5000/v3' }) - end - - it { is_expected.to contain_cinder_config('keymgr/encryption_auth_url').with( - :value => 'http://localhost:5000/v3' - )} - end - - describe 'while validating the service with default command' do - let :params do - req_params.merge({ - :validate => true, - }) - end - it { is_expected.to contain_exec('execute cinder-api validation').with( - :path => '/usr/bin:/bin:/usr/sbin:/sbin', - :provider => 'shell', - :tries => '10', - :try_sleep => '2', - :command => 'cinder --os-auth-url http://localhost:5000/ --os-tenant-name services --os-username cinder --os-password foo list', - )} - - it { is_expected.to contain_anchor('create cinder-api anchor').with( - :require => 'Exec[execute cinder-api validation]', - )} - end - - describe 'while validating the service with custom command' do - let :params do - req_params.merge({ - :validate => true, - :validation_options => { 'cinder-api' => { 'command' => 'my-script' } } - }) - end - it { is_expected.to contain_exec('execute cinder-api validation').with( - :path => '/usr/bin:/bin:/usr/sbin:/sbin', - :provider => 'shell', - :tries => '10', - :try_sleep => '2', - :command => 'my-script', - )} - - it { is_expected.to contain_anchor('create cinder-api anchor').with( - :require => 'Exec[execute cinder-api validation]', - )} - end - - describe "with custom keystone identity_uri and auth_uri" do - let :params do - req_params.merge({ - :identity_uri => 'https://localhost:35357/', - :auth_uri => 'https://localhost:5000/', - }) - end - it 'configures identity_uri and auth_uri but deprecates old auth settings' do - is_expected.to contain_cinder_config('keystone_authtoken/identity_uri').with_value("https://localhost:35357/") - is_expected.to contain_cinder_config('keystone_authtoken/auth_uri').with_value("https://localhost:5000/") - end - end - end diff --git a/spec/classes/cinder_backends_spec.rb b/spec/classes/cinder_backends_spec.rb index a029ee1e..50515b39 100644 --- a/spec/classes/cinder_backends_spec.rb +++ b/spec/classes/cinder_backends_spec.rb @@ -62,20 +62,16 @@ describe 'cinder::backends' do end - context 'on Debian platforms' do - let :facts do - { :osfamily => 'Debian' } + on_supported_os({ + :supported_os => OSDefaults.get_supported_os + }).each do |os,facts| + context "on #{os}" do + let (:facts) do + facts.merge!(OSDefaults.get_facts) + end + + it_configures 'cinder backends' end - - it_configures 'cinder backends' - end - - context 'on RedHat platforms' do - let :facts do - { :osfamily => 'RedHat' } - end - - it_configures 'cinder backends' end end diff --git a/spec/classes/cinder_backup_ceph_spec.rb b/spec/classes/cinder_backup_ceph_spec.rb index 90bd4f60..52b7df40 100644 --- a/spec/classes/cinder_backup_ceph_spec.rb +++ b/spec/classes/cinder_backup_ceph_spec.rb @@ -70,20 +70,15 @@ describe 'cinder::backup::ceph' do end end - context 'on Debian platforms' do - let :facts do - { :osfamily => 'Debian' } + on_supported_os({ + :supported_os => OSDefaults.get_supported_os + }).each do |os,facts| + context "on #{os}" do + let (:facts) do + facts.merge(OSDefaults.get_facts({})) + end + + it_configures 'cinder backup with ceph' end - - it_configures 'cinder backup with ceph' end - - context 'on RedHat platforms' do - let :facts do - { :osfamily => 'RedHat' } - end - - it_configures 'cinder backup with ceph' - end - end diff --git a/spec/classes/cinder_backup_nfs_spec.rb b/spec/classes/cinder_backup_nfs_spec.rb index f7e1a1c7..94dbfdcb 100644 --- a/spec/classes/cinder_backup_nfs_spec.rb +++ b/spec/classes/cinder_backup_nfs_spec.rb @@ -67,19 +67,15 @@ describe 'cinder::backup::nfs' do end end - context 'on Debian platforms' do - let :facts do - @default_facts.merge({:osfamily => 'Debian'}) + on_supported_os({ + :supported_os => OSDefaults.get_supported_os + }).each do |os,facts| + context "on #{os}" do + let (:facts) do + facts.merge(OSDefaults.get_facts({:processorcount => 8})) + end + + it_configures 'cinder backup with nfs' end - - it_configures 'cinder backup with nfs' - end - - context 'on RedHat platforms' do - let :facts do - @default_facts.merge({:osfamily => 'RedHat'}) - end - - it_configures 'cinder backup with nfs' end end diff --git a/spec/classes/cinder_backup_spec.rb b/spec/classes/cinder_backup_spec.rb index 585db9d2..7d079030 100644 --- a/spec/classes/cinder_backup_spec.rb +++ b/spec/classes/cinder_backup_spec.rb @@ -76,29 +76,24 @@ describe 'cinder::backup' do end end - context 'on Debian platforms' do - let :facts do - @default_facts.merge!({ :osfamily => 'Debian' }) - end + on_supported_os({ + :supported_os => OSDefaults.get_supported_os + }).each do |os,facts| + context "on #{os}" do + let (:facts) do + facts.merge(OSDefaults.get_facts({:processorcount => 8})) + end - let :platform_params do - { :backup_package => 'cinder-backup', - :backup_service => 'cinder-backup' } - end + let :platform_params do + if facts[:osfamily] == 'Debian' + { :backup_package => 'cinder-backup', + :backup_service => 'cinder-backup' } + else + { :backup_service => 'opentack-cinder-backup' } + end + end - it_configures 'cinder backup' + it_configures 'cinder backup' + end end - - context 'on RedHat platforms' do - let :facts do - @default_facts.merge!({ :osfamily => 'RedHat' }) - end - - let :platform_params do - { :backup_service => 'opentack-cinder-backup' } - end - - it_configures 'cinder backup' - end - end diff --git a/spec/classes/cinder_backup_swift_spec.rb b/spec/classes/cinder_backup_swift_spec.rb index 36b3b95a..80d03d7d 100644 --- a/spec/classes/cinder_backup_swift_spec.rb +++ b/spec/classes/cinder_backup_swift_spec.rb @@ -74,20 +74,16 @@ describe 'cinder::backup::swift' do end end - context 'on Debian platforms' do - let :facts do - @default_facts.merge({ :osfamily => 'Debian' }) + on_supported_os({ + :supported_os => OSDefaults.get_supported_os + }).each do |os,facts| + context "on #{os}" do + let (:facts) do + facts.merge(OSDefaults.get_facts({:processorcount => 8})) + end + + it_configures 'cinder backup with swift' end - - it_configures 'cinder backup with swift' - end - - context 'on RedHat platforms' do - let :facts do - @default_facts.merge({ :osfamily => 'RedHat' }) - end - - it_configures 'cinder backup with swift' end end diff --git a/spec/classes/cinder_client_spec.rb b/spec/classes/cinder_client_spec.rb index 9818f5d3..283a4e6a 100644 --- a/spec/classes/cinder_client_spec.rb +++ b/spec/classes/cinder_client_spec.rb @@ -27,19 +27,15 @@ describe 'cinder::client' do end - context 'on Debian platform' do - let :facts do - { :osfamily => 'Debian' } + on_supported_os({ + :supported_os => OSDefaults.get_supported_os + }).each do |os,facts| + context "on #{os}" do + let (:facts) do + facts.merge(OSDefaults.get_facts({:processorcount => 8})) + end + + it_configures 'cinder client' end - - it_configures 'cinder client' - end - - context 'on RedHat platform' do - let :facts do - { :osfamily => 'RedHat' } - end - - it_configures 'cinder client' end end diff --git a/spec/classes/cinder_db_spec.rb b/spec/classes/cinder_db_spec.rb index bbf53ec0..daaad619 100644 --- a/spec/classes/cinder_db_spec.rb +++ b/spec/classes/cinder_db_spec.rb @@ -69,11 +69,11 @@ describe 'cinder::db' do context 'on Debian platforms' do let :facts do - @default_facts.merge({ - :osfamily => 'Debian', - :operatingsystem => 'Debian', - :operatingsystemrelease => 'jessie', - }) + OSDefaults.get_facts({ + :osfamily => 'Debian', + :operatingsystem => 'Debian', + :operatingsystemrelease => 'jessie' + }) end it_configures 'cinder::db' @@ -95,10 +95,10 @@ describe 'cinder::db' do context 'on Redhat platforms' do let :facts do - @default_facts.merge({ + OSDefaults.get_facts({ :osfamily => 'RedHat', :operatingsystemrelease => '7.1', - }) + }) end it_configures 'cinder::db' diff --git a/spec/classes/cinder_db_sync_spec.rb b/spec/classes/cinder_db_sync_spec.rb index 238b0980..6823a4ca 100644 --- a/spec/classes/cinder_db_sync_spec.rb +++ b/spec/classes/cinder_db_sync_spec.rb @@ -34,30 +34,19 @@ describe 'cinder::db::sync' do end + on_supported_os({ + :supported_os => OSDefaults.get_supported_os + }).each do |os,facts| + context "on #{os}" do + let (:facts) do + facts.merge(OSDefaults.get_facts({ + :processorcount => 8, + :concat_basedir => '/var/lib/puppet/concat' + })) + end - context 'on a RedHat osfamily' do - let :facts do - { - :osfamily => 'RedHat', - :operatingsystemrelease => '7.0', - :concat_basedir => '/var/lib/puppet/concat' - } + it_configures 'cinder-dbsync' end - - it_configures 'cinder-dbsync' - end - - context 'on a Debian osfamily' do - let :facts do - { - :operatingsystemrelease => '7.8', - :operatingsystem => 'Debian', - :osfamily => 'Debian', - :concat_basedir => '/var/lib/puppet/concat' - } - end - - it_configures 'cinder-dbsync' end end diff --git a/spec/classes/cinder_glance_spec.rb b/spec/classes/cinder_glance_spec.rb index d3203133..8b709f4f 100644 --- a/spec/classes/cinder_glance_spec.rb +++ b/spec/classes/cinder_glance_spec.rb @@ -66,20 +66,16 @@ describe 'cinder::glance' do end end - context 'on Debian platforms' do - let :facts do - @default_facts.merge({ :osfamily => 'Debian' }) + on_supported_os({ + :supported_os => OSDefaults.get_supported_os + }).each do |os,facts| + context "on #{os}" do + let (:facts) do + facts.merge(OSDefaults.get_facts({:processorcount => 8})) + end + + it_configures 'cinder with glance' end - - it_configures 'cinder with glance' - end - - context 'on RedHat platforms' do - let :facts do - @default_facts.merge({ :osfamily => 'RedHat' }) - end - - it_configures 'cinder with glance' end end diff --git a/spec/classes/cinder_logging_spec.rb b/spec/classes/cinder_logging_spec.rb index 6b939242..f7a6f846 100644 --- a/spec/classes/cinder_logging_spec.rb +++ b/spec/classes/cinder_logging_spec.rb @@ -109,20 +109,16 @@ describe 'cinder::logging' do end end - context 'on Debian platforms' do - let :facts do - @default_facts.merge({ :osfamily => 'Debian' }) + on_supported_os({ + :supported_os => OSDefaults.get_supported_os + }).each do |os,facts| + context "on #{os}" do + let (:facts) do + facts.merge(OSDefaults.get_facts({:processorcount => 8})) + end + + it_configures 'cinder-logging' end - - it_configures 'cinder-logging' - end - - context 'on RedHat platforms' do - let :facts do - @default_facts.merge({ :osfamily => 'RedHat' }) - end - - it_configures 'cinder-logging' end end diff --git a/spec/classes/cinder_policy_spec.rb b/spec/classes/cinder_policy_spec.rb index 7e500021..24229e76 100644 --- a/spec/classes/cinder_policy_spec.rb +++ b/spec/classes/cinder_policy_spec.rb @@ -23,19 +23,16 @@ describe 'cinder::policy' do end end - context 'on Debian platforms' do - let :facts do - { :osfamily => 'Debian' } - end + on_supported_os({ + :supported_os => OSDefaults.get_supported_os + }).each do |os,facts| + context "on #{os}" do + let (:facts) do + facts.merge(OSDefaults.get_facts({:processorcount => 8})) + end - it_configures 'cinder policies' + it_configures 'cinder policies' + end end - context 'on RedHat platforms' do - let :facts do - { :osfamily => 'RedHat' } - end - - it_configures 'cinder policies' - end end diff --git a/spec/classes/cinder_quota_spec.rb b/spec/classes/cinder_quota_spec.rb index ea9971d4..d022ea1a 100644 --- a/spec/classes/cinder_quota_spec.rb +++ b/spec/classes/cinder_quota_spec.rb @@ -41,20 +41,16 @@ describe 'cinder::quota' do end end - context 'on Debian platforms' do - let :facts do - @default_facts.merge({ :osfamily => 'Debian' }) + on_supported_os({ + :supported_os => OSDefaults.get_supported_os + }).each do |os,facts| + context "on #{os}" do + let (:facts) do + facts.merge(OSDefaults.get_facts({:processorcount => 8})) + end + + it_configures 'cinder quota' end - - it_configures 'cinder quota' - end - - context 'on RedHat platforms' do - let :facts do - @default_facts.merge({ :osfamily => 'RedHat' }) - end - - it_configures 'cinder quota' end end diff --git a/spec/classes/cinder_scheduler_filter_spec.rb b/spec/classes/cinder_scheduler_filter_spec.rb index 9dd5644b..68e2649a 100644 --- a/spec/classes/cinder_scheduler_filter_spec.rb +++ b/spec/classes/cinder_scheduler_filter_spec.rb @@ -46,20 +46,16 @@ describe 'cinder::scheduler::filter' do end - context 'on Debian platforms' do - let :facts do - @default_facts.merge({ :osfamily => 'Debian' }) + on_supported_os({ + :supported_os => OSDefaults.get_supported_os + }).each do |os,facts| + context "on #{os}" do + let (:facts) do + facts.merge(OSDefaults.get_facts({:processorcount => 8})) + end + + it_configures 'cinder scheduler filter' end - - it_configures 'cinder scheduler filter' - end - - context 'on RedHat platforms' do - let :facts do - @default_facts.merge({ :osfamily => 'RedHat' }) - end - - it_configures 'cinder scheduler filter' end end diff --git a/spec/classes/cinder_scheduler_spec.rb b/spec/classes/cinder_scheduler_spec.rb index 717d1ace..34dbfff3 100644 --- a/spec/classes/cinder_scheduler_spec.rb +++ b/spec/classes/cinder_scheduler_spec.rb @@ -5,7 +5,7 @@ describe 'cinder::scheduler' do describe 'on debian platforms' do let :facts do - @default_facts.merge({ :osfamily => 'Debian' }) + OSDefaults.get_facts({ :osfamily => 'Debian' }) end describe 'with default parameters' do @@ -57,7 +57,7 @@ describe 'cinder::scheduler' do describe 'on rhel platforms' do let :facts do - { :osfamily => 'RedHat' } + OSDefaults.get_facts({ :osfamily => 'RedHat' }) end describe 'with default parameters' do diff --git a/spec/classes/cinder_spec.rb b/spec/classes/cinder_spec.rb index 154f6d9d..d83a7f22 100644 --- a/spec/classes/cinder_spec.rb +++ b/spec/classes/cinder_spec.rb @@ -9,7 +9,7 @@ describe 'cinder' do end let :facts do - @default_facts.merge({ + OSDefaults.get_facts({ :osfamily => 'Debian', :operatingsystem => 'Debian', :operatingsystemrelease => 'jessie', diff --git a/spec/classes/cinder_volume_dellsc_iscsi_spec.rb b/spec/classes/cinder_volume_dellsc_iscsi_spec.rb index 93f4f1ba..ffa61723 100644 --- a/spec/classes/cinder_volume_dellsc_iscsi_spec.rb +++ b/spec/classes/cinder_volume_dellsc_iscsi_spec.rb @@ -23,7 +23,7 @@ describe 'cinder::volume::dellsc_iscsi' do end let :facts do - @default_facts.merge({}) + OSDefaults.get_facts({}) end shared_examples_for 'dellsc_iscsi volume driver' do diff --git a/spec/classes/cinder_volume_eqlx_spec.rb b/spec/classes/cinder_volume_eqlx_spec.rb index d1d101c5..ac9b46fd 100644 --- a/spec/classes/cinder_volume_eqlx_spec.rb +++ b/spec/classes/cinder_volume_eqlx_spec.rb @@ -18,7 +18,7 @@ describe 'cinder::volume::eqlx' do end let :facts do - @default_facts.merge({}) + OSDefaults.get_facts({}) end describe 'eqlx volume driver' do diff --git a/spec/classes/cinder_volume_glusterfs_spec.rb b/spec/classes/cinder_volume_glusterfs_spec.rb index 32516a06..17625656 100644 --- a/spec/classes/cinder_volume_glusterfs_spec.rb +++ b/spec/classes/cinder_volume_glusterfs_spec.rb @@ -40,20 +40,16 @@ describe 'cinder::volume::glusterfs' do end end - context 'on Debian platforms' do - let :facts do - @default_facts.merge({ :osfamily => 'Debian' }) + on_supported_os({ + :supported_os => OSDefaults.get_supported_os + }).each do |os,facts| + context "on #{os}" do + let (:facts) do + facts.merge(OSDefaults.get_facts({:processorcount => 8})) + end + + it_configures 'glusterfs volume driver' end - - it_configures 'glusterfs volume driver' - end - - context 'on RedHat platforms' do - let :facts do - @default_facts.merge({ :osfamily => 'RedHat' }) - end - - it_configures 'glusterfs volume driver' end end diff --git a/spec/classes/cinder_volume_gpfs_spec.rb b/spec/classes/cinder_volume_gpfs_spec.rb index 857c58d1..3d6c0845 100644 --- a/spec/classes/cinder_volume_gpfs_spec.rb +++ b/spec/classes/cinder_volume_gpfs_spec.rb @@ -9,7 +9,7 @@ describe 'cinder::volume::gpfs' do end let :facts do - @default_facts.merge({}) + OSDefaults.get_facts({}) end context 'gpfs volume driver' do diff --git a/spec/classes/cinder_volume_iscsi_spec.rb b/spec/classes/cinder_volume_iscsi_spec.rb index c8c310df..8733254e 100644 --- a/spec/classes/cinder_volume_iscsi_spec.rb +++ b/spec/classes/cinder_volume_iscsi_spec.rb @@ -7,7 +7,7 @@ describe 'cinder::volume::iscsi' do end let :facts do - @default_facts.merge({:osfamily => 'Debian'}) + OSDefaults.get_facts({:osfamily => 'Debian'}) end describe 'with default params' do diff --git a/spec/classes/cinder_volume_netapp_spec.rb b/spec/classes/cinder_volume_netapp_spec.rb index 674a3010..83bd519f 100644 --- a/spec/classes/cinder_volume_netapp_spec.rb +++ b/spec/classes/cinder_volume_netapp_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' describe 'cinder::volume::netapp' do let :facts do - @default_facts.merge({}) + OSDefaults.get_facts({}) end let :params do diff --git a/spec/classes/cinder_volume_nfs_spec.rb b/spec/classes/cinder_volume_nfs_spec.rb index ec8319c2..eb14c19c 100644 --- a/spec/classes/cinder_volume_nfs_spec.rb +++ b/spec/classes/cinder_volume_nfs_spec.rb @@ -16,7 +16,7 @@ describe 'cinder::volume::nfs' do end let :facts do - @default_facts.merge({}) + OSDefaults.get_facts({}) end describe 'nfs volume driver' do diff --git a/spec/classes/cinder_volume_pure_spec.rb b/spec/classes/cinder_volume_pure_spec.rb index 208800ec..09209fdb 100644 --- a/spec/classes/cinder_volume_pure_spec.rb +++ b/spec/classes/cinder_volume_pure_spec.rb @@ -59,4 +59,4 @@ describe 'cinder::volume::pure' do end end -end \ No newline at end of file +end diff --git a/spec/classes/cinder_volume_quobyte_spec.rb b/spec/classes/cinder_volume_quobyte_spec.rb index 341fa64a..d9d8c011 100644 --- a/spec/classes/cinder_volume_quobyte_spec.rb +++ b/spec/classes/cinder_volume_quobyte_spec.rb @@ -5,7 +5,7 @@ describe 'cinder::volume::quobyte' do shared_examples_for 'quobyte volume driver' do let :params do { - :quobyte_volume_url => 'quobyte://quobyte.cluster.example.com/volume-name', + :quobyte_volume_url => 'quobyte://quobyte.cluster.example.com/volume-name', :quobyte_qcow2_volumes => false, :quobyte_sparsed_volumes => true, } @@ -24,20 +24,16 @@ describe 'cinder::volume::quobyte' do end - context 'on Debian platforms' do - let :facts do - { :osfamily => 'Debian' } + on_supported_os({ + :supported_os => OSDefaults.get_supported_os + }).each do |os,facts| + context "on #{os}" do + let (:facts) do + facts.merge(OSDefaults.get_facts({:processorcount => 8})) + end + + it_configures 'quobyte volume driver' end - - it_configures 'quobyte volume driver' - end - - context 'on RedHat platforms' do - let :facts do - { :osfamily => 'RedHat' } - end - - it_configures 'quobyte volume driver' end end diff --git a/spec/classes/cinder_volume_rbd_spec.rb b/spec/classes/cinder_volume_rbd_spec.rb index 618f48e0..3899be64 100644 --- a/spec/classes/cinder_volume_rbd_spec.rb +++ b/spec/classes/cinder_volume_rbd_spec.rb @@ -25,7 +25,7 @@ describe 'cinder::volume::rbd' do end let :facts do - @default_facts.merge({:osfamily => 'Debian'}) + OSDefaults.get_facts({:osfamily => 'Debian'}) end describe 'rbd volume driver' do diff --git a/spec/classes/cinder_volume_spec.rb b/spec/classes/cinder_volume_spec.rb index 506c2585..e84c2b26 100644 --- a/spec/classes/cinder_volume_spec.rb +++ b/spec/classes/cinder_volume_spec.rb @@ -7,7 +7,7 @@ describe 'cinder::volume' do end let :facts do - @default_facts.merge({:osfamily => 'Debian'}) + OSDefaults.get_facts({:osfamily => 'Debian'}) end it { is_expected.to contain_package('cinder-volume').with_ensure('present') } diff --git a/spec/classes/cinder_volume_vmdk_spec.rb b/spec/classes/cinder_volume_vmdk_spec.rb index 2bee2809..856521e3 100644 --- a/spec/classes/cinder_volume_vmdk_spec.rb +++ b/spec/classes/cinder_volume_vmdk_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' describe 'cinder::volume::vmdk' do let :facts do - @default_facts.merge({:osfamily => 'Debian'}) + OSDefaults.get_facts({:osfamily => 'Debian'}) end let :params do diff --git a/spec/defines/cinder_backend_dellsc_iscsi_spec.rb b/spec/defines/cinder_backend_dellsc_iscsi_spec.rb index 8572e374..1ab3f4dd 100644 --- a/spec/defines/cinder_backend_dellsc_iscsi_spec.rb +++ b/spec/defines/cinder_backend_dellsc_iscsi_spec.rb @@ -27,7 +27,7 @@ describe 'cinder::backend::dellsc_iscsi' do end let :facts do - @default_facts.merge({}) + OSDefaults.get_facts({}) end shared_examples_for 'dellsc_iscsi volume driver' do diff --git a/spec/defines/cinder_backend_glusterfs_spec.rb b/spec/defines/cinder_backend_glusterfs_spec.rb index c2db15ff..2475cdbb 100644 --- a/spec/defines/cinder_backend_glusterfs_spec.rb +++ b/spec/defines/cinder_backend_glusterfs_spec.rb @@ -6,7 +6,7 @@ describe 'cinder::backend::glusterfs' do let(:title) {'mygluster'} let :facts do - @default_facts.merge({}) + OSDefaults.get_facts({}) end let :params do @@ -52,20 +52,15 @@ describe 'cinder::backend::glusterfs' do end end - context 'on Debian platforms' do - let :facts do - { :osfamily => 'Debian' } + on_supported_os({ + :supported_os => OSDefaults.get_supported_os + }).each do |os,facts| + context "on #{os}" do + let (:facts) do + facts.merge(OSDefaults.get_facts({:processorcount => 8})) + end + + it_configures 'glusterfs volume driver' end - - it_configures 'glusterfs volume driver' end - - context 'on RedHat platforms' do - let :facts do - { :osfamily => 'RedHat' } - end - - it_configures 'glusterfs volume driver' - end - end diff --git a/spec/defines/cinder_backend_gpfs_spec.rb b/spec/defines/cinder_backend_gpfs_spec.rb index ca73e0fd..8810aa73 100644 --- a/spec/defines/cinder_backend_gpfs_spec.rb +++ b/spec/defines/cinder_backend_gpfs_spec.rb @@ -29,7 +29,7 @@ describe 'cinder::backend::gpfs' do end let :facts do - @default_facts.merge({}) + OSDefaults.get_facts({}) end shared_examples_for 'gpfs volume driver' do diff --git a/spec/defines/cinder_backend_iscsi_spec.rb b/spec/defines/cinder_backend_iscsi_spec.rb index 3195ba25..0451a77d 100644 --- a/spec/defines/cinder_backend_iscsi_spec.rb +++ b/spec/defines/cinder_backend_iscsi_spec.rb @@ -11,7 +11,7 @@ describe 'cinder::backend::iscsi' do end let :facts do - @default_facts.merge({:osfamily => 'Debian'}) + OSDefaults.get_facts({:osfamily => 'Debian'}) end let :params do diff --git a/spec/defines/cinder_backend_netapp_spec.rb b/spec/defines/cinder_backend_netapp_spec.rb index 9a33b8ec..5a818f6b 100644 --- a/spec/defines/cinder_backend_netapp_spec.rb +++ b/spec/defines/cinder_backend_netapp_spec.rb @@ -5,7 +5,7 @@ describe 'cinder::backend::netapp' do let(:title) {'netapp'} let :facts do - @default_facts.merge({}) + OSDefaults.get_facts({}) end let :params do diff --git a/spec/defines/cinder_backend_pure_spec.rb b/spec/defines/cinder_backend_pure_spec.rb index c04670e8..3a8ae9a2 100644 --- a/spec/defines/cinder_backend_pure_spec.rb +++ b/spec/defines/cinder_backend_pure_spec.rb @@ -67,4 +67,4 @@ describe 'cinder::backend::pure' do end end -end \ No newline at end of file +end diff --git a/spec/defines/cinder_backend_quobyte_spec.rb b/spec/defines/cinder_backend_quobyte_spec.rb index 5318f03e..7473cf95 100644 --- a/spec/defines/cinder_backend_quobyte_spec.rb +++ b/spec/defines/cinder_backend_quobyte_spec.rb @@ -26,20 +26,16 @@ describe 'cinder::backend::quobyte' do end - context 'on Debian platforms' do - let :facts do - { :osfamily => 'Debian' } + on_supported_os({ + :supported_os => OSDefaults.get_supported_os + }).each do |os,facts| + context "on #{os}" do + let (:facts) do + facts.merge(OSDefaults.get_facts({:processorcount => 8})) + end + + it_configures 'quobyte volume driver' end - - it_configures 'quobyte volume driver' - end - - context 'on RedHat platforms' do - let :facts do - { :osfamily => 'RedHat' } - end - - it_configures 'quobyte volume driver' end end diff --git a/spec/defines/cinder_backend_rbd_spec.rb b/spec/defines/cinder_backend_rbd_spec.rb index c70225fd..f52b7a32 100644 --- a/spec/defines/cinder_backend_rbd_spec.rb +++ b/spec/defines/cinder_backend_rbd_spec.rb @@ -5,7 +5,7 @@ describe 'cinder::backend::rbd' do let(:title) {'rbd-ssd'} let :facts do - @default_facts.merge({}) + OSDefaults.get_facts({}) end let :req_params do diff --git a/spec/defines/cinder_backend_vmdk_spec.rb b/spec/defines/cinder_backend_vmdk_spec.rb index 92af2fe9..90cb0f7c 100644 --- a/spec/defines/cinder_backend_vmdk_spec.rb +++ b/spec/defines/cinder_backend_vmdk_spec.rb @@ -5,7 +5,7 @@ describe 'cinder::backend::vmdk' do let(:title) { 'hippo' } let :facts do - @default_facts.merge({}) + OSDefaults.get_facts({}) end let :params do