File: post_install.pp

package info (click to toggle)
puppet-module-deric-zookeeper 0.8.4-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 392 kB
  • sloc: ruby: 1,734; sh: 224; makefile: 10
file content (87 lines) | stat: -rw-r--r-- 2,620 bytes parent folder | download
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,
      }
    }
  }
}