Puppet Class: heat::cron::purge_deleted

Inherits:
heat::params
Defined in:
manifests/cron/purge_deleted.pp

Overview

Class: heat::cron::purge_deleted

Installs a cron job to purge db entries marked as deleted and older than $age. Default will be 1 day.

Parameters

[*ensure*]
  (optional) Defaults to present.
  Valid values are present, absent.

[*minute*]
  (optional) Defaults to '1'.

[*hour*]
  (optional) Defaults to '0'.

[*monthday*]
  (optional) Defaults to '*'.

[*month*]
  (optional) Defaults to '*'.

[*weekday*]
  (optional) Defaults to '*'.

[*maxdelay*]
  (optional) Seconds. Defaults to 0. 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.

[*user*]
  (optional) User with access to heat files.
  Defaults to $::heat::params::user.

[*age*]
  (optional) Age value for $age_type.
  Defaults to '1'.

[*age_type*]
  (optional) Age type.
  Can be days, hours, minutes, seconds
  Defaults to 'days'.

[*destination*]
  (optional) Path to file to which rows should be archived
  Defaults to '/var/log/heat/heat-purge_deleted.log'.

[*batch_size*]
  (optional) Number of stacks to delete at a time (per transaction).
  Defaults to undef.

Parameters:

  • ensure (Any) (defaults to: present)
  • minute (Any) (defaults to: 1)
  • hour (Any) (defaults to: 0)
  • monthday (Any) (defaults to: '*')
  • month (Any) (defaults to: '*')
  • weekday (Any) (defaults to: '*')
  • maxdelay (Any) (defaults to: 0)
  • user (Any) (defaults to: $::heat::params::user)
  • age (Any) (defaults to: 1)
  • age_type (Any) (defaults to: 'days')
  • destination (Any) (defaults to: '/var/log/heat/heat-purge_deleted.log')
  • batch_size (Any) (defaults to: undef)


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
# File 'manifests/cron/purge_deleted.pp', line 53

class heat::cron::purge_deleted (
  $ensure      = present,
  $minute      = 1,
  $hour        = 0,
  $monthday    = '*',
  $month       = '*',
  $weekday     = '*',
  $maxdelay    = 0,
  $user        = $::heat::params::user,
  $age         = 1,
  $age_type    = 'days',
  $destination = '/var/log/heat/heat-purge_deleted.log',
  $batch_size  = undef,
) inherits heat::params {

  if ! member(['days', 'hours', 'minutes', 'seconds'], $age_type) {
    fail('age_type possible values are only days, hours, minutes, or seconds.')
  }

  if $maxdelay == 0 {
    $sleep = ''
  } else {
    $sleep = "sleep `expr \${RANDOM} \\% ${maxdelay}`; "
  }

  if $batch_size != undef {
    $batch_size_opt = "-b ${batch_size} "
  } else {
    $batch_size_opt = ''
  }

  cron { 'heat-manage purge_deleted':
    ensure      => $ensure,
    command     => "${sleep}heat-manage purge_deleted -g ${age_type} ${age} ${batch_size_opt}>>${destination} 2>&1",
    environment => 'PATH=/bin:/usr/bin:/usr/sbin SHELL=/bin/sh',
    user        => $user,
    minute      => $minute,
    hour        => $hour,
    monthday    => $monthday,
    month       => $month,
    weekday     => $weekday,
    require     => Anchor['heat::dbsync::end']
  }
}