[icinga-checkins] icinga.org: puppet-icinga2/master: only check some params if the "default" erb template is used. Also allow for "static" templates and files to be set in pace of "default" erb

git at icinga.org git at icinga.org
Wed Nov 12 06:50:13 CET 2014


Module: puppet-icinga2
Branch: master
Commit: e7710c6d2dae86d94f1a23f5310f91f7db104ba6
URL:    https://git.icinga.org/?p=puppet-icinga2.git;a=commit;h=e7710c6d2dae86d94f1a23f5310f91f7db104ba6

Author: Steven Bambling <smbambling at gmail.com>
Date:   Thu Oct 23 13:19:46 2014 -0400

only check some params if the "default" erb template is used. Also allow for "static" templates and files to be set in pace of "default" erb

Signed-off-by: Nick Chappell <nick at intronic.org>

Merged from: https://github.com/Icinga/puppet-icinga2/pull/35

refs#7628: https://dev.icinga.org/issues/7628

---

 manifests/object/checkcommand.pp |   84 +++++++++++++++++++++++---------------
 1 file changed, 52 insertions(+), 32 deletions(-)

diff --git a/manifests/object/checkcommand.pp b/manifests/object/checkcommand.pp
index a270d39..d555841 100644
--- a/manifests/object/checkcommand.pp
+++ b/manifests/object/checkcommand.pp
@@ -11,34 +11,38 @@
 
 define icinga2::object::checkcommand (
   $object_checkcommandname = $name,
-  $template_to_import           = 'plugin-check-command',
-/*  $methods                    = undef, */ /* Need to get more details about this attribute */
-  $command                      = undef,
-  $cmd_path                     = 'PluginDir',
-  $arguments                    = {},
-  $env                          = undef,
-  $vars                         = {},
-  $timeout                      = undef,
-  $target_dir                   = '/etc/icinga2/objects/checkcommands',
-  $checkcommand_template_module = 'icinga2',
-  $checkcommand_template        = 'object_checkcommand.conf.erb',
-  $target_file_name             = "${name}.conf",
-  $target_file_owner            = 'root',
-  $target_file_group            = 'root',
-  $target_file_mode             = '0644'
+  $template_to_import                    = 'plugin-check-command',
+/*  $methods                             = undef, */ /* Need to get more details about this attribute */
+  $command                               = undef,
+  $cmd_path                              = 'PluginDir',
+  $arguments                             = {},
+  $env                                   = undef,
+  $vars                                  = {},
+  $timeout                               = undef,
+  $target_dir                            = '/etc/icinga2/objects/checkcommands',
+  $checkcommand_template_module          = 'icinga2',
+  $checkcommand_template                 = 'object_checkcommand.conf.erb',
+  $checkcommand_source_file              = undef,
+  $checkcommand_file_distribution_method = 'content',
+  $target_file_name                      = "${name}.conf",
+  $target_file_owner                     = 'root',
+  $target_file_group                     = 'root',
+  $target_file_mode                      = '0644',
 ) {
 
   #Do some validation of the class' parameters:
   validate_string($object_checkcommandname)
-  validate_string($template_to_import)
-  validate_array($command)
-  validate_string($cmd_path)
-  if $env {
-    validate_hash($env)
-  }
-  validate_hash($vars)
-  if $timeout {
-    validate_re($timeout, '^\d+$')
+  if $checkcommand_template == 'object_checkcommand.conf.erb' {
+    validate_string($template_to_import)
+    validate_array($command)
+    validate_string($cmd_path)
+    if $env {
+      validate_hash($env)
+    }
+    validate_hash($vars)
+    if $timeout {
+      validate_re($timeout, '^\d+$')
+    }
   }
   validate_string($target_dir)
   validate_string($target_file_name)
@@ -47,13 +51,29 @@ define icinga2::object::checkcommand (
   validate_re($target_file_mode, '^\d{4}$')
 
 
-  file {"${target_dir}/${target_file_name}":
-    ensure  => file,
-    owner   => $target_file_owner,
-    group   => $target_file_group,
-    mode    => $target_file_mode,
-    content => template("${checkcommand_template_module}/${checkcommand_template}"),
-    notify  => Service['icinga2'],
+  if $checkcommand_file_distribution_method == 'content' {
+    file {"${target_dir}/${target_file_name}":
+      ensure  => file,
+      owner   => $target_file_owner,
+      group   => $target_file_group,
+      mode    => $target_file_mode,
+      content => template("${checkcommand_template_module}/${checkcommand_template}"),
+      notify  => Service['icinga2'],
+    }
+  }
+  elsif $checkcommand_file_distribution_method == 'source' {
+    file {"${target_dir}/${target_file_name}":
+      ensure => file,
+      owner  => $target_file_owner,
+      group  => $target_file_group,
+      mode   => $target_file_mode,
+      source => $checkcommand_source_file,
+      notify => Service['icinga2'],
+    }
+  }
+  else {
+    notify {'Missing/Incorrect File Distribution Method':
+      message => 'The parameter checkcommand_file_distribution_method is missing or incorrect. Please set content or source',
+    }
   }
-
 }



More information about the icinga-checkins mailing list