adding defined type to apply notifiation to service
Signed-off-by: Nick Chappell <nick@intronic.org> Merged this from: https://github.com/Icinga/puppet-icinga2/pull/44 refs#7677: https://dev.icinga.org/issues/7677
This commit is contained in:
parent
89b2ad2931
commit
9995a40747
1 changed files with 66 additions and 0 deletions
66
manifests/object/apply_notification_to_service.pp
Normal file
66
manifests/object/apply_notification_to_service.pp
Normal file
|
@ -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'],
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue