]> gitweb.fluxo.info Git - puppet-samba.git/commitdiff
share config options should be optional
authorAdam Jahn <ajjahn@gmail.com>
Fri, 24 Aug 2012 16:47:46 +0000 (12:47 -0400)
committerAdam Jahn <ajjahn@gmail.com>
Fri, 24 Aug 2012 16:59:50 +0000 (12:59 -0400)
manifests/share.pp

index cebd4fa3947288ff5f1e61865085fbb01880d768..a5ed12229e83c5c92f8fce05fb0a674790e064e4 100644 (file)
@@ -1,25 +1,66 @@
-define samba::share($ensure=present,
-              $description,
-              $path,
-              $browsable,
-              $guestok="no",
-              $readonly="no" ) {
+define samba::share($ensure = present,
+                    $description = '',
+                    $path = '',
+                    $browsable = '',
+                    $guestok = '',
+                    $readonly = '') {
   
   $context = "/files/etc/samba/smb.conf"
   $target = "target[. = '${name}']"
 
-  augeas { "${name}":
+  augeas { "${name}-section":
     context => $context,
     changes => $ensure ? {
-      present => [ "set ${target} ${name}",
-                    "set ${target}/comment ${description}",
-                    "set ${target}/path ${path}",
-                    "set ${target}/browsable ${browsable}",
-                    "set ${target}/guestok ${guestok}",
-                    "set ${target}/readonly ${readonly}" ],
-      default => ["rm ${target} ${name}"],
+      present => "set ${target} ${name}",
+      default => "rm ${target} ${name}",
     },
     require => Class["samba::server::config"]
   }
-  
+
+  if $ensure == "present" {
+    augeas { "${name}-comment":
+      context => $context,
+      changes => $description ? {
+        default => "set ${target}/comment ${description}",
+        '' => "rm ${target}/comment",
+      },
+      require => Augeas["${name}-section"],
+    }
+
+    augeas { "${name}-path":
+      context => $context,
+      changes => $path ? {
+        default => "set ${target}/path ${path}",
+        '' => "rm ${target}/path",
+      },
+      require => Augeas["${name}-section"],
+    }
+
+    augeas { "${name}-browsable":
+      context => $context,
+      changes => $browsable ? {
+        default => "set ${target}/browsable ${browsable}",
+        '' => "rm ${target}/browsable",
+      },
+      require => Augeas["${name}-section"],
+    }
+
+    augeas { "${name}-guestok":
+      context => $context,
+      changes => $guestok ? {
+        default => "set ${target}/guestok ${guestok}",
+        '' => "rm ${target}/guestok",
+      },
+      require => Augeas["${name}-section"],
+    }
+    
+    augeas { "${name}-readonly":
+      context => $context,
+      changes => $readonly ? {
+        default => "set ${target}/readonly ${readonly}",
+        '' => "rm ${target}/readonly",
+      },
+      require => Augeas["${name}-section"],
+    }
+  }
 }