Gehel has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/341782 )

Change subject: logrotate - introduce a generic logrotate template
......................................................................

logrotate - introduce a generic logrotate template

We seem to have a lot of logrotate templates, most of which are fairly
similar. We already have a logrotate module with a very basic defined
type which manages the creation of the logrotate configuration files but
not their content. It seems natural to extend this defined type to provide
a default template.

The approach taken here is to provide a set of parameters to configure
logrotate, but not to provide an open ended hash of parameters. This makes
the parameters more discoverable and ensures some validity checking.

Change-Id: Ic7b09086397d8b86fbcde3ceee1fa762c904b7f1
---
M modules/eventlogging/manifests/server.pp
D modules/eventlogging/templates/logrotate.erb
M modules/geoip/manifests/data/maxmind.pp
D modules/geoip/templates/geoipupdate.logrotate.erb
M modules/logrotate/manifests/conf.pp
5 files changed, 34 insertions(+), 31 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/puppet 
refs/changes/82/341782/1

diff --git a/modules/eventlogging/manifests/server.pp 
b/modules/eventlogging/manifests/server.pp
index 34bd6ec..ad4e5dc 100644
--- a/modules/eventlogging/manifests/server.pp
+++ b/modules/eventlogging/manifests/server.pp
@@ -105,9 +105,15 @@
     }
 
     logrotate::conf { 'eventlogging':
-        ensure  => present,
-        content => template('eventlogging/logrotate.erb'),
-        require => File[$log_dir],
+        ensure         => present,
+        file_pattern   => "${log_dir}/*.log",
+        not_if_empty   => true,
+        max_age        => 30,
+        rotate         => 2,
+        date_ext       => true,
+        compress       => true,
+        delay_compress => true,
+        missing_ok     => true,
     }
 
     # Temporary conditional while we migrate eventlogging service over to
diff --git a/modules/eventlogging/templates/logrotate.erb 
b/modules/eventlogging/templates/logrotate.erb
deleted file mode 100644
index 82e1271..0000000
--- a/modules/eventlogging/templates/logrotate.erb
+++ /dev/null
@@ -1,13 +0,0 @@
-# This file is managed by Puppet.
-# puppet:///eventlogging/logrotate.erb
-# Rotate eventlogging daemon runtime logs
-#
-<%= @log_dir %>/*.log {
-       notifempty
-       maxage 30
-       rotate 2
-       dateext
-       compress
-       delaycompress
-       missingok
-}
diff --git a/modules/geoip/manifests/data/maxmind.pp 
b/modules/geoip/manifests/data/maxmind.pp
index 570be56..6f1d3cd 100644
--- a/modules/geoip/manifests/data/maxmind.pp
+++ b/modules/geoip/manifests/data/maxmind.pp
@@ -90,8 +90,11 @@
 
   # logrotate for geoipupdate.log
   logrotate::conf { 'geoipupdate':
-    ensure  => present,
-    content => template('geoip/geoipupdate.logrotate.erb'),
-    require => Cron['geoipupdate'],
+    ensure       => present,
+    file_pattern => $geoipupdate_log,
+    size         => '1M',
+    rotate       => 1,
+    missing_ok   => true,
+    not_if_empty => true,
   }
 }
diff --git a/modules/geoip/templates/geoipupdate.logrotate.erb 
b/modules/geoip/templates/geoipupdate.logrotate.erb
deleted file mode 100644
index 36f48a7..0000000
--- a/modules/geoip/templates/geoipupdate.logrotate.erb
+++ /dev/null
@@ -1,11 +0,0 @@
-# Note:  This file is managed by Puppet.
-
-# Rotate geoipupdate.log generated by
-# the geoipupdate cron job.
-
-<%= @geoipupdate_log %>  {
-  size 1M
-  rotate 1
-  missingok
-  notifempty
-}
diff --git a/modules/logrotate/manifests/conf.pp 
b/modules/logrotate/manifests/conf.pp
index e3ad5eb..2294f4b 100644
--- a/modules/logrotate/manifests/conf.pp
+++ b/modules/logrotate/manifests/conf.pp
@@ -8,7 +8,25 @@
     $ensure = present,
     $source = undef,
     $content = undef,
+    $file_pattern = undef,
+    $not_if_empty = false,
+    $max_age = undef,
+    $rotate = undef,
+    $date_ext = false,
+    $compress = false,
+    $delay_compress = false,
+    $missing_ok = false,
+    $size = undef,
 ) {
+
+    if $source or $content {
+        $real_content = $content
+    } else {
+        if $file_pattern == undef {
+            fail('$file_pattern needs to be defined when using default 
template')
+        }
+        $real_content = template('logrotate/logrotate.erb')
+    }
 
     file { "/etc/logrotate.d/${title}":
         ensure  => $ensure,
@@ -16,6 +34,6 @@
         group   => 'root',
         mode    => '0444',
         source  => $source,
-        content => $content,
+        content => $real_content,
     }
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/341782
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic7b09086397d8b86fbcde3ceee1fa762c904b7f1
Gerrit-PatchSet: 1
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Gehel <guillaume.leder...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to