Merge "Put all the logging related parameters to the logging class"

This commit is contained in:
Jenkins 2015-10-12 12:16:41 +00:00 committed by Gerrit Code Review
commit d0bc29d6b0
4 changed files with 100 additions and 78 deletions

View File

@ -27,22 +27,22 @@
# [*package_ensure*]
# ensure state for package. Optional. Defaults to 'present'
# [*debug*]
# should the daemons log debug messages. Optional. Defaults to 'False'
# should the daemons log debug messages. Optional. Defaults to undef
# [*log_dir*]
# (optional) directory to which ceilometer logs are sent.
# If set to boolean false, it will not log to any directory.
# Defaults to '/var/log/ceilometer'
# Defaults to undef
# [*verbose*]
# should the daemons log verbose messages. Optional. Defaults to 'False'
# should the daemons log verbose messages. Optional. Defaults to undef
# [*use_syslog*]
# (optional) Use syslog for logging
# Defaults to false
# Defaults to undef
# [*use_stderr*]
# (optional) Use stderr for logging
# Defaults to true
# Defaults to undef
# [*log_facility*]
# (optional) Syslog facility to receive log lines.
# Defaults to 'LOG_USER'
# Defaults to undef
# [*rpc_backend*]
# (optional) what rpc/queuing service to use
# Defaults to 'rabbit'
@ -119,12 +119,12 @@ class ceilometer(
$metering_secret = false,
$notification_topics = ['notifications'],
$package_ensure = 'present',
$debug = false,
$log_dir = '/var/log/ceilometer',
$verbose = false,
$use_syslog = false,
$use_stderr = true,
$log_facility = 'LOG_USER',
$debug = undef,
$log_dir = undef,
$verbose = undef,
$use_syslog = undef,
$use_stderr = undef,
$log_facility = undef,
$rpc_backend = 'rabbit',
$rabbit_host = '127.0.0.1',
$rabbit_port = 5672,
@ -157,6 +157,7 @@ class ceilometer(
validate_string($metering_secret)
include ::ceilometer::logging
include ::ceilometer::params
if $kombu_ssl_ca_certs and !$rabbit_use_ssl {
@ -285,38 +286,12 @@ class ceilometer(
'DEFAULT/http_timeout' : value => $http_timeout;
'DEFAULT/rpc_backend' : value => $rpc_backend;
'publisher/metering_secret' : value => $metering_secret, secret => true;
'DEFAULT/debug' : value => $debug;
'DEFAULT/verbose' : value => $verbose;
'DEFAULT/use_stderr' : value => $use_stderr;
'DEFAULT/notification_topics' : value => join($notification_topics, ',');
'database/event_time_to_live' : value => $event_time_to_live;
'database/metering_time_to_live' : value => $metering_time_to_live;
'database/alarm_history_time_to_live' : value => $alarm_history_time_to_live;
}
# Log configuration
if $log_dir {
ceilometer_config {
'DEFAULT/log_dir' : value => $log_dir;
}
} else {
ceilometer_config {
'DEFAULT/log_dir' : ensure => absent;
}
}
# Syslog configuration
if $use_syslog {
ceilometer_config {
'DEFAULT/use_syslog': value => true;
'DEFAULT/syslog_log_facility': value => $log_facility;
}
} else {
ceilometer_config {
'DEFAULT/use_syslog': value => false;
}
}
if $memcached_servers {
validate_array($memcached_servers)
}

View File

@ -1,9 +1,34 @@
# Class ceilometer::logging
#
# ceilometer extended logging configuration
# ceilometer logging configuration
#
# == parameters
#
# [*verbose*]
# (Optional) Should the daemons log verbose messages
# Defaults to 'false'
#
# [*debug*]
# (Optional) Should the daemons log debug messages
# Defaults to 'false'
#
# [*use_syslog*]
# (Optional) Use syslog for logging.
# Defaults to 'false'
#
# [*use_stderr*]
# (optional) Use stderr for logging
# Defaults to 'true'
#
# [*log_facility*]
# (Optional) Syslog facility to receive log lines.
# Defaults to 'LOG_USER'
#
# [*log_dir*]
# (optional) Directory where logs should be stored.
# If set to boolean false, it will not log to any directory.
# Defaults to '/var/log/ceilometer'
#
# [*logging_context_format_string*]
# (optional) Format string to use for log messages with context.
# Defaults to undef.
@ -66,6 +91,12 @@
# Example: 'Y-%m-%d %H:%M:%S'
class ceilometer::logging(
$use_syslog = false,
$use_stderr = true,
$log_facility = 'LOG_USER',
$log_dir = '/var/log/ceilometer',
$verbose = false,
$debug = false,
$logging_context_format_string = undef,
$logging_default_format_string = undef,
$logging_debug_format_suffix = undef,
@ -79,6 +110,24 @@ class ceilometer::logging(
$log_date_format = undef,
) {
# NOTE(spredzy): In order to keep backward compatibility we rely on the pick function
# to use ceilometer::<myparam> first then ceilometer::logging::<myparam>.
$use_syslog_real = pick($::ceilometer::use_syslog,$use_syslog)
$use_stderr_real = pick($::ceilometer::use_stderr,$use_stderr)
$log_facility_real = pick($::ceilometer::log_facility,$log_facility)
$log_dir_real = pick($::ceilometer::log_dir,$log_dir)
$verbose_real = pick($::ceilometer::verbose,$verbose)
$debug_real = pick($::ceilometer::debug,$debug)
ceilometer_config {
'DEFAULT/debug' : value => $debug_real;
'DEFAULT/verbose' : value => $verbose_real;
'DEFAULT/use_stderr' : value => $use_stderr_real;
'DEFAULT/use_syslog' : value => $use_syslog_real;
'DEFAULT/log_dir' : value => $log_dir_real;
'DEFAULT/syslog_log_facility': value => $log_facility_real;
}
if $logging_context_format_string {
ceilometer_config {
'DEFAULT/logging_context_format_string' :

View File

@ -88,6 +88,7 @@ describe 'ceilometer' do
shared_examples_for 'a ceilometer base installation' do
it { is_expected.to contain_class('ceilometer::logging') }
it { is_expected.to contain_class('ceilometer::params') }
it 'configures ceilometer group' do
@ -124,49 +125,10 @@ describe 'ceilometer' do
it { expect { is_expected.to raise_error(Puppet::Error) } }
end
it 'configures debug and verbosity' do
is_expected.to contain_ceilometer_config('DEFAULT/debug').with_value( params[:debug] )
is_expected.to contain_ceilometer_config('DEFAULT/verbose').with_value( params[:verbose] )
end
it 'configures use_stderr option' do
is_expected.to contain_ceilometer_config('DEFAULT/use_stderr').with_value( params[:use_stderr] )
end
it 'configures logging directory by default' do
is_expected.to contain_ceilometer_config('DEFAULT/log_dir').with_value( params[:log_dir] )
end
context 'with logging directory disabled' do
before { params.merge!( :log_dir => false) }
it { is_expected.to contain_ceilometer_config('DEFAULT/log_dir').with_ensure('absent') }
end
it 'configures notification_topics' do
is_expected.to contain_ceilometer_config('DEFAULT/notification_topics').with_value('notifications')
end
it 'configures syslog to be disabled by default' do
is_expected.to contain_ceilometer_config('DEFAULT/use_syslog').with_value('false')
end
context 'with syslog enabled' do
before { params.merge!( :use_syslog => 'true' ) }
it { is_expected.to contain_ceilometer_config('DEFAULT/use_syslog').with_value('true') }
it { is_expected.to contain_ceilometer_config('DEFAULT/syslog_log_facility').with_value('LOG_USER') }
end
context 'with syslog enabled and custom settings' do
before { params.merge!(
:use_syslog => 'true',
:log_facility => 'LOG_LOCAL0'
) }
it { is_expected.to contain_ceilometer_config('DEFAULT/use_syslog').with_value('true') }
it { is_expected.to contain_ceilometer_config('DEFAULT/syslog_log_facility').with_value('LOG_LOCAL0') }
end
context 'with overriden notification_topics parameter' do
before { params.merge!( :notification_topics => ['notifications', 'custom']) }

View File

@ -24,11 +24,26 @@ describe 'ceilometer::logging' do
:instance_format => '[instance: %(uuid)s] ',
:instance_uuid_format => '[instance: %(uuid)s] ',
:log_date_format => '%Y-%m-%d %H:%M:%S',
:use_syslog => true,
:use_stderr => false,
:log_facility => 'LOG_FOO',
:log_dir => '/var/log',
:verbose => true,
:debug => true,
}
end
shared_examples_for 'ceilometer-logging' do
context 'with basic logging options and default settings' do
it_configures 'basic default logging settings'
end
context 'with basic logging options and non-default settings' do
before { params.merge!( log_params ) }
it_configures 'basic non-default logging settings'
end
context 'with extended logging options' do
before { params.merge!( log_params ) }
it_configures 'logging params set'
@ -40,6 +55,27 @@ describe 'ceilometer::logging' do
end
shared_examples 'basic default logging settings' do
it 'configures ceilometer logging settins with default values' do
is_expected.to contain_ceilometer_config('DEFAULT/use_syslog').with(:value => 'false')
is_expected.to contain_ceilometer_config('DEFAULT/use_stderr').with(:value => 'true')
is_expected.to contain_ceilometer_config('DEFAULT/log_dir').with(:value => '/var/log/ceilometer')
is_expected.to contain_ceilometer_config('DEFAULT/verbose').with(:value => 'false')
is_expected.to contain_ceilometer_config('DEFAULT/debug').with(:value => 'false')
end
end
shared_examples 'basic non-default logging settings' do
it 'configures ceilometer logging settins with non-default values' do
is_expected.to contain_ceilometer_config('DEFAULT/use_syslog').with(:value => 'true')
is_expected.to contain_ceilometer_config('DEFAULT/use_stderr').with(:value => 'false')
is_expected.to contain_ceilometer_config('DEFAULT/syslog_log_facility').with(:value => 'LOG_FOO')
is_expected.to contain_ceilometer_config('DEFAULT/log_dir').with(:value => '/var/log')
is_expected.to contain_ceilometer_config('DEFAULT/verbose').with(:value => 'true')
is_expected.to contain_ceilometer_config('DEFAULT/debug').with(:value => 'true')
end
end
shared_examples_for 'logging params set' do
it 'enables logging params' do
is_expected.to contain_ceilometer_config('DEFAULT/logging_context_format_string').with_value(