From f1910f95303044e18a1509efaa8602cc9c27b9f5 Mon Sep 17 00:00:00 2001
From: Bill MacAllister <whm@stanford.edu>
Date: Wed, 20 Nov 2013 23:56:01 -0800
Subject: [PATCH] base::syslog::fragment: Correct handling of source and
 content parameters

---
 manifests/syslog/fragment.pp | 43 +++++++++++++++++-------------------
 1 file changed, 20 insertions(+), 23 deletions(-)

diff --git a/manifests/syslog/fragment.pp b/manifests/syslog/fragment.pp
index f2e2f8a..c2defea 100644
--- a/manifests/syslog/fragment.pp
+++ b/manifests/syslog/fragment.pp
@@ -39,40 +39,37 @@ define base::syslog::fragment(
   } else {
     $logsink_server = 'logsink.stanford.edu'
   }
-  
+
   case $ensure {
 
     present: {
       case $content {
         'NOCONTENT': {
-          case $source {
-            'NOSRC': {
-              # Use default content 
-              file { "$realname":
-                content => template($basetmpl),
-                notify  => Service['syslog'],
-              }
+          if $source == 'NOSRC' {
+            # No content and no source then use a default
+            # template.
+            file { "$realname":
+              content => template($basetmpl),
+              notify  => Service['syslog'],
             }
-            default: {
-              # Source specificed
-              file { "$realname":
-                source => "$source",
-                notify => Service['syslog'],
-              }
+          } else {
+            # Source was specified
+            file { "$realname":
+              source => $source,
+              notify => Service['syslog'],
             }
           }
         }
         default: {
-          case $source {
-            'NOSRC': {
-              file { "$realname":
-                source => "$source",
-                notify => Service['syslog'],
-              }
-            }
-            default: {
-              fail "$codename - source or content, not both."
+          if $source == 'NOSRC' {
+            # Content was specified, use it.
+            file { "$realname":
+              content => $content,
+              notify  => Service['syslog'],
             }
+          } else {
+            # Both content and source where specified
+            fail "$codename - source or content, not both."
           }
         }
       }
-- 
GitLab