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
|
# Class: zookeeper::post_install
#
# In order to maintain compatibility with older releases, there are
# some post-install task to ensure same behaviour on all platforms.
#
# PRIVATE CLASS - do not use directly (use main `zookeeper` class).
class zookeeper::post_install inherits zookeeper {
if ($::zookeeper::manual_clean) {
# User defined value
$_clean = $::zookeeper::manual_clean
} else {
# Autodetect:
# Since ZooKeeper 3.4 there's no need for purging snapshots with cron
case $facts['os']['family'] {
'Debian': {
case $facts['os']['name'] {
'Debian': {
case $facts['os']['distro']['codename'] {
'wheezy', 'squeeze': { # 3.3.5
$_clean = true
}
default: { # future releases
$_clean = false
}
}
}
'Ubuntu': {
case $facts['os']['distro']['codename'] {
'precise': { # 3.3.5
$_clean = true
}
default: {
$_clean = false
}
}
}
default: {
fail ("Family: '${::facts['os']['family']}' OS: '${::facts['os']['distro']['codename']}' is not supported yet")
}
}
}
'Redhat': {
$_clean = false
}
default: {
fail ("Family: '${::facts['os']['family']}' OS: '${::facts['os']['distro']['codename']}' is not supported yet")
}
}
}
# If !$cleanup_count, then ensure this cron is absent.
if ($_clean and $::zookeeper::snap_retain_count > 0 and $::zookeeper::ensure != 'absent') {
if ($::zookeeper::ensure_cron){
ensure_resource('package', 'cron', {
ensure => 'installed',
})
cron { 'zookeeper-cleanup':
ensure => present,
command => "${::zookeeper::cleanup_sh} ${::zookeeper::datastore} ${::zookeeper::snap_retain_count}",
hour => 2,
minute => 42,
user => $::zookeeper::user,
}
}else {
file { '/etc/cron.daily/zkcleanup':
ensure => present,
content => "${::zookeeper::cleanup_sh} ${::zookeeper::datastore} ${::zookeeper::snap_retain_count}",
}
}
}
# Package removal
if($_clean and $::zookeeper::ensure == 'absent'){
if ($::zookeeper::ensure_cron){
cron { 'zookeeper-cleanup':
ensure => $::zookeeper::ensure,
}
}else{
file { '/etc/cron.daily/zkcleanup':
ensure => $::zookeeper::ensure,
}
}
}
}
|