Switch ceilometer to rspec-puppet-facts

Change-Id: I5befcadb924f0896457f3db0b712f6de157e926c
This commit is contained in:
Mykyta Karpin
2016-11-11 19:03:11 +02:00
parent af4af189ea
commit 52ebcc955d
19 changed files with 321 additions and 468 deletions

View File

@@ -49,20 +49,16 @@ describe 'ceilometer::agent::auth' do
end end
context 'on Debian platforms' do on_supported_os({
let :facts do :supported_os => OSDefaults.get_supported_os
@default_facts.merge({ :osfamily => 'Debian' }) }).each do |os,facts|
context "on #{os}" do
let (:facts) do
facts.merge!(OSDefaults.get_facts())
end end
it_configures 'ceilometer-agent-auth' it_behaves_like 'ceilometer-agent-auth'
end end
context 'on RedHat platforms' do
let :facts do
@default_facts.merge({ :osfamily => 'RedHat' })
end
it_configures 'ceilometer-agent-auth'
end end
end end

View File

@@ -77,29 +77,27 @@ describe 'ceilometer::agent::central' do
end end
context 'on Debian platforms' do on_supported_os({
let :facts do :supported_os => OSDefaults.get_supported_os
@default_facts.merge({ :osfamily => 'Debian' }) }).each do |os,facts|
context "on #{os}" do
let (:facts) do
facts.merge!(OSDefaults.get_facts())
end end
let :platform_params do let :platform_params do
case facts[:osfamily]
when 'Debian'
{ :agent_package_name => 'ceilometer-agent-central', { :agent_package_name => 'ceilometer-agent-central',
:agent_service_name => 'ceilometer-agent-central' } :agent_service_name => 'ceilometer-agent-central' }
end when 'RedHat'
it_configures 'ceilometer-agent-central'
end
context 'on RedHat platforms' do
let :facts do
@default_facts.merge({ :osfamily => 'RedHat' })
end
let :platform_params do
{ :agent_package_name => 'openstack-ceilometer-central', { :agent_package_name => 'openstack-ceilometer-central',
:agent_service_name => 'openstack-ceilometer-central' } :agent_service_name => 'openstack-ceilometer-central' }
end end
it_configures 'ceilometer-agent-central'
end end
it_behaves_like 'ceilometer-agent-central'
end
end
end end

View File

@@ -88,44 +88,34 @@ describe 'ceilometer::agent::compute' do
end end
context 'on Debian platforms' do on_supported_os({
let :facts do :supported_os => OSDefaults.get_supported_os
@default_facts.merge({ :osfamily => 'Debian' }) }).each do |os,facts|
context "on #{os}" do
let (:facts) do
facts.merge!(OSDefaults.get_facts())
end end
let :platform_params do let :platform_params do
case facts[:osfamily]
when 'Debian'
if facts[:operatingsystem] == 'Ubuntu'
{ :agent_package_name => 'ceilometer-agent-compute', { :agent_package_name => 'ceilometer-agent-compute',
:agent_service_name => 'ceilometer-agent-compute' } :agent_service_name => 'ceilometer-agent-compute',
:libvirt_group => 'libvirtd' }
else
{ :agent_package_name => 'ceilometer-agent-compute',
:agent_service_name => 'ceilometer-agent-compute',
:libvirt_group => 'libvirt' }
end end
when 'RedHat'
context 'on Ubuntu operating systems' do
before do
facts.merge!( :operatingsystem => 'Ubuntu' )
platform_params.merge!( :libvirt_group => 'libvirtd' )
end
it_configures 'ceilometer-agent-compute'
end
context 'on other operating systems' do
before do
platform_params.merge!( :libvirt_group => 'libvirt' )
end
it_configures 'ceilometer-agent-compute'
end
end
context 'on RedHat platforms' do
let :facts do
@default_facts.merge({ :osfamily => 'RedHat' })
end
let :platform_params do
{ :agent_package_name => 'openstack-ceilometer-compute', { :agent_package_name => 'openstack-ceilometer-compute',
:agent_service_name => 'openstack-ceilometer-compute' } :agent_service_name => 'openstack-ceilometer-compute' }
end end
it_configures 'ceilometer-agent-compute'
end end
it_behaves_like 'ceilometer-agent-compute'
end
end
end end

View File

@@ -172,94 +172,27 @@ describe 'ceilometer::agent::notification' do
end end
end end
context 'on Debian platforms' do on_supported_os({
let :facts do :supported_os => OSDefaults.get_supported_os
@default_facts.merge({ :osfamily => 'Debian' }) }).each do |os,facts|
context "on #{os}" do
let (:facts) do
facts.merge!(OSDefaults.get_facts())
end end
let :platform_params do let :platform_params do
case facts[:osfamily]
when 'Debian'
{ :agent_notification_package_name => 'ceilometer-agent-notification', { :agent_notification_package_name => 'ceilometer-agent-notification',
:agent_notification_service_name => 'ceilometer-agent-notification' } :agent_notification_service_name => 'ceilometer-agent-notification' }
end when 'RedHat'
it_configures 'ceilometer-agent-notification'
end
context 'on RedHat platforms' do
let :facts do
@default_facts.merge({ :osfamily => 'RedHat' })
end
let :platform_params do
{ :agent_notification_package_name => 'openstack-ceilometer-notification', { :agent_notification_package_name => 'openstack-ceilometer-notification',
:agent_notification_service_name => 'openstack-ceilometer-notification' } :agent_notification_service_name => 'openstack-ceilometer-notification' }
end end
it_configures 'ceilometer-agent-notification'
end end
context 'on RHEL 7' do it_behaves_like 'ceilometer-agent-notification'
let :facts do
@default_facts.merge({ :osfamily => 'RedHat',
:operatingsystem => 'RedHat',
:operatingsystemmajrelease => 7
})
end end
let :platform_params do
{ :agent_notification_package_name => 'openstack-ceilometer-notification',
:agent_notification_service_name => 'openstack-ceilometer-notification' }
end
it_configures 'ceilometer-agent-notification'
end
context 'on CentOS 7' do
let :facts do
@default_facts.merge({ :osfamily => 'RedHat',
:operatingsystem => 'CentOS',
:operatingsystemmajrelease => 7
})
end
let :platform_params do
{ :agent_notification_package_name => 'openstack-ceilometer-notification',
:agent_notification_service_name => 'openstack-ceilometer-notification' }
end
it_configures 'ceilometer-agent-notification'
end
context 'on Scientific 7' do
let :facts do
@default_facts.merge({ :osfamily => 'RedHat',
:operatingsystem => 'Scientific',
:operatingsystemmajrelease => 7
})
end
let :platform_params do
{ :agent_notification_package_name => 'openstack-ceilometer-notification',
:agent_notification_service_name => 'openstack-ceilometer-notification' }
end
it_configures 'ceilometer-agent-notification'
end
context 'on Fedora 20' do
let :facts do
@default_facts.merge({ :osfamily => 'RedHat',
:operatingsystem => 'Fedora',
:operatingsystemrelease => 20
})
end
let :platform_params do
{ :agent_notification_package_name => 'openstack-ceilometer-notification',
:agent_notification_service_name => 'openstack-ceilometer-notification' }
end
it_configures 'ceilometer-agent-notification'
end end
end end

View File

@@ -114,45 +114,34 @@ describe 'ceilometer::agent::polling' do
end end
context 'on Debian platforms' do on_supported_os({
let :facts do :supported_os => OSDefaults.get_supported_os
@default_facts.merge({ :osfamily => 'Debian' }) }).each do |os,facts|
context "on #{os}" do
let (:facts) do
facts.merge!(OSDefaults.get_facts())
end end
let :platform_params do let :platform_params do
case facts[:osfamily]
when 'Debian'
if facts[:operatingsystem] == 'Ubuntu'
{ :agent_package_name => 'ceilometer-polling', { :agent_package_name => 'ceilometer-polling',
:agent_service_name => 'ceilometer-polling' } :agent_service_name => 'ceilometer-polling',
:libvirt_group => 'libvirtd' }
else
{ :agent_package_name => 'ceilometer-polling',
:agent_service_name => 'ceilometer-polling',
:libvirt_group => 'libvirt' }
end end
when 'RedHat'
context 'on Ubuntu operating systems' do
before do
facts.merge!( :operatingsystem => 'Ubuntu' )
platform_params.merge!( :libvirt_group => 'libvirtd' )
end
it_configures 'ceilometer-polling'
end
context 'on other operating systems' do
before do
platform_params.merge!( :libvirt_group => 'libvirt' )
end
it_configures 'ceilometer-polling'
end
end
context 'on RedHat platforms' do
let :facts do
@default_facts.merge({ :osfamily => 'RedHat' })
end
let :platform_params do
{ :agent_package_name => 'openstack-ceilometer-polling', { :agent_package_name => 'openstack-ceilometer-polling',
:agent_service_name => 'openstack-ceilometer-polling' } :agent_service_name => 'openstack-ceilometer-polling' }
end end
it_configures 'ceilometer-polling'
end end
it_behaves_like 'ceilometer-polling'
end
end
end end

View File

@@ -149,41 +149,30 @@ describe 'ceilometer::api' do
end end
end end
context 'on Debian platforms' do on_supported_os({
let :facts do :supported_os => OSDefaults.get_supported_os
@default_facts.merge({ :osfamily => 'Debian', }).each do |os,facts|
:operatingsystem => 'Debian', context "on #{os}" do
:operatingsystemrelease => '8.0', let (:facts) do
facts.merge!(OSDefaults.get_facts({
:concat_basedir => '/var/lib/puppet/concat', :concat_basedir => '/var/lib/puppet/concat',
:fqdn => 'some.host.tld', :fqdn => 'some.host.tld',
}) }))
end end
let :platform_params do let :platform_params do
case facts[:osfamily]
when 'Debian'
{ :api_package_name => 'ceilometer-api', { :api_package_name => 'ceilometer-api',
:api_service_name => 'ceilometer-api' } :api_service_name => 'ceilometer-api' }
end when 'RedHat'
it_configures 'ceilometer-api'
end
context 'on RedHat platforms' do
let :facts do
@default_facts.merge({ :osfamily => 'RedHat',
:operatingsystem => 'RedHat',
:operatingsystemrelease => '7.1',
:operatingsystemmajrelease => '7',
:fqdn => 'some.host.tld',
:concat_basedir => '/var/lib/puppet/concat',
})
end
let :platform_params do
{ :api_package_name => 'openstack-ceilometer-api', { :api_package_name => 'openstack-ceilometer-api',
:api_service_name => 'openstack-ceilometer-api' } :api_service_name => 'openstack-ceilometer-api' }
end end
end
it_configures 'ceilometer-api' it_behaves_like 'ceilometer-api'
end
end end
end end

View File

@@ -15,27 +15,20 @@ describe 'ceilometer::client' do
end end
end end
context 'on Debian platforms' do on_supported_os({
let :facts do :supported_os => OSDefaults.get_supported_os
@default_facts.merge({ :osfamily => 'Debian' }) }).each do |os,facts|
context "on #{os}" do
let (:facts) do
facts.merge!(OSDefaults.get_facts())
end end
let :platform_params do let :platform_params do
{ :client_package_name => 'python-ceilometerclient' } { :client_package_name => 'python-ceilometerclient' }
end end
it_configures 'ceilometer client' it_behaves_like 'ceilometer client'
end
end end
context 'on RedHat platforms' do
let :facts do
@default_facts.merge({ :osfamily => 'RedHat' })
end
let :platform_params do
{ :client_package_name => 'python-ceilometerclient' }
end
it_configures 'ceilometer client'
end
end end

View File

@@ -113,29 +113,27 @@ describe 'ceilometer::collector' do
end end
end end
context 'on Debian platforms' do on_supported_os({
let :facts do :supported_os => OSDefaults.get_supported_os
@default_facts.merge({ :osfamily => 'Debian' }) }).each do |os,facts|
context "on #{os}" do
let (:facts) do
facts.merge!(OSDefaults.get_facts())
end end
let :platform_params do let :platform_params do
case facts[:osfamily]
when 'Debian'
{ :collector_package_name => 'ceilometer-collector', { :collector_package_name => 'ceilometer-collector',
:collector_service_name => 'ceilometer-collector' } :collector_service_name => 'ceilometer-collector' }
end when 'RedHat'
it_configures 'ceilometer-collector'
end
context 'on RedHat platforms' do
let :facts do
@default_facts.merge({ :osfamily => 'RedHat' })
end
let :platform_params do
{ :collector_package_name => 'openstack-ceilometer-collector', { :collector_package_name => 'openstack-ceilometer-collector',
:collector_service_name => 'openstack-ceilometer-collector' } :collector_service_name => 'openstack-ceilometer-collector' }
end end
it_configures 'ceilometer-collector'
end end
it_behaves_like 'ceilometer-collector'
end
end
end end

View File

@@ -31,28 +31,8 @@ describe 'ceilometer::db::mysql' do
:charset => params[:charset] :charset => params[:charset]
) )
end end
end
context 'on Debian platforms' do
let :facts do
@default_facts.merge({ :osfamily => 'Debian' })
end
it_configures 'ceilometer mysql database'
end
context 'on RedHat platforms' do
let :facts do
@default_facts.merge({ :osfamily => 'RedHat' })
end
it_configures 'ceilometer mysql database'
end
describe "overriding allowed_hosts param to array" do describe "overriding allowed_hosts param to array" do
let :facts do
@default_facts.merge({ :osfamily => "Debian" })
end
let :params do let :params do
{ {
:password => 'ceilometerpass', :password => 'ceilometerpass',
@@ -63,9 +43,6 @@ describe 'ceilometer::db::mysql' do
end end
describe "overriding allowed_hosts param to string" do describe "overriding allowed_hosts param to string" do
let :facts do
@default_facts.merge({ :osfamily => 'RedHat' })
end
let :params do let :params do
{ {
:password => 'ceilometerpass2', :password => 'ceilometerpass2',
@@ -76,9 +53,6 @@ describe 'ceilometer::db::mysql' do
end end
describe "overriding allowed_hosts param equals to host param " do describe "overriding allowed_hosts param equals to host param " do
let :facts do
@default_facts.merge({ :osfamily => 'RedHat' })
end
let :params do let :params do
{ {
:password => 'ceilometerpass2', :password => 'ceilometerpass2',
@@ -87,4 +61,18 @@ describe 'ceilometer::db::mysql' do
end end
end end
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())
end
it_behaves_like 'ceilometer mysql database'
end
end
end end

View File

@@ -91,15 +91,20 @@ describe 'ceilometer::db' do
end end
context 'on Debian platforms' do shared_examples_for 'ceilometer::db on Debian' do
let :facts do context 'with sqlite backend' do
@default_facts.merge({ :osfamily => 'Debian', let :params do
:operatingsystem => 'Debian', { :database_connection => 'sqlite:///var/lib/ceilometer.db', }
:operatingsystemrelease => 'jessie',
})
end end
it_configures 'ceilometer::db' it 'install the proper backend package' do
is_expected.to contain_package('db_backend_package').with(
:ensure => 'present',
:name => 'python-pysqlite2',
:tag => 'openstack'
)
end
end
context 'using pymysql driver' do context 'using pymysql driver' do
let :params do let :params do
@@ -114,32 +119,9 @@ describe 'ceilometer::db' do
) )
end end
end end
context 'with sqlite backend' do
let :params do
{ :database_connection => 'sqlite:///var/lib/ceilometer.db', }
end end
it 'install the proper backend package' do shared_examples_for 'ceilometer::db on RedHat' do
is_expected.to contain_package('db_backend_package').with(
:ensure => 'present',
:name => 'python-pysqlite2',
:tag => 'openstack'
)
end
end
end
context 'on Redhat platforms' do
let :facts do
@default_facts.merge({ :osfamily => 'RedHat',
:operatingsystemrelease => '7.1',
})
end
it_configures 'ceilometer::db'
context 'using pymysql driver' do context 'using pymysql driver' do
let :params do let :params do
{ :database_connection => 'mysql+pymysql:///ceilometer:ceilometer@localhost/ceilometer', } { :database_connection => 'mysql+pymysql:///ceilometer:ceilometer@localhost/ceilometer', }
@@ -149,5 +131,26 @@ describe 'ceilometer::db' do
end end
end end
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({
:concat_basedir => '/var/lib/puppet/concat',
:fqdn => 'some.host.tld',
}))
end
case facts[:osfamily]
when 'Debian'
it_behaves_like 'ceilometer::db on Debian'
when 'RedHat'
it_behaves_like 'ceilometer::db on RedHat'
end
it_behaves_like 'ceilometer::db'
end
end
end

View File

@@ -43,7 +43,7 @@ describe 'ceilometer::db::sync' do
})) }))
end end
it_configures 'ceilometer-dbsync' it_behaves_like 'ceilometer-dbsync'
end end
end end

View File

@@ -35,20 +35,16 @@ describe 'ceilometer::dispatcher::gnocchi' do
end end
end end
context 'on Debian platforms' do on_supported_os({
let :facts do :supported_os => OSDefaults.get_supported_os
@default_facts.merge({ :osfamily => 'Debian' }) }).each do |os,facts|
context "on #{os}" do
let (:facts) do
facts.merge(OSDefaults.get_facts())
end end
it_configures 'ceilometer-gnocchi-dispatcher' it_behaves_like 'ceilometer-gnocchi-dispatcher'
end end
context 'on RedHat platforms' do
let :facts do
@default_facts.merge({ :osfamily => 'RedHat' })
end
it_configures 'ceilometer-gnocchi-dispatcher'
end end
end end

View File

@@ -64,28 +64,25 @@ describe 'ceilometer::expirer' do
end end
context 'on Debian platforms' do on_supported_os({
let :facts do :supported_os => OSDefaults.get_supported_os
@default_facts.merge({ :osfamily => 'Debian' }) }).each do |os,facts|
context "on #{os}" do
let (:facts) do
facts.merge!(OSDefaults.get_facts())
end end
let :platform_params do let :platform_params do
case facts[:osfamily]
when 'Debian'
{ :common_package_name => 'ceilometer-common' } { :common_package_name => 'ceilometer-common' }
end when 'RedHat'
it_configures 'ceilometer-expirer'
end
context 'on RedHat platforms' do
let :facts do
@default_facts.merge({ :osfamily => 'RedHat' })
end
let :platform_params do
{ :common_package_name => 'openstack-ceilometer-common' } { :common_package_name => 'openstack-ceilometer-common' }
end end
end
it_configures 'ceilometer-expirer' it_behaves_like 'ceilometer-expirer'
end
end end
end end

View File

@@ -375,27 +375,25 @@ describe 'ceilometer' do
end end
end end
context 'on Debian platforms' do on_supported_os({
let :facts do :supported_os => OSDefaults.get_supported_os
@default_facts.merge({ :osfamily => 'Debian' }) }).each do |os,facts|
context "on #{os}" do
let (:facts) do
facts.merge!(OSDefaults.get_facts())
end end
let :platform_params do let :platform_params do
case facts[:osfamily]
when 'Debian'
{ :common_package_name => 'ceilometer-common' } { :common_package_name => 'ceilometer-common' }
end when 'RedHat'
it_configures 'ceilometer'
end
context 'on RedHat platforms' do
let :facts do
@default_facts.merge({ :osfamily => 'RedHat' })
end
let :platform_params do
{ :common_package_name => 'openstack-ceilometer-common' } { :common_package_name => 'openstack-ceilometer-common' }
end end
it_configures 'ceilometer'
end end
it_behaves_like 'ceilometer'
end
end
end end

View File

@@ -169,20 +169,16 @@ describe 'ceilometer::keystone::auth' do
end end
context 'on Debian platforms' do on_supported_os({
let :facts do :supported_os => OSDefaults.get_supported_os
@default_facts.merge({ :osfamily => 'Debian' }) }).each do |os,facts|
context "on #{os}" do
let (:facts) do
facts.merge(OSDefaults.get_facts())
end end
it_configures 'ceilometer keystone auth' it_behaves_like 'ceilometer keystone auth'
end end
context 'on RedHat platforms' do
let :facts do
@default_facts.merge({ :osfamily => 'RedHat' })
end
it_configures 'ceilometer keystone auth'
end end
end end

View File

@@ -138,7 +138,7 @@ describe 'ceilometer::keystone::authtoken' do
facts.merge!(OSDefaults.get_facts()) facts.merge!(OSDefaults.get_facts())
end end
it_configures 'ceilometer authtoken' it_behaves_like 'ceilometer authtoken'
end end
end end

View File

@@ -120,20 +120,16 @@ describe 'ceilometer::logging' do
} }
end end
context 'on Debian platforms' do on_supported_os({
let :facts do :supported_os => OSDefaults.get_supported_os
@default_facts.merge({ :osfamily => 'Debian' }) }).each do |os,facts|
context "on #{os}" do
let (:facts) do
facts.merge(OSDefaults.get_facts())
end end
it_configures 'ceilometer-logging' it_behaves_like 'ceilometer-logging'
end end
context 'on RedHat platforms' do
let :facts do
@default_facts.merge({ :osfamily => 'RedHat' })
end
it_configures 'ceilometer-logging'
end end
end end

View File

@@ -32,7 +32,7 @@ describe 'ceilometer::policy' do
facts.merge!(OSDefaults.get_facts()) facts.merge!(OSDefaults.get_facts())
end end
it_configures 'ceilometer policies' it_behaves_like 'ceilometer policies'
end end
end end

View File

@@ -85,15 +85,26 @@ describe 'ceilometer::wsgi::apache' do
end end
end end
context 'on RedHat platforms' do on_supported_os({
let :facts do :supported_os => OSDefaults.get_supported_os
@default_facts.merge(global_facts.merge({ }).each do |os,facts|
:osfamily => 'RedHat', context "on #{os}" do
:operatingsystemrelease => '7.0' let (:facts) do
facts.merge!(OSDefaults.get_facts({
:fqdn => 'some.host.tld'
})) }))
end end
let :platform_parameters do let :platform_parameters do
case facts[:osfamily]
when 'Debian'
{
:httpd_service_name => 'apache2',
:httpd_ports_file => '/etc/apache2/ports.conf',
:wsgi_script_path => '/usr/lib/cgi-bin/ceilometer',
:wsgi_script_source => '/usr/lib/python2.7/dist-packages/ceilometer/api/app.wsgi'
}
when 'RedHat'
{ {
:httpd_service_name => 'httpd', :httpd_service_name => 'httpd',
:httpd_ports_file => '/etc/httpd/conf/ports.conf', :httpd_ports_file => '/etc/httpd/conf/ports.conf',
@@ -101,28 +112,10 @@ describe 'ceilometer::wsgi::apache' do
:wsgi_script_source => '/usr/lib/python2.7/site-packages/ceilometer/api/app.wsgi' :wsgi_script_source => '/usr/lib/python2.7/site-packages/ceilometer/api/app.wsgi'
} }
end end
it_configures 'apache serving ceilometer with mod_wsgi'
end end
context 'on Debian platforms' do it_behaves_like 'apache serving ceilometer with mod_wsgi'
let :facts do end
@default_facts.merge(global_facts.merge({
:osfamily => 'Debian',
:operatingsystem => 'Debian',
:operatingsystemrelease => '7.0'
}))
end end
let :platform_parameters do
{
:httpd_service_name => 'apache2',
:httpd_ports_file => '/etc/apache2/ports.conf',
:wsgi_script_path => '/usr/lib/cgi-bin/ceilometer',
:wsgi_script_source => '/usr/lib/python2.7/dist-packages/ceilometer/api/app.wsgi'
}
end
it_configures 'apache serving ceilometer with mod_wsgi'
end
end end