end
- context 'on Debian platforms' do
- let :facts do
- @default_facts.merge({ :osfamily => 'Debian' })
- end
-
- it_configures 'ceilometer-agent-auth'
- 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
- context 'on RedHat platforms' do
- let :facts do
- @default_facts.merge({ :osfamily => 'RedHat' })
+ it_behaves_like 'ceilometer-agent-auth'
end
-
- it_configures 'ceilometer-agent-auth'
end
end
end
- context 'on Debian platforms' do
- let :facts do
- @default_facts.merge({ :osfamily => 'Debian' })
- end
-
- let :platform_params do
- { :agent_package_name => 'ceilometer-agent-central',
- :agent_service_name => 'ceilometer-agent-central' }
- end
-
- it_configures 'ceilometer-agent-central'
- 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
- context 'on RedHat platforms' do
- let :facts do
- @default_facts.merge({ :osfamily => 'RedHat' })
- end
+ let :platform_params do
+ case facts[:osfamily]
+ when 'Debian'
+ { :agent_package_name => 'ceilometer-agent-central',
+ :agent_service_name => 'ceilometer-agent-central' }
+ when 'RedHat'
+ { :agent_package_name => 'openstack-ceilometer-central',
+ :agent_service_name => 'openstack-ceilometer-central' }
+ end
+ end
- let :platform_params do
- { :agent_package_name => 'openstack-ceilometer-central',
- :agent_service_name => 'openstack-ceilometer-central' }
+ it_behaves_like 'ceilometer-agent-central'
end
-
- it_configures 'ceilometer-agent-central'
end
+
end
end
- context 'on Debian platforms' do
- let :facts do
- @default_facts.merge({ :osfamily => 'Debian' })
- end
-
- let :platform_params do
- { :agent_package_name => 'ceilometer-agent-compute',
- :agent_service_name => 'ceilometer-agent-compute' }
- end
-
- context 'on Ubuntu operating systems' do
- before do
- facts.merge!( :operatingsystem => 'Ubuntu' )
- platform_params.merge!( :libvirt_group => 'libvirtd' )
+ 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 'ceilometer-agent-compute'
- end
-
- context 'on other operating systems' do
- before do
- platform_params.merge!( :libvirt_group => 'libvirt' )
+ let :platform_params do
+ case facts[:osfamily]
+ when 'Debian'
+ if facts[:operatingsystem] == 'Ubuntu'
+ { :agent_package_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
+ when 'RedHat'
+ { :agent_package_name => 'openstack-ceilometer-compute',
+ :agent_service_name => 'openstack-ceilometer-compute' }
+ end
end
- it_configures 'ceilometer-agent-compute'
+ it_behaves_like '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_service_name => 'openstack-ceilometer-compute' }
- end
-
- it_configures 'ceilometer-agent-compute'
- end
end
end
end
- context 'on Debian platforms' do
- let :facts do
- @default_facts.merge({ :osfamily => 'Debian' })
- end
-
- let :platform_params do
- { :agent_notification_package_name => 'ceilometer-agent-notification',
- :agent_notification_service_name => 'ceilometer-agent-notification' }
- end
-
- 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_service_name => 'openstack-ceilometer-notification' }
- end
-
- it_configures 'ceilometer-agent-notification'
- end
-
- context 'on RHEL 7' do
- let :facts do
- @default_facts.merge({ :osfamily => 'RedHat',
- :operatingsystem => 'RedHat',
- :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 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
+ 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
- context 'on Fedora 20' do
- let :facts do
- @default_facts.merge({ :osfamily => 'RedHat',
- :operatingsystem => 'Fedora',
- :operatingsystemrelease => 20
- })
- end
+ let :platform_params do
+ case facts[:osfamily]
+ when 'Debian'
+ { :agent_notification_package_name => 'ceilometer-agent-notification',
+ :agent_notification_service_name => 'ceilometer-agent-notification' }
+ when 'RedHat'
+ { :agent_notification_package_name => 'openstack-ceilometer-notification',
+ :agent_notification_service_name => 'openstack-ceilometer-notification' }
+ end
+ end
- let :platform_params do
- { :agent_notification_package_name => 'openstack-ceilometer-notification',
- :agent_notification_service_name => 'openstack-ceilometer-notification' }
+ it_behaves_like 'ceilometer-agent-notification'
end
-
- it_configures 'ceilometer-agent-notification'
end
end
end
- context 'on Debian platforms' do
- let :facts do
- @default_facts.merge({ :osfamily => 'Debian' })
- end
-
- let :platform_params do
- { :agent_package_name => 'ceilometer-polling',
- :agent_service_name => 'ceilometer-polling' }
- end
-
- context 'on Ubuntu operating systems' do
- before do
- facts.merge!( :operatingsystem => 'Ubuntu' )
- platform_params.merge!( :libvirt_group => 'libvirtd' )
+ 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 'ceilometer-polling'
- end
-
- context 'on other operating systems' do
- before do
- platform_params.merge!( :libvirt_group => 'libvirt' )
+ let :platform_params do
+ case facts[:osfamily]
+ when 'Debian'
+ if facts[:operatingsystem] == 'Ubuntu'
+ { :agent_package_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
+ when 'RedHat'
+ { :agent_package_name => 'openstack-ceilometer-polling',
+ :agent_service_name => 'openstack-ceilometer-polling' }
+ end
end
- it_configures 'ceilometer-polling'
+ it_behaves_like '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_service_name => 'openstack-ceilometer-polling' }
- end
-
- it_configures 'ceilometer-polling'
- end
end
end
end
- context 'on Debian platforms' do
- let :facts do
- @default_facts.merge({ :osfamily => 'Debian',
- :operatingsystem => 'Debian',
- :operatingsystemrelease => '8.0',
- :concat_basedir => '/var/lib/puppet/concat',
- :fqdn => 'some.host.tld',
- })
- end
-
- let :platform_params do
- { :api_package_name => 'ceilometer-api',
- :api_service_name => 'ceilometer-api' }
- end
-
- it_configures 'ceilometer-api'
- 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
- 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
+ case facts[:osfamily]
+ when 'Debian'
+ { :api_package_name => 'ceilometer-api',
+ :api_service_name => 'ceilometer-api' }
+ when 'RedHat'
+ { :api_package_name => 'openstack-ceilometer-api',
+ :api_service_name => 'openstack-ceilometer-api' }
+ end
+ end
- let :platform_params do
- { :api_package_name => 'openstack-ceilometer-api',
- :api_service_name => 'openstack-ceilometer-api' }
+ it_behaves_like 'ceilometer-api'
end
-
- it_configures 'ceilometer-api'
end
end
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())
+ end
+
+ let :platform_params do
+ { :client_package_name => 'python-ceilometerclient' }
+ end
+
+ it_behaves_like 'ceilometer client'
end
-
- let :platform_params do
- { :client_package_name => 'python-ceilometerclient' }
- end
-
- it_configures 'ceilometer client'
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
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())
+ end
+
+ let :platform_params do
+ case facts[:osfamily]
+ when 'Debian'
+ { :collector_package_name => 'ceilometer-collector',
+ :collector_service_name => 'ceilometer-collector' }
+ when 'RedHat'
+ { :collector_package_name => 'openstack-ceilometer-collector',
+ :collector_service_name => 'openstack-ceilometer-collector' }
+ end
+ end
+
+ it_behaves_like 'ceilometer-collector'
end
-
- let :platform_params do
- { :collector_package_name => 'ceilometer-collector',
- :collector_service_name => 'ceilometer-collector' }
- end
-
- 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_service_name => 'openstack-ceilometer-collector' }
- end
-
- it_configures 'ceilometer-collector'
- end
end
:charset => params[:charset]
)
end
- end
-
- context 'on Debian platforms' do
- let :facts do
- @default_facts.merge({ :osfamily => 'Debian' })
- end
- it_configures 'ceilometer mysql database'
- end
+ describe "overriding allowed_hosts param to array" do
+ let :params do
+ {
+ :password => 'ceilometerpass',
+ :allowed_hosts => ['localhost','%']
+ }
+ 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 string" do
+ let :params do
+ {
+ :password => 'ceilometerpass2',
+ :allowed_hosts => '192.168.1.1'
+ }
+ end
- describe "overriding allowed_hosts param to array" do
- let :facts do
- @default_facts.merge({ :osfamily => "Debian" })
- end
- let :params do
- {
- :password => 'ceilometerpass',
- :allowed_hosts => ['localhost','%']
- }
end
- end
+ describe "overriding allowed_hosts param equals to host param " do
+ let :params do
+ {
+ :password => 'ceilometerpass2',
+ :allowed_hosts => 'localhost'
+ }
+ end
- describe "overriding allowed_hosts param to string" do
- let :facts do
- @default_facts.merge({ :osfamily => 'RedHat' })
end
- let :params do
- {
- :password => 'ceilometerpass2',
- :allowed_hosts => '192.168.1.1'
- }
- end
-
end
- describe "overriding allowed_hosts param equals to host param " do
- let :facts do
- @default_facts.merge({ :osfamily => 'RedHat' })
- end
- let :params do
- {
- :password => 'ceilometerpass2',
- :allowed_hosts => 'localhost'
- }
- 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
- context 'on Debian platforms' do
- let :facts do
- @default_facts.merge({ :osfamily => 'Debian',
- :operatingsystem => 'Debian',
- :operatingsystemrelease => 'jessie',
- })
- end
-
- it_configures 'ceilometer::db'
-
- context 'using pymysql driver' do
+ shared_examples_for 'ceilometer::db on Debian' do
+ context 'with sqlite backend' do
let :params do
- { :database_connection => 'mysql+pymysql:///ceilometer:ceilometer@localhost/ceilometer', }
+ { :database_connection => 'sqlite:///var/lib/ceilometer.db', }
end
it 'install the proper backend package' do
is_expected.to contain_package('db_backend_package').with(
:ensure => 'present',
- :name => 'python-pymysql',
+ :name => 'python-pysqlite2',
:tag => 'openstack'
)
end
end
- context 'with sqlite backend' do
+ context 'using pymysql driver' do
let :params do
- { :database_connection => 'sqlite:///var/lib/ceilometer.db', }
+ { :database_connection => 'mysql+pymysql:///ceilometer:ceilometer@localhost/ceilometer', }
end
it 'install the proper backend package' do
is_expected.to contain_package('db_backend_package').with(
:ensure => 'present',
- :name => 'python-pysqlite2',
+ :name => 'python-pymysql',
: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'
-
+ shared_examples_for 'ceilometer::db on RedHat' do
context 'using pymysql driver' do
let :params do
- { :database_connection => 'mysql+pymysql:///ceilometer:ceilometer@localhost/ceilometer', }
+ { :database_connection => 'mysql+pymysql:///ceilometer:ceilometer@localhost/ceilometer', }
end
it { is_expected.not_to contain_package('db_backend_package') }
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
}))
end
- it_configures 'ceilometer-dbsync'
+ it_behaves_like 'ceilometer-dbsync'
end
end
end
end
- context 'on Debian platforms' do
- let :facts do
- @default_facts.merge({ :osfamily => 'Debian' })
- end
-
- it_configures 'ceilometer-gnocchi-dispatcher'
- 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
- context 'on RedHat platforms' do
- let :facts do
- @default_facts.merge({ :osfamily => 'RedHat' })
+ it_behaves_like 'ceilometer-gnocchi-dispatcher'
end
-
- it_configures 'ceilometer-gnocchi-dispatcher'
end
end
end
- context 'on Debian platforms' do
- let :facts do
- @default_facts.merge({ :osfamily => 'Debian' })
- end
-
- let :platform_params do
- { :common_package_name => 'ceilometer-common' }
- end
-
- it_configures 'ceilometer-expirer'
- 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
- context 'on RedHat platforms' do
- let :facts do
- @default_facts.merge({ :osfamily => 'RedHat' })
- end
+ let :platform_params do
+ case facts[:osfamily]
+ when 'Debian'
+ { :common_package_name => 'ceilometer-common' }
+ when 'RedHat'
+ { :common_package_name => 'openstack-ceilometer-common' }
+ end
+ end
- let :platform_params do
- { :common_package_name => 'openstack-ceilometer-common' }
+ it_behaves_like 'ceilometer-expirer'
end
-
- it_configures 'ceilometer-expirer'
end
end
end
end
- context 'on Debian platforms' do
- let :facts do
- @default_facts.merge({ :osfamily => 'Debian' })
- end
-
- let :platform_params do
- { :common_package_name => 'ceilometer-common' }
- end
-
- it_configures 'ceilometer'
- 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
- context 'on RedHat platforms' do
- let :facts do
- @default_facts.merge({ :osfamily => 'RedHat' })
- end
+ let :platform_params do
+ case facts[:osfamily]
+ when 'Debian'
+ { :common_package_name => 'ceilometer-common' }
+ when 'RedHat'
+ { :common_package_name => 'openstack-ceilometer-common' }
+ end
+ end
- let :platform_params do
- { :common_package_name => 'openstack-ceilometer-common' }
+ it_behaves_like 'ceilometer'
end
-
- it_configures 'ceilometer'
end
+
end
end
- context 'on Debian platforms' do
- let :facts do
- @default_facts.merge({ :osfamily => 'Debian' })
- end
-
- it_configures 'ceilometer keystone auth'
- 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
- context 'on RedHat platforms' do
- let :facts do
- @default_facts.merge({ :osfamily => 'RedHat' })
+ it_behaves_like 'ceilometer keystone auth'
end
-
- it_configures 'ceilometer keystone auth'
end
end
facts.merge!(OSDefaults.get_facts())
end
- it_configures 'ceilometer authtoken'
+ it_behaves_like 'ceilometer authtoken'
end
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())
+ end
+
+ it_behaves_like 'ceilometer-logging'
end
-
- it_configures 'ceilometer-logging'
- end
-
- context 'on RedHat platforms' do
- let :facts do
- @default_facts.merge({ :osfamily => 'RedHat' })
- end
-
- it_configures 'ceilometer-logging'
end
end
facts.merge!(OSDefaults.get_facts())
end
- it_configures 'ceilometer policies'
+ it_behaves_like 'ceilometer policies'
end
end
end
end
- context 'on RedHat platforms' do
- let :facts do
- @default_facts.merge(global_facts.merge({
- :osfamily => 'RedHat',
- :operatingsystemrelease => '7.0'
- }))
- end
-
- let :platform_parameters do
- {
- :httpd_service_name => 'httpd',
- :httpd_ports_file => '/etc/httpd/conf/ports.conf',
- :wsgi_script_path => '/var/www/cgi-bin/ceilometer',
- :wsgi_script_source => '/usr/lib/python2.7/site-packages/ceilometer/api/app.wsgi'
- }
- end
-
- it_configures 'apache serving ceilometer with mod_wsgi'
- 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({
+ :fqdn => 'some.host.tld'
+ }))
+ end
- context 'on Debian platforms' do
- let :facts do
- @default_facts.merge(global_facts.merge({
- :osfamily => 'Debian',
- :operatingsystem => 'Debian',
- :operatingsystemrelease => '7.0'
- }))
- end
+ 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_ports_file => '/etc/httpd/conf/ports.conf',
+ :wsgi_script_path => '/var/www/cgi-bin/ceilometer',
+ :wsgi_script_source => '/usr/lib/python2.7/site-packages/ceilometer/api/app.wsgi'
+ }
+ 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'
- }
+ it_behaves_like 'apache serving ceilometer with mod_wsgi'
end
-
- it_configures 'apache serving ceilometer with mod_wsgi'
end
+
end