Puppet: make icinga2::feature disableable

This commit is contained in:
Alexander Klimov 2015-02-12 10:59:43 +01:00
parent 5c8aec0f2e
commit c1af7415e7
1 changed files with 12 additions and 19 deletions

View File

@ -10,29 +10,22 @@
#
# icinga2::feature { 'example-feature'; }
#
define icinga2::feature ($source = undef) {
define icinga2::feature ($ensure = 'present') {
include icinga2
$target = "features-available/${name}"
$cfgpath = '/etc/icinga2'
$path = "${cfgpath}/features-enabled/${name}.conf"
if $source != undef {
icinga2::config { $target:
source => $source,
}
$action = $ensure ? {
/(present)/ => 'enable',
/(absent)/ => 'disable',
}
$test = $ensure ? {
/(present)/ => '-e',
/(absent)/ => '! -e',
}
parent_dirs { $path:
user => 'icinga',
require => [
User['icinga'],
File['icinga2cfgDir']
],
}
-> file { $path:
ensure => link,
target => "${cfgpath}/${target}.conf",
exec { "icinga2-feature-${action}-${name}":
unless => "/usr/bin/test ${test} /etc/icinga2/features-enabled/${name}.conf",
command => "/usr/sbin/icinga2 feature ${action} ${name}",
require => Package['icinga2'],
notify => Service['icinga2'],
}
}