]> gitweb.fluxo.info Git - puppet-backupninja.git/commitdiff
Checking whether an exported resource is defined
authorSilvio Rhatto <rhatto@riseup.net>
Thu, 16 Jul 2009 21:23:05 +0000 (18:23 -0300)
committerMicah Anderson <micah@riseup.net>
Thu, 27 Aug 2009 19:53:27 +0000 (15:53 -0400)
Checking whether an exported resource is already defined
at backupninja::server::sandbox, otherwise puppet will try
to redefined them each time a backup resource type is invoked
with the same arguments (such as $directory), raising an error.

manifests/server.pp

index 213022b1a58d2ccd12f2bdf0c3b770027bf88cd2..fa854929c61f5c584f8646c8f86c53fbf0f0e0a8 100644 (file)
@@ -63,57 +63,67 @@ class backupninja::server {
       false => "backupninja-$real_host",
       default => $backuptag,
     }
-      
-    @@file { "$real_dir":
-      ensure => directory,
-      mode => 0750, owner => $user, group => 0,
-      tag => "$real_backuptag",
+     
+    if !defined(File["$real_dir"]) {
+      @@file { "$real_dir":
+        ensure => directory,
+        mode => 0750, owner => $user, group => 0,
+        tag => "$real_backuptag",
+      }
     }
     case $installuser {
       true: {
         case $manage_ssh_dir {
           true: {
-            @@file { "${real_ssh_dir}":
-              ensure => directory,
-              mode => 0700, owner => $user, group => 0,
-              require => File["$real_dir"],
-              tag => "$real_backuptag",
+            if !defined(File["$real_ssh_dir"]) {
+              @@file { "${real_ssh_dir}":
+                ensure => directory,
+                mode => 0700, owner => $user, group => 0,
+                require => File["$real_dir"],
+                tag => "$real_backuptag",
+              }
             }
           }
         } 
-        @@file { "${real_ssh_dir}/${real_authorized_keys_file}":
-          ensure => present,
-          mode => 0644, owner => 0, group => 0,
-          source => "$real_backupkeys/${user}_id_${keytype}.pub",
-          require => File["${real_ssh_dir}"],
-          tag => "$real_backuptag",
+        if !defined(File["$real_ssh_dir"]) {
+          @@file { "${real_ssh_dir}/${real_authorized_keys_file}":
+            ensure => present,
+            mode => 0644, owner => 0, group => 0,
+            source => "$real_backupkeys/${user}_id_${keytype}.pub",
+            require => File["${real_ssh_dir}"],
+            tag => "$real_backuptag",
+          }
         }
         case $uid {
           false: {
-            @@user { "$user":
-              ensure  => "present",
-              gid     => "$gid",
-              comment => "$name backup sandbox",
-              home    => "$real_dir",
-              managehome => true,
-              shell   => "/bin/sh",
-              password => '*',
-              require => Group['backupninjas'],
-              tag => "$real_backuptag"
+            if !defined(File["$real_ssh_dir"]) {
+              @@user { "$user":
+                ensure  => "present",
+                gid     => "$gid",
+                comment => "$name backup sandbox",
+                home    => "$real_dir",
+                managehome => true,
+                shell   => "/bin/sh",
+                password => '*',
+                require => Group['backupninjas'],
+                tag => "$real_backuptag"
+              }
             }
           }
           default: {
-            @@user { "$user":
-              ensure  => "present",
-              uid     => "$uid",
-              gid     => "$gid",
-              comment => "$name backup sandbox",
-              home    => "$real_dir",
-              managehome => true,
-              shell   => "/bin/sh",
-              password => '*',
-              require => Group['backupninjas'],
-              tag => "$real_backuptag"
+              if !defined(File["$real_ssh_dir"]) {
+              @@user { "$user":
+                ensure  => "present",
+                uid     => "$uid",
+                gid     => "$gid",
+                comment => "$name backup sandbox",
+                home    => "$real_dir",
+                managehome => true,
+                shell   => "/bin/sh",
+                password => '*',
+                require => Group['backupninjas'],
+                tag => "$real_backuptag"
+              }
             }
           }
         }