fuel-library/deployment/puppet/openstack/spec/classes/openstack_logging_spec.rb

141 lines
4.5 KiB
Ruby

require 'spec_helper'
describe 'openstack::logging' do
let(:default_params) { {
:role => 'client',
:log_remote => true,
:log_local => false,
:log_auth_local => false,
:rotation => 'daily',
:keep => '7',
:minsize => '10M',
:maxsize => '100M',
:rservers => [{'remote_type'=>'udp', 'server'=>'master', 'port'=>'514'},],
:port => 514,
:proto => 'udp',
:show_timezone => false,
:virtual => false,
:rabbit_log_level => 'NOTICE',
:production => 'prod',
:escapenewline => false,
:debug => false,
} }
let(:params) { {} }
shared_examples_for 'logging configuration' do
let :p do
default_params.merge(params)
end
it 'contains openstack::logging' do
should contain_class('openstack::logging')
end
context 'with default params' do
it 'configures with the default params' do
should_not contain_class('openstack::checksum_udp')
should contain_class('rsyslog::params')
should contain_class('rsyslog').with(
:modules => [
'$ModLoad imuxsock # provides support for local system logging',
'$ModLoad imklog # provides kernel logging support (previously done by rklogd)',
'#$ModLoad immark # provides --MARK-- message capability',
'$ModLoad imfile # provides the ability to convert any standard text file into a syslog message',
],
:extra_modules => [ 'imfile' ],
)
should contain_rsyslog__imfile('04-rabbitmq')
should contain_rsyslog__imfile('04-rabbitmq-sasl')
should contain_rsyslog__imfile('04-rabbitmq-startup_err')
should contain_rsyslog__imfile('04-rabbitmq-startup_log')
should contain_rsyslog__imfile('04-rabbitmq-shutdown_err')
should contain_rsyslog__imfile('04-rabbitmq-shutdown_log')
should contain_rsyslog__imfile('05-apache2-error')
should contain_rsyslog__imfile('11-horizon_access')
should contain_rsyslog__imfile('11-horizon_error')
should contain_rsyslog__imfile('12-keystone_wsgi_admin_access')
should contain_rsyslog__imfile('12-keystone_wsgi_admin_error')
should contain_rsyslog__imfile('13-keystone_wsgi_main_access')
should contain_rsyslog__imfile('13-keystone_wsgi_main_error')
should contain_rsyslog__imfile('61-mco_agent_debug')
['10-nova',
'20-keystone',
'30-cinder',
'40-glance',
'50-default',
'50-neutron',
'51-ceilometer',
'53-aodh',
'55-murano',
'54-heat',
'02-ha',
'03-dashboard',
'04-mysql',
'60-puppet-apply',
'61-mco-nailgun-agent',
'62-mongod',
'80-swift',
'90-local',
'00-remote',].each do |item|
should contain_file("/etc/rsyslog.d/#{item}.conf")
end
should contain_class('rsyslog::client').with(
:log_remote => false,
:high_precision_timestamps => p[:show_timezone]
)
should contain_rsyslog__snippet('00-disable-EscapeControlCharactersOnReceive')
end
end
context 'with role = server' do
let :params do
{ :role => 'server' }
end
it 'configures server' do
should contain_firewall("#{p[:port]} #{p[:proto]} rsyslog")
should contain_class('rsyslog::server').with(
:server_dir => '/var/log/',
:high_precision_timestamps => p[:show_timezone],
:port => p[:port]
)
should contain_file('/etc/rsyslog.d/30-remote-log.conf')
should contain_class('openstack::logrotate').with(
:role => p[:role],
:rotation => p[:rotation],
:keep => p[:keep],
:minsize => p[:minsize],
:maxsize => p[:maxsize],
:debug => p[:debug]
)
should contain_rsyslog__snippet('00-disable-EscapeControlCharactersOnReceive')
end
end
context 'with virtual = true' do
let :params do
{ :virtual => true }
end
it 'with virtual = true' do
should contain_class('openstack::checksum_udp').with(:port => p[:port])
end
end
end
on_supported_os(supported_os: supported_os).each do |os, facts|
context "on #{os}" do
let(:facts) do
facts.merge(
{
rsyslog_version: '7.4.4',
}
)
end
it_configures 'logging configuration'
end
end
end