]> review.fuel-infra Code Review - puppet-modules/puppet-ceilometer.git/commitdiff
Remove log_dir from params and make logs configurable in init
authorDavid Moreau Simard <dmsimard@iweb.com>
Tue, 21 Jan 2014 18:30:02 +0000 (13:30 -0500)
committerDavid Moreau Simard <dmsimard@iweb.com>
Thu, 23 Jan 2014 20:21:24 +0000 (15:21 -0500)
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

manifests/init.pp
manifests/params.pp
spec/classes/ceilometer_init_spec.rb

index e1c7899f7b8ba47ea0c7bf53abc01a964ba579d3..5488144dad7e7d9cd821f1ff058fc731e9eb7eed 100644 (file)
@@ -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)
 class ceilometer(
   $metering_secret    = false,
   $package_ensure     = 'present',
-  $verbose            = 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;
+    }
+  }
+
 }
index 0024d8554b8f61f767ffce630bcb661bbb1db4f2..c240bb9da90ef613ce660755d4f3130214c576e5 100644 (file)
@@ -3,7 +3,6 @@
 class ceilometer::params {
 
   $dbsync_command  = 'ceilometer-dbsync --config-file=/etc/ceilometer/ceilometer.conf'
-  $log_dir         = '/var/log/ceilometer'
   $expirer_command = 'ceilometer-expirer'
 
   case $::osfamily {
index 08ad98ce7ec78e6b210d5fa30f74380f10b85b42..2db479400f3b186b8e6568accad5dc78ee533d06 100644 (file)
@@ -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