From d9dd4512cacdaaa627e4f285586311bdb914396e Mon Sep 17 00:00:00 2001 From: Takashi Kajinami Date: Mon, 13 Mar 2023 19:33:49 +0900 Subject: [PATCH] Allow customizing status of cron job ... so that users can even remove the job. This follows what was added to puppet-nova by [1]. [1] https://review.opendev.org/c/openstack/puppet-nova/+/877096 Change-Id: I28ba3ff1804207c5f93bf3f5352c4257019b36df --- manifests/cron/db_purge.pp | 5 +++++ releasenotes/notes/cron-ensure-03e8480fc11340f9.yaml | 5 +++++ spec/classes/manila_cron_db_purge_spec.rb | 12 ++++++++++++ 3 files changed, 22 insertions(+) create mode 100644 releasenotes/notes/cron-ensure-03e8480fc11340f9.yaml diff --git a/manifests/cron/db_purge.pp b/manifests/cron/db_purge.pp index bc0266f7..3a008cd1 100644 --- a/manifests/cron/db_purge.pp +++ b/manifests/cron/db_purge.pp @@ -54,6 +54,9 @@ # all cron jobs at the same time on all hosts this job is configured. # Defaults to 0. # +# [*ensure*] +# (optional) Ensure cron jobs present or absent +# Defaults to present. # class manila::cron::db_purge ( $minute = 1, @@ -65,6 +68,7 @@ class manila::cron::db_purge ( $age = 0, $destination = '/var/log/manila/manila-rowsflush.log', $maxdelay = 0, + Enum['present', 'absent'] $ensure = 'present', ) inherits manila::params { include manila::deps @@ -76,6 +80,7 @@ class manila::cron::db_purge ( } cron { 'manila-manage db purge': + ensure => $ensure, command => "${sleep}manila-manage db purge ${age} >>${destination} 2>&1", environment => 'PATH=/bin:/usr/bin:/usr/sbin SHELL=/bin/sh', user => $user, diff --git a/releasenotes/notes/cron-ensure-03e8480fc11340f9.yaml b/releasenotes/notes/cron-ensure-03e8480fc11340f9.yaml new file mode 100644 index 00000000..b90fc312 --- /dev/null +++ b/releasenotes/notes/cron-ensure-03e8480fc11340f9.yaml @@ -0,0 +1,5 @@ +--- +features: + - | + The new ``manila::cron::db_purge::ensure`` parameter has been added, so + that status of the cron job can be customized. diff --git a/spec/classes/manila_cron_db_purge_spec.rb b/spec/classes/manila_cron_db_purge_spec.rb index b3ef8e47..8e3b2f29 100644 --- a/spec/classes/manila_cron_db_purge_spec.rb +++ b/spec/classes/manila_cron_db_purge_spec.rb @@ -18,6 +18,7 @@ describe 'manila::cron::db_purge' do shared_examples 'manila::cron::db_purge' do context 'with required parameters' do it { is_expected.to contain_cron('manila-manage db purge').with( + :ensure => :present, :command => "manila-manage db purge #{params[:age]} >>#{params[:destination]} 2>&1", :environment => 'PATH=/bin:/usr/bin:/usr/sbin SHELL=/bin/sh', :user => params[:user], @@ -30,6 +31,16 @@ describe 'manila::cron::db_purge' do )} end + context 'with ensure set to absent' do + before :each do + params.merge!( + :ensure => :absent + ) + end + + it { should contain_cron('manila-manage db purge').with_ensure(:absent) } + end + context 'with required parameters with max delay enabled' do before :each do params.merge!( @@ -38,6 +49,7 @@ describe 'manila::cron::db_purge' do end it { should contain_cron('manila-manage db purge').with( + :ensure => :present, :command => "sleep `expr ${RANDOM} \\% #{params[:maxdelay]}`; manila-manage db purge #{params[:age]} >>#{params[:destination]} 2>&1", :environment => 'PATH=/bin:/usr/bin:/usr/sbin SHELL=/bin/sh', :user => params[:user],