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

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

index cacd5ca56d2835b23cbb1102babfd5b1edad4cf1..3697762e3816555a1944fd2dd8da0c0ad71dba26 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',
+  $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 dbecc7bcfd3e2d6f46625ed7d75c5827204eee28..51db676610cd9f15827ca0b1d004f3a271b26a68 100644 (file)
@@ -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': {
index 9cca6075b42bba7a8b85d1b97db8d313f3433397..68e736cbacf53c4637320dcb4828614f7d9a55df 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