Puppet Class: nova::cron::purge_shadow_tables

Defined in:
manifests/cron/purge_shadow_tables.pp

Overview

Parameters:

  • minute (Any) (defaults to: 0)
  • hour (Any) (defaults to: 5)
  • monthday (Any) (defaults to: '*')
  • month (Any) (defaults to: '*')
  • weekday (Any) (defaults to: '*')
  • user (Any) (defaults to: undef)
  • destination (Any) (defaults to: '/var/log/nova/nova-rowspurge.log')
  • age (Any) (defaults to: 14)
  • all_cells (Any) (defaults to: false)
  • verbose (Any) (defaults to: false)
  • maxdelay (Any) (defaults to: 0)


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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# File 'manifests/cron/purge_shadow_tables.pp', line 65

class nova::cron::purge_shadow_tables (
  $minute       = 0,
  $hour         = 5,
  $monthday     = '*',
  $month        = '*',
  $weekday      = '*',
  $user         = undef,
  $destination  = '/var/log/nova/nova-rowspurge.log',
  $age          = 14,
  $all_cells    = false,
  $verbose      = false,
  $maxdelay     = 0,
) {

  include nova::deps
  include nova::params

  if $verbose {
    $verbose_real = ' --verbose'
  }
  else {
    $verbose_real = ''
  }

  if $all_cells {
    $all_cells_real = ' --all-cells'
  }
  else {
    $all_cells_real = ''
  }

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

  $cron_cmd = 'nova-manage db purge'

  cron { 'nova-manage db purge':
    # lint:ignore:140chars
    command     => "${delay_cmd}${cron_cmd} --before `date --date='today - ${age} days' +\\%D`${verbose_real}${all_cells_real} >>${destination} 2>&1",
    # lint:endignore
    environment => 'PATH=/bin:/usr/bin:/usr/sbin SHELL=/bin/sh',
    user        => pick($user, $::nova::params::nova_user),
    minute      => $minute,
    hour        => $hour,
    monthday    => $monthday,
    month       => $month,
    weekday     => $weekday,
    require     => Anchor['nova::dbsync::end']
  }
}