summaryrefslogtreecommitdiff
path: root/manifests/plugin.pp
diff options
context:
space:
mode:
authormh <mh@immerda.ch>2013-11-03 18:21:57 +0100
committermh <mh@immerda.ch>2013-11-03 18:21:57 +0100
commit3064a5d5a6251f84cf4d115be1711266faf7ed13 (patch)
treebb2d0e2bdfb12c4062ccf69077f88a63569bd85e /manifests/plugin.pp
parentad37140f6123c0e85cfbeb23dee5b3ea3c324701 (diff)
fix #26 - do not manage files of a plugin if it should be absent
The directories are recursively managed and will purge these files anyway and trigger a proper restart. Like that we can safe a few resources in our catalog.
Diffstat (limited to 'manifests/plugin.pp')
-rw-r--r--manifests/plugin.pp74
1 files changed, 31 insertions, 43 deletions
diff --git a/manifests/plugin.pp b/manifests/plugin.pp
index 60af877..ef82f90 100644
--- a/manifests/plugin.pp
+++ b/manifests/plugin.pp
@@ -1,55 +1,43 @@
# configure a specific munin plugin
+#
+# We only manage the plugin if it is not set to absent.
+# A plugin (or its config) that should be removed should
+# be purged by the recursively managed plugins- or
+# config-directory. So we can safe a few resources being
+# managed.
define munin::plugin (
$ensure = 'present',
$script_path_in = '',
- $config = ''
+ $config = '',
) {
- include munin::plugin::scriptpaths
- $real_script_path = $script_path_in ? { '' => $munin::plugin::scriptpaths::script_path, default => $script_path_in }
-
- $plugin_src = $ensure ? { 'present' => $name, default => $ensure }
- $plugin = "/etc/munin/plugins/${name}"
- $plugin_conf = "/etc/munin/plugin-conf.d/${name}.conf"
+ if $ensure != 'absent' {
+ include munin::plugin::scriptpaths
+ include munin::plugins::setup
+ $real_script_path = $script_path_in ? {
+ '' => $munin::plugin::scriptpaths::script_path,
+ default => $script_path_in
+ }
+ $plugin_src = $ensure ? {
+ 'present' => $name,
+ default => $ensure
+ }
- include munin::plugins::setup
- case $ensure {
- 'absent': {
- file { $plugin: ensure => absent, }
+ file { "/etc/munin/plugins/${name}":
+ ensure => link,
+ target =>"${real_script_path}/${plugin_src}",
+ notify => Service['munin-node'];
}
- default: {
- $dep = $::kernel ? {
- OpenBSD => File['/var/run/munin'],
- default => Package['munin-node']
- }
- file { $plugin:
- ensure => "${real_script_path}/${plugin_src}",
- require => $dep,
- notify => Service['munin-node'];
+ if (str2bool($::selinux) == true) and (($::operatingsystem != 'CentOS') or ($::operatingsystem == 'CentOS' and $::lsbmajdistrelease != '5')){
+ File["/etc/munin/plugins/${name}"]{
+ seltype => 'munin_etc_t',
}
- if (str2bool($::selinux) == true) and (($::operatingsystem != 'CentOS') or ($::operatingsystem == 'CentOS' and $::lsbmajdistrelease != '5')){
- File[$plugin]{
- seltype => 'munin_etc_t',
- }
- }
- }
- }
- case $config {
- '': {
- file { $plugin_conf: ensure => absent }
}
- default: {
- case $ensure {
- absent: {
- file { $plugin_conf: ensure => absent }
- }
- default: {
- file { $plugin_conf:
- content => "[${name}]\n${config}\n",
- owner => root,
- group => 0,
- mode => '0640',
- }
- }
+ if $config != '' {
+ file { "/etc/munin/plugin-conf.d/${name}.conf":
+ content => "[${name}]\n${config}\n",
+ owner => root,
+ group => 0,
+ mode => '0640',
}
}
}