bc599f0118
When removing a cron resource by setting it absent, it must continue to specify the user if it wasn't root (the default) since crontabs are per-user files. Change-Id: Id68051821b0cca8bbf3e90446f5d915ac9d32be4
65 lines
1.7 KiB
Puppet
65 lines
1.7 KiB
Puppet
# == Class: gerrit::cron
|
|
#
|
|
class gerrit::cron (
|
|
$replicate_local = true,
|
|
$replicate_path = '/opt/lib/git',
|
|
# run `git repack` on gerrit repos by default, set true run `git gc` instead
|
|
$gitgc_repos = false,
|
|
) {
|
|
|
|
if $gitgc_repos {
|
|
$git_cmd = 'gc'
|
|
} else {
|
|
$git_cmd = 'repack -afd'
|
|
}
|
|
|
|
cron { 'gerrit_repack':
|
|
ensure => absent,
|
|
user => 'gerrit2',
|
|
}
|
|
cron { 'optimize_git_repo':
|
|
user => 'gerrit2',
|
|
weekday => '0',
|
|
hour => '4',
|
|
minute => '7',
|
|
command => "find /home/gerrit2/review_site/git/ -type d -name \"*.git\" -print -exec git --git-dir=\"{}\" ${git_cmd} \\;",
|
|
environment => 'PATH=/usr/bin:/bin:/usr/sbin:/sbin',
|
|
}
|
|
|
|
# if local replication is enabled, optimize this mirror as well
|
|
if $replicate_local {
|
|
cron { 'mirror_repack_local':
|
|
ensure => absent,
|
|
user => 'gerrit2',
|
|
}
|
|
cron { 'optimize_git_repo_local_replication':
|
|
user => 'gerrit2',
|
|
weekday => '0',
|
|
hour => '4',
|
|
minute => '17',
|
|
command => "find ${replicate_path} -type d -name \"*.git\" -print -exec git --git-dir=\"{}\" ${git_cmd} \\;",
|
|
environment => 'PATH=/usr/bin:/bin:/usr/sbin:/sbin',
|
|
}
|
|
}
|
|
|
|
cron { 'expireoldreviews':
|
|
ensure => 'absent',
|
|
user => 'gerrit2',
|
|
}
|
|
|
|
cron { 'removedbdumps':
|
|
ensure => 'absent',
|
|
user => 'gerrit2',
|
|
}
|
|
|
|
cron { 'clear_gerrit_logs':
|
|
# Gerrit rotates their own logs, but doesn't clean them out
|
|
# Delete logs older than a month
|
|
user => 'gerrit2',
|
|
hour => '6',
|
|
minute => '1',
|
|
command => 'find /home/gerrit2/review_site/logs/*.gz -mtime +30 -exec rm -f {} \;',
|
|
environment => 'PATH=/usr/bin:/bin:/usr/sbin:/sbin',
|
|
}
|
|
}
|