fix path for munin-log file
[puppet_munin.git] / manifests / plugin.pp
1 # plugin.pp - configure a specific munin plugin
2 # Copyright (C) 2007 David Schmitt <david@schmitt.edv-bus.at>
3 # See LICENSE for the full license granted to you.
4 # adapted and improved by admin(at)immerda.ch
5
6 define munin::plugin (
7   $ensure = "present",
8   $script_path_in = '',
9   $config = ''
10 ) {
11   include munin::plugin::scriptpaths
12   $real_script_path = $script_path_in ? { '' => $munin::plugin::scriptpaths::script_path, default => $script_path_in }
13
14   $plugin_src = $ensure ? { "present" => $name, default => $ensure }
15   $plugin = "/etc/munin/plugins/${name}"
16   $plugin_conf = "/etc/munin/plugin-conf.d/${name}.conf"
17
18   include munin::plugins::setup
19   case $ensure {
20     "absent": {
21       file { $plugin: ensure => absent, }
22     }
23     default: {
24       file { $plugin:
25         ensure => "${real_script_path}/${plugin_src}",
26         require => $::kernel ? {
27           OpenBSD => File['/var/run/munin'],
28           default => Package['munin-node']
29         },
30         notify => Service['munin-node'];
31       }
32       if ($::selinux == 'true') and (($::operatingsystem != 'CentOS') or ($::operatingsystem == 'CentOS' and $::lsbmajdistrelease != '5')){
33         File[$plugin]{
34           seltype => 'munin_etc_t',
35         }
36       }
37     }
38   }
39   case $config {
40     '': {
41       file { $plugin_conf: ensure => absent }
42     }
43     default: {
44       case $ensure {
45         absent: {
46           file { $plugin_conf: ensure => absent }
47         }
48         default: {
49           file { $plugin_conf:
50             content => "[${name}]\n$config\n",
51             mode => 0644, owner => root, group => 0,
52           }
53         }
54       }
55     }
56   }
57 }