File: repo.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 (135 lines) | stat: -rw-r--r-- 5,568 bytes parent folder | download | duplicates (3)
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
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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
# == Class zookeeper::install::repo
#
# This class manages yum repository for Zookeeper packages
#
# PRIVATE CLASS - do not use directly (use main `zookeeper` class).
class zookeeper::install::repo inherits zookeeper::install {

  if $::zookeeper::repo_source {
    case $::zookeeper::repo_source {
      undef: {} # nothing to do
      'cloudera': {
        if $::zookeeper::cdhver == undef {
          fail('Cloudera repo is required, but no CDH version is provided.')
        }
        $osrel = $::operatingsystemmajrelease
        case $::zookeeper::cdhver {
          '4': {
            case $::hardwaremodel {
              'i386', 'x86_64': {
                case $osrel {
                  '6', '7': {
                    $release = '6'
                  }
                  default: {
                    fail("Yum repository '${::zookeeper::repo_source}' is not supported for redhat version ${osrel}")
                  }
                }
              }
              default: {
                fail("Yum repository '${::zookeeper::repo_source}' is not supported for architecture ${::hardwaremodel}")
              }
            }
          }
          '5': {
            case $::hardwaremodel {
              'x86_64': {
                case $osrel { # CentOS uses osrel=2015
                  '6', '7', '2015': {
                    $release = $osrel
                  }
                  default: {
                    fail("Yum repository '${::zookeeper::repo_source}' is not supported for redhat version ${osrel}")
                  }
                }
              }
              default: {
                fail("Yum repository '${::zookeeper::repo_source}' is not supported for architecture ${::hardwaremodel}")
              }
            }
          }
          default: {
            fail("CDH version'${::zookeeper::cdhver}' is not a supported cloudera repo.")
          }
        }
        # Parameter ensure is not supported before Puppet 3.5
        # Puppet 4 compatibility: force variable to be a String
        if versioncmp("${::puppetversion}", '3.5.0') >= 0 { # lint:ignore:only_variable_string
          yumrepo { "cloudera-cdh${::zookeeper::cdhver}":
            ensure   => $::zookeeper::ensure,
            descr    => "Cloudera's Distribution for Hadoop, Version ${::zookeeper::cdhver}",
            baseurl  => "http://archive.cloudera.com/cdh${::zookeeper::cdhver}/redhat/${release}/${::hardwaremodel}/cdh/${::zookeeper::cdhver}/",
            gpgkey   => "http://archive.cloudera.com/cdh${::zookeeper::cdhver}/redhat/${release}/${::hardwaremodel}/cdh/RPM-GPG-KEY-cloudera",
            gpgcheck => 1
          }
        } else {
          yumrepo { "cloudera-cdh${::zookeeper::cdhver}":
            descr    => "Cloudera's Distribution for Hadoop, Version ${::zookeeper::cdhver}",
            baseurl  => "http://archive.cloudera.com/cdh${::zookeeper::cdhver}/redhat/${osrel}/${::hardwaremodel}/cdh/${::zookeeper::cdhver}/",
            gpgkey   => "http://archive.cloudera.com/cdh${::zookeeper::cdhver}/redhat/${osrel}/${::hardwaremodel}/cdh/RPM-GPG-KEY-cloudera",
            gpgcheck => 1
          }
        }
      }
      'custom':{
        $_config = $::zookeeper::repo
        validate_hash($_config)
        if $_config['name'] == undef or $_config['url'] == undef or $_config['descr'] == undef {
          fail('Invalid parameter settings for custom repo')
        }
        $osrel = $::operatingsystemmajrelease
        case $osrel {
          '6', '7': {
            # Puppet 4 compatibility: force variable to be a String
            if versioncmp("${::puppetversion}", '3.0.0') < 0 { # lint:ignore:only_variable_string
              # parameter 'sslverify' is not supported before puppet 3.0
              yumrepo { $_config['name']:
                descr    => $_config['descr'],
                baseurl  => $_config['url'],
                enabled  => 1,
                gpgcheck => 0
              }
            # Puppet 4 compatibility: force variable to be a String
            } elsif versioncmp("${::puppetversion}", '3.5.0') >= 0 { # lint:ignore:only_variable_string
              # Parameter ensure is not supported before Puppet 3.5
              yumrepo { $_config['name']:
                ensure    => $::zookeeper::ensure,
                descr     => $_config['descr'],
                baseurl   => $_config['url'],
                enabled   => 1,
                sslverify => empty($_config['sslverify']) ? {
                  true  => 0,
                  false => $_config['sslverify']
                },
                gpgcheck  => empty($_config['gpgcheck']) ? {
                  true  => 0,
                  false => $_config['gpgcheck']
                },
              }
            } else {
              yumrepo { $_config['name']:
                descr     => $_config['descr'],
                baseurl   => $_config['url'],
                enabled   => 1,
                sslverify => empty($_config['sslverify']) ? {
                  true  => 0,
                  false => $_config['sslverify']
                },
                gpgcheck  => empty($_config['gpgcheck']) ? {
                  true  => 0,
                  false => $_config['gpgcheck']
                },
              }
            }
          }
          default: {
            fail("Redhat '${osrel}' is not a supported.")
          }
        }
      }
      default: {
        fail("\"${module_name}\" provides no repository information for yum repository \"${::zookeeper::repo_source}\"")
      }
    }
  }
}