فهرست منبع

Add a target_file_ensure parameter to each object type and pass it through to the underlying file resource. The parameter default values are 'file', but having the ensure => parameter of the underlying file type be settable by the user lets people do things like setting target_file_ensure to absent so that they can remove object files via Puppet (instead of manually).

refs#7716 : https://dev.icinga.org/issues/7716
Nick Chappell 9 سال پیش
والد
کامیت
a00eecec25

+ 2 - 1
manifests/object/apply_dependency.pp

@@ -25,6 +25,7 @@ define icinga2::object::apply_dependency (
   $ignore_where          = undef,
   $target_dir            = '/etc/icinga2/conf.d',
   $target_file_name      = "${name}.conf",
+  $target_file_ensure    = file,
   $target_file_owner     = 'root',
   $target_file_group     = 'root',
   $target_file_mode      = '0644') {
@@ -49,7 +50,7 @@ define icinga2::object::apply_dependency (
   validate_re($object_type, ['^Host', '^Service'])
 
   file { "${target_dir}/${target_file_name}":
-    ensure  => file,
+    ensure  => $target_file_ensure,
     owner   => $target_file_owner,
     group   => $target_file_group,
     mode    => $target_file_mode,

+ 2 - 1
manifests/object/apply_notification_to_host.pp

@@ -26,6 +26,7 @@ define icinga2::object::apply_notification_to_host (
   $states                  = [],
   $target_dir              = '/etc/icinga2/objects/applys',
   $target_file_name        = "${name}.conf",
+  $target_file_ensure      = file,
   $target_file_owner       = 'root',
   $target_file_group       = 'root',
   $target_file_mode        = '0644'
@@ -54,7 +55,7 @@ define icinga2::object::apply_notification_to_host (
   validate_re($target_file_mode, '^\d{4}$')
 
   file { "${target_dir}/${target_file_name}":
-    ensure  => file,
+    ensure  => $target_file_ensure,
     owner   => $target_file_owner,
     group   => $target_file_group,
     mode    => $target_file_mode,

+ 2 - 1
manifests/object/apply_notification_to_service.pp

@@ -27,6 +27,7 @@ define icinga2::object::apply_notification_to_service (
   $states                  = [],
   $target_dir              = '/etc/icinga2/objects/applys',
   $target_file_name        = "${name}.conf",
+  $target_file_ensure      = file,
   $target_file_owner       = 'root',
   $target_file_group       = 'root',
   $target_file_mode        = '0644'
@@ -56,7 +57,7 @@ define icinga2::object::apply_notification_to_service (
   validate_re($target_file_mode, '^\d{4}$')
 
   file { "${target_dir}/${target_file_name}":
-    ensure  => file,
+    ensure  => $target_file_ensure,
     owner   => $target_file_owner,
     group   => $target_file_group,
     mode    => $target_file_mode,

+ 7 - 6
manifests/object/apply_service_to_host.pp

@@ -37,11 +37,12 @@ define icinga2::object::apply_service_to_host (
   $action_url = undef,
   $icon_image = undef,
   $icon_image_alt = undef,
-  $target_dir        = '/etc/icinga2/conf.d',
-  $target_file_name  = "${name}.conf",
-  $target_file_owner = 'root',
-  $target_file_group = 'root',
-  $target_file_mode  = '0644'
+  $target_dir         = '/etc/icinga2/conf.d',
+  $target_file_name   = "${name}.conf",
+  $target_file_ensure = file,  
+  $target_file_owner  = 'root',
+  $target_file_group  = 'root',
+  $target_file_mode   = '0644'
 ) {
 
   #Do some validation of the class' parameters:
@@ -57,7 +58,7 @@ define icinga2::object::apply_service_to_host (
 
 
   file {"${target_dir}/${target_file_name}":
-    ensure  => file,
+    ensure  => $target_file_ensure,
     owner   => $target_file_owner,
     group   => $target_file_group,
     mode    => $target_file_mode,

+ 3 - 2
manifests/object/checkcommand.pp

@@ -25,6 +25,7 @@ define icinga2::object::checkcommand (
   $checkcommand_source_file              = undef,
   $checkcommand_file_distribution_method = 'content',
   $target_file_name                      = "${name}.conf",
+  $target_file_ensure                    = file,
   $target_file_owner                     = 'root',
   $target_file_group                     = 'root',
   $target_file_mode                      = '0644',
@@ -53,7 +54,7 @@ define icinga2::object::checkcommand (
 
   if $checkcommand_file_distribution_method == 'content' {
     file {"${target_dir}/${target_file_name}":
-      ensure  => file,
+      ensure  => $target_file_ensure,
       owner   => $target_file_owner,
       group   => $target_file_group,
       mode    => $target_file_mode,
@@ -63,7 +64,7 @@ define icinga2::object::checkcommand (
   }
   elsif $checkcommand_file_distribution_method == 'source' {
     file {"${target_dir}/${target_file_name}":
-      ensure => file,
+      ensure  => $target_file_ensure,
       owner  => $target_file_owner,
       group  => $target_file_group,
       mode   => $target_file_mode,

+ 2 - 1
manifests/object/dependency.pp

@@ -22,6 +22,7 @@ define icinga2::object::dependency (
   $states                = [],
   $target_dir            = '/etc/icinga2/conf.d',
   $target_file_name      = "${name}.conf",
+  $target_file_ensure    = file,
   $target_file_owner     = 'root',
   $target_file_group     = 'root',
   $target_file_mode      = '0644') {
@@ -44,7 +45,7 @@ define icinga2::object::dependency (
   validate_string($target_file_mode)
 
   file { "${target_dir}/${target_file_name}":
-    ensure  => file,
+    ensure  => $target_file_ensure,
     owner   => $target_file_owner,
     group   => $target_file_group,
     mode    => $target_file_mode,

+ 13 - 12
manifests/object/eventcommand.pp

@@ -13,17 +13,18 @@ define icinga2::object::eventcommand (
   $object_eventcommandname = $name,
   $template_to_import = 'plugin-event-command',
 /*  $methods           = undef, */ /* Need to get more details about this attribute */
-  $command           = undef,
-  $cmd_path          = 'PluginDir',
-  $arguments         = {},
-  $env               = {},
-  $vars              = {},
-  $timeout           = undef,
-  $target_dir        = '/etc/icinga2/objects/eventcommands',
-  $target_file_name  = "${name}.conf",
-  $target_file_owner = 'root',
-  $target_file_group = 'root',
-  $target_file_mode  = '0644'
+  $command            = undef,
+  $cmd_path           = 'PluginDir',
+  $arguments          = {},
+  $env                = {},
+  $vars               = {},
+  $timeout            = undef,
+  $target_dir         = '/etc/icinga2/objects/eventcommands',
+  $target_file_name   = "${name}.conf",
+  $target_file_ensure = file,
+  $target_file_owner  = 'root',
+  $target_file_group  = 'root',
+  $target_file_mode   = '0644'
 ) {
 
   #Do some validation of the class' parameters:
@@ -45,7 +46,7 @@ define icinga2::object::eventcommand (
 
 
   file {"${target_dir}/${target_file_name}":
-    ensure  => file,
+    ensure  => $target_file_ensure,
     owner   => $target_file_owner,
     group   => $target_file_group,
     mode    => $target_file_mode,

+ 2 - 1
manifests/object/externalcommandlistener.pp

@@ -15,6 +15,7 @@ define icinga2::object::externalcommandlistener (
   $command_path                       = undef,
   $target_dir                         = '/etc/icinga2/objects/externalcommandlisteners',
   $target_file_name                   = "${name}.conf",
+  $target_file_ensure                 = file,
   $target_file_owner                  = 'root',
   $target_file_group                  = 'root',
   $target_file_mode                   = '0644'
@@ -35,7 +36,7 @@ define icinga2::object::externalcommandlistener (
 
 
   file {"${target_dir}/${target_file_name}":
-    ensure  => $ensure,
+    ensure  => $target_file_ensure,
     owner   => $target_file_owner,
     group   => $target_file_group,
     mode    => $target_file_mode,

+ 2 - 1
manifests/object/graphitewriter.pp

@@ -16,6 +16,7 @@ define icinga2::object::graphitewriter (
   #since the Graphite writer feature is one that has to be explicitly enabled.
   $target_dir           = '/etc/icinga2/features-available',
   $target_file_name     = "${name}.conf",
+  $target_file_ensure   = file,
   $target_file_owner    = 'root',
   $target_file_group    = 'root',
   $target_file_mode     = '0644'
@@ -25,7 +26,7 @@ define icinga2::object::graphitewriter (
   validate_string($host)
 
   file {"${target_dir}/${target_file_name}":
-    ensure => file,
+    ensure  => $target_file_ensure,
     owner   => $target_file_owner,
     group   => $target_file_group,
     mode    => $target_file_mode,

+ 2 - 1
manifests/object/host.pp

@@ -39,6 +39,7 @@ define icinga2::object::host (
   $icon_image_alt = undef,
   $target_dir = '/etc/icinga2/conf.d',
   $target_file_name = "${fqdn}.conf",
+  $target_file_ensure = file,
   $target_file_owner = 'root',
   $target_file_group = 'root',
   $target_file_mode = '0644'
@@ -58,7 +59,7 @@ define icinga2::object::host (
   validate_string($target_file_mode)
 
   file {"${target_dir}/${target_file_name}":
-    ensure  => file,
+    ensure  => $target_file_ensure,
     owner   => $target_file_owner,
     group   => $target_file_group,
     mode    => $target_file_mode,

+ 2 - 1
manifests/object/hostgroup.pp

@@ -16,6 +16,7 @@ define icinga2::object::hostgroup (
   $groups = [],
   $target_dir = '/etc/icinga2/conf.d',
   $target_file_name = "${name}.conf",
+  $target_file_ensure = file,
   $target_file_owner = 'root',
   $target_file_group = 'root',
   $target_file_mode = '0644',
@@ -35,7 +36,7 @@ define icinga2::object::hostgroup (
   validate_string($target_file_mode)
 
   file {"${target_dir}/${target_file_name}":
-    ensure  => file,
+    ensure  => $target_file_ensure,
     owner   => $target_file_owner,
     group   => $target_file_group,
     mode    => $target_file_mode,

+ 2 - 1
manifests/object/idomysqlconnection.pp

@@ -38,6 +38,7 @@ define icinga2::object::idomysqlconnection (
   },
   $categories           = [],
   $target_dir           = '/etc/icinga2/conf.d',
+  $target_file_ensure   = file, 
   $target_file_name     = "${name}.conf",
   $target_file_owner    = 'root',
   $target_file_group    = 'root',
@@ -62,7 +63,7 @@ define icinga2::object::idomysqlconnection (
   validate_string($target_file_mode)
 
   file {"${target_dir}/${target_file_name}":
-    ensure  => file,
+    ensure  => $target_file_ensure,
     owner   => $target_file_owner,
     group   => $target_file_group,
     mode    => $target_file_mode,

+ 2 - 1
manifests/object/idopgsqlconnection.pp

@@ -39,6 +39,7 @@ define icinga2::object::idopgsqlconnection (
   $categories           = [],
   $target_dir           = '/etc/icinga2/conf.d',
   $target_file_name     = "${name}.conf",
+  $target_file_ensure   = file,
   $target_file_owner    = 'root',
   $target_file_group    = 'root',
   $target_file_mode     = '0644'
@@ -62,7 +63,7 @@ define icinga2::object::idopgsqlconnection (
   validate_string($target_file_mode)
 
   file {"${target_dir}/${target_file_name}":
-    ensure  => file,
+    ensure  => $target_file_ensure,
     owner   => $target_file_owner,
     group   => $target_file_group,
     mode    => $target_file_mode,

+ 2 - 2
manifests/object/livestatuslistener.pp

@@ -10,7 +10,6 @@
 #
 
 define icinga2::object::livestatuslistener (
-  $ensure                         = 'file',
   $object_livestatuslistenername = $name,
   $socket_type                    = undef,
   $bind_host                      = undef,
@@ -19,6 +18,7 @@ define icinga2::object::livestatuslistener (
   $compat_log_path                = undef,
   $target_dir                     = '/etc/icinga2/objects/livestatuslisteners',
   $target_file_name               = "${name}.conf",
+  $target_file_ensure             = file,
   $target_file_owner              = 'root',
   $target_file_group              = 'root',
   $target_file_mode               = '0644'
@@ -51,7 +51,7 @@ define icinga2::object::livestatuslistener (
 
 
   file {"${target_dir}/${target_file_name}":
-    ensure  => $ensure,
+    ensure  => $target_file_ensure,
     owner   => $target_file_owner,
     group   => $target_file_group,
     mode    => $target_file_mode,

+ 2 - 1
manifests/object/notification.pp

@@ -24,6 +24,7 @@ define icinga2::object::notification (
   $states                  = [],
   $target_dir              = '/etc/icinga2/objects/notifications',
   $target_file_name        = "${name}.conf",
+  $target_file_ensure      = file,
   $target_file_owner       = 'root',
   $target_file_group       = 'root',
   $target_file_mode        = '0644'
@@ -68,7 +69,7 @@ define icinga2::object::notification (
 
 
   file {"${target_dir}/${target_file_name}":
-    ensure  => file,
+    ensure  => $target_file_ensure,
     owner   => $target_file_owner,
     group   => $target_file_group,
     mode    => $target_file_mode,

+ 13 - 12
manifests/object/notificationcommand.pp

@@ -13,17 +13,18 @@ define icinga2::object::notificationcommand (
   $object_notificationcommandname = $name,
   $template_to_import = 'plugin-notification-command',
 /*  $methods           = undef, */ /* Need to get more details about this attribute */
-  $command           = undef,
-  $cmd_path          = 'PluginDir',
-  $arguments         = {},
-  $env               = {},
-  $vars              = {},
-  $timeout           = undef,
-  $target_dir        = '/etc/icinga2/objects/notificationcommands',
-  $target_file_name  = "${name}.conf",
-  $target_file_owner = 'root',
-  $target_file_group = 'root',
-  $target_file_mode  = '0644'
+  $command            = undef,
+  $cmd_path           = 'PluginDir',
+  $arguments          = {},
+  $env                = {},
+  $vars               = {},
+  $timeout            = undef,
+  $target_dir         = '/etc/icinga2/objects/notificationcommands',
+  $target_file_name   = "${name}.conf",
+  $target_file_ensure = file,
+  $target_file_owner  = 'root',
+  $target_file_group  = 'root',
+  $target_file_mode   = '0644'
 ) {
 
   #Do some validation of the class' parameters:
@@ -45,7 +46,7 @@ define icinga2::object::notificationcommand (
 
 
   file {"${target_dir}/${target_file_name}":
-    ensure  => file,
+    ensure  => $target_file_ensure,
     owner   => $target_file_owner,
     group   => $target_file_group,
     mode    => $target_file_mode,

+ 2 - 1
manifests/object/perfdatawriter.pp

@@ -21,6 +21,7 @@ define icinga2::object::perfdatawriter (
   $rotation_interval         = undef,
   $target_dir                = '/etc/icinga2/objects/perfdatawriters',
   $target_file_name          = "${name}.conf",
+  $target_file_ensure        = file,
   $target_file_owner         = 'root',
   $target_file_group         = 'root',
   $target_file_mode          = '0644'
@@ -59,7 +60,7 @@ define icinga2::object::perfdatawriter (
 
 
   file {"${target_dir}/${target_file_name}":
-    ensure  => $ensure,
+    ensure  => $target_file_ensure,
     owner   => $target_file_owner,
     group   => $target_file_group,
     mode    => $target_file_mode,

+ 2 - 1
manifests/object/scheduleddowntime.pp

@@ -20,6 +20,7 @@ define icinga2::object::scheduleddowntime (
   $ranges                       = {},
   $target_dir                   = '/etc/icinga2/objects/scheduleddowntimes',
   $target_file_name             = "${name}.conf",
+  $target_file_ensure           = file,
   $target_file_owner            = 'root',
   $target_file_group            = 'root',
   $target_file_mode             = '0644'
@@ -43,7 +44,7 @@ define icinga2::object::scheduleddowntime (
   validate_string($target_file_mode)
 
   file {"${target_dir}/${target_file_name}":
-    ensure  => file,
+    ensure  => $target_file_ensure,
     owner   => $target_file_owner,
     group   => $target_file_group,
     mode    => $target_file_mode,

+ 7 - 6
manifests/object/service.pp

@@ -36,11 +36,12 @@ define icinga2::object::service (
   $action_url = undef,
   $icon_image = undef,
   $icon_image_alt = undef,
-  $target_dir        = '/etc/icinga2/conf.d',
-  $target_file_name  = "${name}.conf",
-  $target_file_owner = 'root',
-  $target_file_group = 'root',
-  $target_file_mode  = '0644'
+  $target_dir         = '/etc/icinga2/conf.d',
+  $target_file_name   = "${name}.conf",
+  $target_file_ensure = file,
+  $target_file_owner  = 'root',
+  $target_file_group  = 'root',
+  $target_file_mode   = '0644'
 ) {
 
   #Do some validation of the class' parameters:
@@ -57,7 +58,7 @@ define icinga2::object::service (
   validate_string($target_file_mode)
 
   file {"${target_dir}/${target_file_name}":
-    ensure  => file,
+    ensure  => $target_file_ensure,
     owner   => $target_file_owner,
     group   => $target_file_group,
     mode    => $target_file_mode,

+ 2 - 1
manifests/object/servicegroup.pp

@@ -16,6 +16,7 @@ define icinga2::object::servicegroup (
   $groups = [],
   $target_dir = '/etc/icinga2/conf.d',
   $target_file_name = "${name}.conf",
+   $target_file_ensure = file,
   $target_file_owner = 'root',
   $target_file_group = 'root',
   $target_file_mode = '0644',
@@ -35,7 +36,7 @@ define icinga2::object::servicegroup (
   validate_string($target_file_mode)
 
   file {"${target_dir}/${target_file_name}":
-    ensure  => file,
+    ensure  => $target_file_ensure,
     owner   => $target_file_owner,
     group   => $target_file_group,
     mode    => $target_file_mode,

+ 2 - 2
manifests/object/statusdatawriter.pp

@@ -10,13 +10,13 @@
 #
 
 define icinga2::object::statusdatawriter (
-  $ensure                      = 'file',
   $object_statusdatawritername = $name,
   $status_path                 = undef,
   $objects_path                = undef,
   $update_interval             = undef,
   $target_dir                  = '/etc/icinga2/objects/statusdatawriters',
   $target_file_name            = "${name}.conf",
+  $target_file_ensure          = file,
   $target_file_owner           = 'root',
   $target_file_group           = 'root',
   $target_file_mode            = '0644'
@@ -43,7 +43,7 @@ define icinga2::object::statusdatawriter (
 
 
   file {"${target_dir}/${target_file_name}":
-    ensure  => $ensure,
+    ensure  => $target_file_ensure,
     owner   => $target_file_owner,
     group   => $target_file_group,
     mode    => $target_file_mode,

+ 2 - 1
manifests/object/sysloglogger.pp

@@ -14,6 +14,7 @@ define icinga2::object::sysloglogger (
   $severity = 'warning',
   $target_dir = '/etc/icinga2/conf.d',
   $target_file_name = "${name}.conf",
+  $target_file_ensure = file,
   $target_file_owner = 'root',
   $target_file_group = 'root',
   $target_file_mode = '0644'
@@ -29,7 +30,7 @@ define icinga2::object::sysloglogger (
   validate_string($target_file_mode)
 
   file {"${target_dir}/${target_file_name}":
-    ensure  => file,
+    ensure  => $target_file_ensure,
     owner   => $target_file_owner,
     group   => $target_file_group,
     mode    => $target_file_mode,

+ 2 - 1
manifests/object/timeperiod.pp

@@ -17,6 +17,7 @@ define icinga2::object::timeperiod (
   $ranges                        = {},
   $timeperiod_target_dir         = '/etc/icinga2/objects/timeperiods',
   $timeperiod_target_file_name   = "${name}.conf",
+  $target_file_ensure            = file,
   $target_file_owner             = 'root',
   $target_file_group             = 'root',
   $target_file_mode              = '0644',
@@ -37,7 +38,7 @@ define icinga2::object::timeperiod (
   validate_re($target_file_mode, '^\d{4}$')
 
   file {"${timeperiod_target_dir}/${timeperiod_target_file_name}":
-    ensure  => file,
+    ensure  => $target_file_ensure,
     owner   => $target_file_owner,
     group   => $target_file_group,
     mode    => $target_file_mode,

+ 2 - 1
manifests/object/user.pp

@@ -22,6 +22,7 @@ define icinga2::object::user (
   $states = [],
   $target_dir = '/etc/icinga2/conf.d',
   $target_file_name = "${name}.conf",
+  $target_file_ensure = file, 
   $target_file_owner = 'root',
   $target_file_group = 'root',
   $target_file_mode = '0644'
@@ -42,7 +43,7 @@ define icinga2::object::user (
   validate_string($target_file_mode)
 
   file {"${target_dir}/${target_file_name}":
-    ensure  => file,
+    ensure  => $target_file_ensure,
     owner   => $target_file_owner,
     group   => $target_file_group,
     mode    => $target_file_mode,

+ 2 - 1
manifests/object/usergroup.pp

@@ -16,6 +16,7 @@ define icinga2::object::usergroup (
   $groups = [],
   $target_dir = '/etc/icinga2/conf.d',
   $target_file_name = "${name}.conf",
+  $target_file_ensure = file,
   $target_file_owner = 'root',
   $target_file_group = 'root',
   $target_file_mode = '0644',
@@ -34,7 +35,7 @@ define icinga2::object::usergroup (
   validate_string($target_file_mode)
 
   file {"${target_dir}/${target_file_name}":
-    ensure  => file,
+    ensure  => $target_file_ensure,
     owner   => $target_file_owner,
     group   => $target_file_group,
     mode    => $target_file_mode,