[icinga-checkins] icinga.org: puppet-icinga2/master: adding defined type to apply notifiation to service

git at icinga.org git at icinga.org
Mon Nov 17 06:37:39 CET 2014


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

Author: Steven Bambling <smbambling at gmail.com>
Date:   Thu Nov 13 09:06:55 2014 -0500

adding defined type to apply notifiation to service

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

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

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

---

 manifests/object/apply_notification_to_service.pp |   66 +++++++++++++++++++++
 1 file changed, 66 insertions(+)

diff --git a/manifests/object/apply_notification_to_service.pp b/manifests/object/apply_notification_to_service.pp
new file mode 100644
index 0000000..ddaed1d
--- /dev/null
+++ b/manifests/object/apply_notification_to_service.pp
@@ -0,0 +1,66 @@
+# == Defined type: icinga2::object::apply_notification_to_service
+#
+#  This is a defined type for Icinga 2 apply dependency objects.
+# See the following Icinga 2 doc page for more info:
+# http://docs.icinga.org/icinga2/latest/doc/module/icinga2/chapter/configuring-icinga2#objecttype-notification
+# http://docs.icinga.org/icinga2/latest/doc/module/icinga2/chapter/configuring-icinga2#apply
+#
+# === Parameters
+#
+# See the inline comments.
+#
+
+define icinga2::object::apply_notification_to_service (
+  $object_notificationname = $name,
+  $host_name               = undef,
+  $notification_to_import  = undef,
+  $assign_where            = undef,
+  $ignore_where            = undef,
+  $command                 = undef,
+  $vars                    = {},
+  $users                   = [],
+  $user_groups             = [],
+  $times                   = {},
+  $interval                = undef,
+  $period                  = undef,
+  $types                   = [],
+  $states                  = [],
+  $target_dir              = '/etc/icinga2/objects/applys',
+  $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_notificationname)
+  validate_string($host_name)
+  validate_string($notification_to_import)
+  validate_string($command)
+  validate_hash($vars)
+  validate_array($users)
+  validate_array($user_groups)
+  validate_hash($times)
+  if $interval {
+    validate_re($interval, '^\d$')
+  }
+  if $period {
+    validate_string($period)
+  }
+  validate_array($types)
+  validate_array($states)
+  validate_string($target_dir)
+  validate_string($target_file_name)
+  validate_string($target_file_owner)
+  validate_string($target_file_group)
+  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('icinga2/object_apply_notification_to_service.conf.erb'),
+    notify  => Service['icinga2'],
+  }
+}



More information about the icinga-checkins mailing list