File: expirer.pp

package info (click to toggle)
puppet-module-panko 18.4.0-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 672 kB
  • sloc: ruby: 1,578; python: 37; sh: 10; makefile: 10
file content (96 lines) | stat: -rw-r--r-- 2,380 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#
# == Class: panko::expirer
#
# Setups Panko Expirer service to enable TTL feature.
#
# === Parameters
#
#  [*ensure*]
#    (optional) The state of cron job.
#    Defaults to present.
#
#  [*minute*]
#    (optional) Defaults to '1'.
#
#  [*hour*]
#    (optional) Defaults to '0'.
#
#  [*monthday*]
#    (optional) Defaults to '*'.
#
#  [*month*]
#    (optional) Defaults to '*'.
#
#  [*weekday*]
#    (optional) Defaults to '*'.
#
#  [*maxdelay*]
#    (optional) In Seconds. Should be a positive integer.
#    Induces a random delay before running the cronjob to avoid running
#    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*]
#    (optional) Whether to configure a crontab entry to run the expiry.
#    When set to False, Puppet will try to remove the crontab.
#    Defaults to undef,
#
class panko::expirer (
  $ensure                   = 'present',
  $minute                   = 1,
  $hour                     = 0,
  $monthday                 = '*',
  $month                    = '*',
  $weekday                  = '*',
  $maxdelay                 = 0,
  $events_delete_batch_size = $::os_service_default,
  # DEPRECATED PARAMETERS
  $enable_cron = undef,
) {

  include panko::params
  include panko::deps

  if $enable_cron != undef {
    warning('The panko::expirer::enable_cron is deprecated and will be removed \
in a future release. Use panko::expirer::ensure instead')

    if $enable_cron {
      $ensure_real = 'present'
    } else {
      $ensure_real = 'absent'
    }
  } else {
    $ensure_real = $ensure
  }

  if $maxdelay == 0 {
    $sleep = ''
  } else {
    $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}",
    environment => 'PATH=/bin:/usr/bin:/usr/sbin SHELL=/bin/sh',
    user        => 'panko',
    minute      => $minute,
    hour        => $hour,
    monthday    => $monthday,
    month       => $month,
    weekday     => $weekday,
    require     => Anchor['panko::install::end'],
  }

}