From d0509f6107ce95dfa1b3abdea709d92d54168ffc Mon Sep 17 00:00:00 2001 From: mh Date: Wed, 14 Nov 2012 08:52:19 +0100 Subject: make it possible to not pass check_command if service should be absent --- manifests/service.pp | 89 +++++++++++++++++++++++++++++----------------------- 1 file changed, 49 insertions(+), 40 deletions(-) (limited to 'manifests/service.pp') diff --git a/manifests/service.pp b/manifests/service.pp index a739317..d200416 100644 --- a/manifests/service.pp +++ b/manifests/service.pp @@ -1,65 +1,74 @@ 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' ) + $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' ) { - # 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}" - @@nagios_service { "${real_name}": - ensure => $ensure, - check_command => $check_command, - host_name => $host_name, - use => $use, - notify => Service[nagios], - service_description => $service_description ?{ - 'absent' => $name, - default => $service_description - } + @@nagios_service { "${real_name}": + ensure => $ensure, + notify => Service[nagios]; + } + + if $ensure != 'absent' { + if $check_comand == 'absent' { + fail("Must pass a check_command to ${name} if it should be present") } - if ($check_period != '') { - Nagios_service["${real_name}"] { check_period => $check_period } + 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 } + } + 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 } } + } } -- cgit v1.2.3 From bf6856e3b55e2353efc3c2c0fcd278aa0018521d Mon Sep 17 00:00:00 2001 From: mh Date: Wed, 14 Nov 2012 08:54:23 +0100 Subject: we should then set a default --- manifests/service.pp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'manifests/service.pp') diff --git a/manifests/service.pp b/manifests/service.pp index d200416..9eb993e 100644 --- a/manifests/service.pp +++ b/manifests/service.pp @@ -1,7 +1,7 @@ define nagios::service ( $ensure = present, $host_name = $::fqdn, - $check_command, + $check_command = 'absent', $check_period = '', $normal_check_interval = '', $retry_check_interval = '', -- cgit v1.2.3