]> git.donarmstrong.com Git - dsa-puppet.git/blob - 3rdparty/modules/keystone/manifests/cron/token_flush.pp
add stackforge/keystone to 3rdparty
[dsa-puppet.git] / 3rdparty / modules / keystone / manifests / cron / token_flush.pp
1 #
2 # Copyright (C) 2014 eNovance SAS <licensing@enovance.com>
3 #
4 # Author: Emilien Macchi <emilien.macchi@enovance.com>
5 #
6 # Licensed under the Apache License, Version 2.0 (the "License"); you may
7 # not use this file except in compliance with the License. You may obtain
8 # a copy of the License at
9 #
10 #      http://www.apache.org/licenses/LICENSE-2.0
11 #
12 # Unless required by applicable law or agreed to in writing, software
13 # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
14 # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
15 # License for the specific language governing permissions and limitations
16 # under the License.
17 #
18 # == Class: keystone::cron::token_flush
19 #
20 # Installs a cron job to purge expired tokens.
21 #
22 # === Parameters
23 #
24 #  [*ensure*]
25 #    (optional) Defaults to present.
26 #    Valid values are present, absent.
27 #
28 #  [*minute*]
29 #    (optional) Defaults to '1'.
30 #
31 #  [*hour*]
32 #    (optional) Defaults to '0'.
33 #
34 #  [*monthday*]
35 #    (optional) Defaults to '*'.
36 #
37 #  [*month*]
38 #    (optional) Defaults to '*'.
39 #
40 #  [*weekday*]
41 #    (optional) Defaults to '*'.
42 #
43 #  [*maxdelay*]
44 #    (optional) Seconds. Defaults to 0. Should be a positive integer.
45 #    Induces a random delay before running the cronjob to avoid running all
46 #    cron jobs at the same time on all hosts this job is configured.
47 #
48 class keystone::cron::token_flush (
49   $ensure   = present,
50   $minute   = 1,
51   $hour     = 0,
52   $monthday = '*',
53   $month    = '*',
54   $weekday  = '*',
55   $maxdelay = 0,
56 ) {
57
58   if $maxdelay == 0 {
59     $sleep = ''
60   } else {
61     $sleep = "sleep `expr \${RANDOM} \\% ${maxdelay}`; "
62   }
63
64   cron { 'keystone-manage token_flush':
65     ensure      => $ensure,
66     command     => "${sleep}keystone-manage token_flush >>/var/log/keystone/keystone-tokenflush.log 2>&1",
67     environment => 'PATH=/bin:/usr/bin:/usr/sbin SHELL=/bin/sh',
68     user        => 'keystone',
69     minute      => $minute,
70     hour        => $hour,
71     monthday    => $monthday,
72     month       => $month,
73     weekday     => $weekday
74   }
75 }