From: David Moreau Simard Date: Tue, 21 Jan 2014 18:30:02 +0000 (-0500) Subject: Remove log_dir from params and make logs configurable in init X-Git-Tag: grizzly-eol^0 X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=76a2f518cea29d5ff251446bf5b2fd81f825d3d4;p=puppet-modules%2Fpuppet-ceilometer.git Remove log_dir from params and make logs configurable in init log_dir does not seem to be used in other classes. In the use case where it can be necessary to specify the location of ceilometer logs, this patch makes it possible to do so while maintaining the default for backwards compatibility. This patch also adds the possibility of sending logs to syslog/rsyslog in the same way as implemented in puppet-nova. Change-Id: I1f970d5e3cc947308221fb2b2cdfb34f89c64314 Partial-Bug: #1269482 (cherry picked from commit 3685997f0ed4a88d0ccacd0415b210a948c66910) --- diff --git a/manifests/init.pp b/manifests/init.pp index cacd5ca..3697762 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -7,10 +7,19 @@ # secret key for signing messages. Mandatory. # [*package_ensure*] # ensure state for package. Optional. Defaults to 'present' -# [*verbose*] -# should the daemons log verbose messages. Optional. Defaults to 'False' # [*debug*] # should the daemons log debug messages. Optional. Defaults to 'False' +# [*log_dir*] +# (optional) directory to which ceilometer logs are sent. +# Defaults to '/var/log/ceilometer' +# [*verbose*] +# should the daemons log verbose messages. Optional. Defaults to 'False' +# [*use_syslog*] +# (optional) Use syslog for logging +# Defaults to false +# [*log_facility*] +# (optional) Syslog facility to receive log lines. +# Defaults to 'LOG_USER' # [*rpc_backend*] # (optional) what rpc/queuing service to use # Defaults to impl_kombu (rabbitmq) @@ -48,8 +57,11 @@ class ceilometer( $metering_secret = false, $package_ensure = 'present', - $verbose = 'False', - $debug = 'False', + $debug = false, + $log_dir = '/var/log/ceilometer', + $verbose = false, + $use_syslog = false, + $log_facility = 'LOG_USER', $rpc_backend = 'ceilometer.openstack.common.rpc.impl_kombu', $rabbit_host = '127.0.0.1', $rabbit_port = 5672, @@ -168,8 +180,8 @@ class ceilometer( 'DEFAULT/rpc_backend' : value => $rpc_backend; 'DEFAULT/metering_secret' : value => $metering_secret; 'DEFAULT/debug' : value => $debug; + 'DEFAULT/log_dir' : value => $log_dir; 'DEFAULT/verbose' : value => $verbose; - 'DEFAULT/log_dir' : value => $::ceilometer::params::log_dir; # Fix a bad default value in ceilometer. # Fixed in https: //review.openstack.org/#/c/18487/ 'DEFAULT/glance_control_exchange': value => 'glance'; @@ -180,4 +192,16 @@ class ceilometer( value => 'notifications,glance_notifications'; } + # 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; + } + } + } diff --git a/manifests/params.pp b/manifests/params.pp index dbecc7b..51db676 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -2,9 +2,7 @@ # class ceilometer::params { - $dbsync_command = - 'ceilometer-dbsync --config-file=/etc/ceilometer/ceilometer.conf' - $log_dir = '/var/log/ceilometer' + $dbsync_command = 'ceilometer-dbsync --config-file=/etc/ceilometer/ceilometer.conf' case $::osfamily { 'RedHat': { diff --git a/spec/classes/ceilometer_init_spec.rb b/spec/classes/ceilometer_init_spec.rb index 9cca607..68e736c 100644 --- a/spec/classes/ceilometer_init_spec.rb +++ b/spec/classes/ceilometer_init_spec.rb @@ -6,8 +6,9 @@ describe 'ceilometer' do { :metering_secret => 'metering-s3cr3t', :package_ensure => 'present', - :verbose => 'False', :debug => 'False', + :log_dir => '/var/log/ceilometer', + :verbose => 'False', } end @@ -116,11 +117,33 @@ describe 'ceilometer' do it { expect { should raise_error(Puppet::Error) } } end - it 'configures debug and verbose' do + it 'configures logging, debug and verbosity' do should contain_ceilometer_config('DEFAULT/debug').with_value( params[:debug] ) + should contain_ceilometer_config('DEFAULT/log_dir').with_value( params[:log_dir] ) should contain_ceilometer_config('DEFAULT/verbose').with_value( params[:verbose] ) end + it 'configures syslog to be disabled by default' do + should contain_ceilometer_config('DEFAULT/use_syslog').with_value('false') + end + + context 'with syslog enabled' do + before { params.merge!( :use_syslog => 'true' ) } + + it { should contain_ceilometer_config('DEFAULT/use_syslog').with_value('true') } + it { should 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 { should contain_ceilometer_config('DEFAULT/use_syslog').with_value('true') } + it { should contain_ceilometer_config('DEFAULT/syslog_log_facility').with_value('LOG_LOCAL0') } + end + it 'fixes a bad value in ceilometer (glance_control_exchange)' do should contain_ceilometer_config('DEFAULT/glance_control_exchange').with_value('glance') end