summaryrefslogtreecommitdiff
path: root/manifests/service.pp
diff options
context:
space:
mode:
Diffstat (limited to 'manifests/service.pp')
-rw-r--r--manifests/service.pp114
1 files changed, 60 insertions, 54 deletions
diff --git a/manifests/service.pp b/manifests/service.pp
index 71f78b0..134d1f7 100644
--- a/manifests/service.pp
+++ b/manifests/service.pp
@@ -1,82 +1,88 @@
define nagios::service (
- $ensure = present,
- $host_name = $::fqdn,
- $check_command,
- $check_period = '',
- $normal_check_interval = '',
- $retry_check_interval = '',
- $max_check_attempts = '',
- $notification_interval = '',
- $notification_period = '',
- $notification_options = '',
- $contact_groups = '',
- $use = 'generic-service',
- $service_description = 'absent',
- $use_nrpe = '',
- $nrpe_args = '',
- $nrpe_timeout = 10 )
-{
+ $ensure = present,
+ $host_name = $::fqdn,
+ $check_command = 'absent',
+ $check_period = '',
+ $normal_check_interval = '',
+ $retry_check_interval = '',
+ $max_check_attempts = '',
+ $notification_interval = '',
+ $notification_period = '',
+ $notification_options = '',
+ $contact_groups = '',
+ $use = 'generic-service',
+ $service_description = 'absent',
+ $use_nrpe = '',
+ $nrpe_args = '',
+ $nrpe_timeout = 10
+) {
- # TODO: this resource should normally accept all nagios_host parameters
+ # TODO: this resource should normally accept all nagios_host parameters
- $real_name = "${::hostname}_${name}"
+ $real_name = "${::hostname}_${name}"
- if ($use_nrpe == 'true') {
- include nagios::command::nrpe_timeout
+ @@nagios_service { "${real_name}":
+ ensure => $ensure,
+ notify => Service[nagios];
+ }
- if ($nrpe_args != '') {
- $real_check_command = "check_nrpe_timeout!$nrpe_timeout!$check_command!\"$nrpe_args\""
- }
- else {
- $real_check_command = "check_nrpe_1arg_timeout!$nrpe_timeout!$check_command"
- }
+ if $ensure != 'absent' {
+ if $check_comand == 'absent' {
+ fail("Must pass a check_command to ${name} if it should be present")
}
- else {
- $real_check_command = "$check_command"
+ if ($use_nrpe == 'true') {
+ include nagios::command::nrpe_timeout
+
+ if ($nrpe_args != '') {
+ $real_check_command = "check_nrpe_timeout!$nrpe_timeout!$check_command!\"$nrpe_args\""
+ } else {
+ $real_check_command = "check_nrpe_1arg_timeout!$nrpe_timeout!$check_command"
+ }
+ } else {
+ $real_check_command = "$check_command"
}
- @@nagios_service { "${real_name}":
- ensure => $ensure,
- check_command => $real_check_command,
- host_name => $host_name,
- use => $use,
- notify => Service[nagios],
- service_description => $service_description ?{
- 'absent' => $name,
- default => $service_description
- }
+ Nagios_service["${real_name}"] {
+ check_command => $check_command,
+ host_name => $host_name,
+ use => $use,
+ service_description => $service_description ?{
+ 'absent' => $name,
+ default => $service_description
+ }
}
if ($check_period != '') {
- Nagios_service["${real_name}"] { check_period => $check_period }
+ Nagios_service["${real_name}"] { check_period => $check_period }
}
-
+
if ($normal_check_interval != '') {
- Nagios_service["${real_name}"] { normal_check_interval => $normal_check_interval }
+ Nagios_service["${real_name}"] { normal_check_interval => $normal_check_interval }
}
-
+
if ($retry_check_interval != '') {
- Nagios_service["${real_name}"] { retry_check_interval => $retry_check_interval }
+ Nagios_service["${real_name}"] { retry_check_interval => $retry_check_interval }
}
-
+
if ($max_check_attempts != '') {
- Nagios_service["${real_name}"] { max_check_attempts => $max_check_attempts }
+ Nagios_service["${real_name}"] { max_check_attempts => $max_check_attempts }
}
-
+
if ($notification_interval != '') {
- Nagios_service["${real_name}"] { notification_interval => $notification_interval }
+ Nagios_service["${real_name}"] { notification_interval => $notification_interval }
}
-
+
if ($notification_period != '') {
- Nagios_service["${real_name}"] { notification_period => $notification_period }
+ Nagios_service["${real_name}"] { notification_period => $notification_period }
}
-
+
if ($notification_options != '') {
- Nagios_service["${real_name}"] { notification_options => $notification_options }
+ Nagios_service["${real_name}"] { notification_options => $notification_options }
}
-
+
if ($contact_groups != '') {
- Nagios_service["${real_name}"] { contact_groups => $contact_groups }
+ Nagios_service["${real_name}"] { contact_groups => $contact_groups }
}
+ }
}