summaryrefslogtreecommitdiff
path: root/puppet/modules/nagios/manifests/service/http.pp
blob: b80c140e0f77744bbe1dffa0435bb6550d2ea6fc (plain)
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
# ssl_mode:
#   - false: only check http
#   - true: check http and https
#   - force: http is permanent redirect to https
#   - only: check only https
define nagios::service::http(
  $ensure       = present,
  $check_domain = 'absent',
  $port     = '80',
  $check_url    = '/',
  $check_code   = '200,301,302',
  $use      = 'generic-service',
  $ssl_mode     = false
){
  $real_check_domain = $check_domain ? {
      'absent'  => $name,
      default   => $check_domain
  }
  if is_hash($check_code) {
    $check_code_hash = $check_code
  } else {
    $check_code_hash = {
      http  => $check_code,
      https => $check_code,
    }
  }
  case $ssl_mode {
    'force',true,'only': {
      nagios::service{"https_${name}":
        ensure        => $ensure,
        use           => $use,
        check_command => "check_https_url_regex!${real_check_domain}!${check_url}!'${check_code_hash[https]}'",
      }
      case $ssl_mode {
        'force': {
          nagios::service{"http_${name}":
            ensure        => $ensure,
            use           => $use,
            check_command => "check_http_url_regex!${real_check_domain}!${port}!${check_url}!'301'",
          }
        }
      }
    }
  }
  case $ssl_mode {
    false,true: {
      nagios::service{"http_${name}":
        ensure        => $ensure,
        use           => $use,
        check_command => "check_http_url_regex!${real_check_domain}!${port}!${check_url}!'${check_code_hash[http]}'",
      }
    }
  }
}