]> review.fuel-infra Code Review - puppet-modules/puppet-ceilometer.git/commitdiff
expirer: remove the crontab if enable_cron is False
authorEmilien Macchi <emilien@redhat.com>
Thu, 18 May 2017 20:16:40 +0000 (16:16 -0400)
committerEmilien Macchi <emilien@redhat.com>
Thu, 18 May 2017 20:16:40 +0000 (16:16 -0400)
Allow to let Puppet removing the crontab when
ceilometer::expirer::enable_cron is set to False.
It's useful when you want to upgrade from Ocata to Pike and you want the
crontab to be removed, since ceilometer-expirer is deprecated in Pike.

Change-Id: I1eb243be7bbc38ab5977bcf6a649e98eb6ff77f7

manifests/expirer.pp
releasenotes/notes/ceilo-expirer-3b86bfc71c21aa08.yaml [new file with mode: 0644]
spec/classes/ceilometer_expirer_spec.rb

index 7ffd3140c43449b1a31372d2e42ad7daa04b2097..b69db8ab88340379b0116a78b13a425d1d79081e 100644 (file)
@@ -23,6 +23,8 @@
 #
 #  [*enable_cron*]
 #    (optional) Whether to configure a crontab entry to run the expiry.
+#    When set to False, Puppet will try to remove the crontab.
+#    It's useful when we upgrade from Ocata to Pike and want to remove it.
 #    Defaults to true.
 #
 #  [*minute*]
@@ -54,16 +56,21 @@ class ceilometer::expirer (
   Anchor['ceilometer::install::end'] ~> Class['ceilometer::expirer']
 
   if $enable_cron {
-    cron { 'ceilometer-expirer':
-      command     => $ceilometer::params::expirer_command,
-      environment => 'PATH=/bin:/usr/bin:/usr/sbin SHELL=/bin/sh',
-      user        => 'ceilometer',
-      minute      => $minute,
-      hour        => $hour,
-      monthday    => $monthday,
-      month       => $month,
-      weekday     => $weekday
-    }
+    $ensure = 'present'
+  } else {
+    $ensure = 'absent'
+  }
+
+  cron { 'ceilometer-expirer':
+    ensure      => $ensure,
+    command     => $ceilometer::params::expirer_command,
+    environment => 'PATH=/bin:/usr/bin:/usr/sbin SHELL=/bin/sh',
+    user        => 'ceilometer',
+    minute      => $minute,
+    hour        => $hour,
+    monthday    => $monthday,
+    month       => $month,
+    weekday     => $weekday
   }
 
 }
diff --git a/releasenotes/notes/ceilo-expirer-3b86bfc71c21aa08.yaml b/releasenotes/notes/ceilo-expirer-3b86bfc71c21aa08.yaml
new file mode 100644 (file)
index 0000000..55d3c8a
--- /dev/null
@@ -0,0 +1,5 @@
+---
+upgrade:
+  - When ceilometer::expirer::enable_cron is set to False, Puppet will
+    try to remove the crontab. It's useful when you upgrade from Ocata
+    to Pike and you want the crontab to be removed (the service is deprecated).
index bd1c5aef9e1af0a974ad8db6f5e01235d5ff9d7b..e354a0ec549581c57d3a999aa0280f83acea48eb 100644 (file)
@@ -44,6 +44,7 @@ describe 'ceilometer::expirer' do
 
     it 'configures a cron' do
       is_expected.to contain_cron('ceilometer-expirer').with(
+        :ensure      => 'present',
         :command     => 'ceilometer-expirer',
         :environment => 'PATH=/bin:/usr/bin:/usr/sbin SHELL=/bin/sh',
         :user        => 'ceilometer',
@@ -60,7 +61,19 @@ describe 'ceilometer::expirer' do
         params.merge!({
           :enable_cron => false })
       end
-      it { is_expected.to_not contain_cron('ceilometer-expirer') }
+      it {
+        is_expected.to contain_cron('ceilometer-expirer').with(
+          :ensure      => 'absent',
+          :command     => 'ceilometer-expirer',
+          :environment => 'PATH=/bin:/usr/bin:/usr/sbin SHELL=/bin/sh',
+          :user        => 'ceilometer',
+          :minute      => 1,
+          :hour        => 0,
+          :monthday    => '*',
+          :month       => '*',
+          :weekday     => '*'
+        )
+      }
     end
 
   end