Browse Source

Adding CompatLogger object. #7225.

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

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

refs#7225: https://dev.icinga.org/issues/7225
ricardo@cropalato.com.br 9 years ago
parent
commit
b15b7fbaaa
3 changed files with 90 additions and 0 deletions
  1. 15 0
      README.md
  2. 51 0
      manifests/object/compatlogger.pp
  3. 24 0
      templates/object_compatlogger.conf.erb

+ 15 - 0
README.md

@@ -365,6 +365,7 @@ Object types:
 * [icinga2::object::applynotificationtohost](#icinga2objectapplynotificationtohost)
 * [icinga2::object::applynotificationtoservice](#icinga2objectapplynotificationtoservice)
 * [icinga2::object::checkcommand](#icinga2objectcheckcommand)
+* [icinga2::object::compatlogger](#icinga2objectcompatlogger)
 * [icinga2::object::eventcommand](#icinga2objecteventcommand)
 * [icinga2::object::externalcommandlistener](#icinga2objectexternalcommandlistener)
 * [icinga2::object::host](#icinga2objecthost)
@@ -506,6 +507,20 @@ Available parameters are:
 * `target_file_group`
 * `target_file_mode`
 
+####`icinga2::object::compatlogger`
+
+The `compatlogger` defined type can create `compatlogger` objects.
+
+<pre>
+icinga2::object::compatlogger { 'daily-log':
+  log_dir         => '/var/log/icinga2/compat',
+  rotation_method => 'DAILY'
+}
+</pre>
+
+Both patameters as optionals. The parameter `rotation_method` can one of `HOURLY`, `DAILY`, `WEEKLY` or `MONTHY`.
+See [CompatLogger](http://docs.icinga.org/icinga2/latest/doc/module/icinga2/chapter/configuring-icinga2#objecttype-compatlogger) on [docs.icinga.org](http://docs.icinga.org/icinga2/latest/doc/module/icinga2/toc) for a full list of parameters.
+
 ####`icinga2::object::eventcommand`
 
 The `eventcommand` defined type can create `eventcommand` objects.

+ 51 - 0
manifests/object/compatlogger.pp

@@ -0,0 +1,51 @@
+# == Defined type: icinga2::object::compatlogger
+#
+# This is a defined type for Icinga 2 apply objects that create Compat Logger
+# See the following Icinga 2 doc page for more info:
+# http://docs.icinga.org/icinga2/latest/doc/module/icinga2/chapter/configuring-icinga2#objecttype-compatlogger
+#
+# === Parameters
+#
+# See the inline comments.
+#
+
+define icinga2::object::compatlogger (
+  $ensure                  = 'file',
+  $object_compatloggername = $name,
+  $log_dir                 = undef,
+  $rotation_method         = undef,
+  $target_dir              = '/etc/icinga2/objects/compatloggers',
+  $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:
+  if $object_compatloggername {
+    validate_string($object_compatloggername)
+  }
+  if $log_dir {
+    validate_string($log_dir)
+  }
+  if $rotation_method {
+    validate_string($rotation_method)
+  }
+  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  => $target_file_ensure,
+    owner   => $target_file_owner,
+    group   => $target_file_group,
+    mode    => $target_file_mode,
+    content => template('icinga2/object_compatlogger.conf.erb'),
+    notify  => Service['icinga2'],
+  }
+
+}

+ 24 - 0
templates/object_compatlogger.conf.erb

@@ -0,0 +1,24 @@
+/**
+* WARNING: This CompatLogger definition is automatically generated by Puppet.
+* ANY MANUAL CHANGES TO IT WILL GET OVERWRITTEN!
+*/
+
+/**
+* A CompatLogger definition. You can create your own configuration files
+* in the conf.d directory (e.g. one per commnand). By default all *.conf
+* files in this directory are included.
+*
+*/
+
+library "compat"
+
+object CompatLogger "<%= @object_compatloggername %>" {
+  <%#- If any of the @ parameters are undefined, don't print anything for them: -%>
+  <%- if @log_dir -%>
+
+  log_dir = "<%= @log_dir %>"
+  <%- end -%>
+  <%- if @rotation_method -%>
+  rotation_method = "<%= @rotation_method %>"
+  <%- end -%>
+}