Allow configuration of limit of batch size for exirer

Adds new configuration option for panko-expirer for limiting detele
batch size.

Change-Id: I7ca0ab9e42352645e463c49f8ce58793115543c0
This commit is contained in:
Martin Magr 2020-09-23 11:17:17 +02:00 committed by Tobias Urdin
parent 0c2d356aea
commit 89c3f384f0
3 changed files with 27 additions and 9 deletions

View File

@ -30,6 +30,10 @@
# all cron jobs at the same time on all hosts this job is configured.
# Defaults to 0.
#
# [*events_delete_batch_size*]
# (optional) Limit number of deleted events in single purge run.
# Defaults to $::os_service_default.
#
# DEPRECATED PARAMETERS
#
# [*enable_cron*]
@ -38,13 +42,14 @@
# Defaults to undef,
#
class panko::expirer (
$ensure = 'present',
$minute = 1,
$hour = 0,
$monthday = '*',
$month = '*',
$weekday = '*',
$maxdelay = 0,
$ensure = 'present',
$minute = 1,
$hour = 0,
$monthday = '*',
$month = '*',
$weekday = '*',
$maxdelay = 0,
$events_delete_batch_size = $::os_service_default,
# DEPRECATED PARAMETERS
$enable_cron = undef,
) {
@ -71,6 +76,10 @@ in a future release. Use panko::expirer::ensure instead')
$sleep = "sleep `expr \${RANDOM} \\% ${maxdelay}`; "
}
panko_config { 'database/events_delete_batch_size':
value => $events_delete_batch_size
}
cron { 'panko-expirer':
ensure => $ensure_real,
command => "${sleep}${panko::params::expirer_command}",

View File

@ -0,0 +1,6 @@
---
features:
- |
Added events_delete_batch_size parameter to the expirer class to enable configuration
of the parameter with same name. It serves the purpose of limiting number of deleted
events in single purge run.

View File

@ -9,6 +9,7 @@ describe 'panko::expirer' do
context 'with default' do
it { is_expected.to contain_class('panko::deps') }
it { is_expected.to contain_class('panko::params') }
it { is_expected.to contain_panko_config('database/events_delete_batch_size').with_value('<SERVICE DEFAULT>') }
it { is_expected.to contain_cron('panko-expirer').with(
:ensure => 'present',
@ -27,13 +28,15 @@ describe 'panko::expirer' do
context 'with overridden parameters' do
before do
params.merge!(
:ensure => 'absent',
:maxdelay => 300
:ensure => 'absent',
:maxdelay => 300,
:events_delete_batch_size => 500
)
end
it { is_expected.to contain_class('panko::deps') }
it { is_expected.to contain_class('panko::params') }
it { is_expected.to contain_panko_config('database/events_delete_batch_size').with_value(500) }
it { is_expected.to contain_cron('panko-expirer').with(
:ensure => 'absent',