From 05efcc415ed19793e10d71e95a1d412e5d2095d1 Mon Sep 17 00:00:00 2001
From: drebs <drebs@riseup.net>
Date: Mon, 13 Jul 2009 05:32:24 -0300
Subject: adding duplicity package as dependency for handler.

---
 manifests/dup.pp | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/manifests/dup.pp b/manifests/dup.pp
index 170e53a..05d4892 100644
--- a/manifests/dup.pp
+++ b/manifests/dup.pp
@@ -84,6 +84,10 @@ define backupninja::duplicity( $order  = 90,
                                $backuptag            = false,
                                # key options
                                $installkey           = true ) {
+  # needed packages
+  package { "duplicity": ensure => installed }
+
+  # the client with configs for this machine
   include backupninja::client
 
   case $host { false: { err("need to define a host for remote backups!") } }
-- 
cgit v1.2.3


From bc167339c62ad2e06c8cdcd298364f20afa04658 Mon Sep 17 00:00:00 2001
From: Silvio Rhatto <rhatto@riseup.net>
Date: Thu, 16 Jul 2009 18:23:05 -0300
Subject: Checking whether an exported resource is defined

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 | 84 ++++++++++++++++++++++++++++++-----------------------
 1 file changed, 47 insertions(+), 37 deletions(-)

diff --git a/manifests/server.pp b/manifests/server.pp
index 213022b..fa85492 100644
--- a/manifests/server.pp
+++ b/manifests/server.pp
@@ -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"
+              }
             }
           }
         }
-- 
cgit v1.2.3


From c80b8348d7b3befb9cff496bb0443a0d05385b26 Mon Sep 17 00:00:00 2001
From: Silvio Rhatto <rhatto@riseup.net>
Date: Wed, 26 Aug 2009 21:07:40 -0300
Subject: Add rdiff::backup option to config dest user home folder

---
 manifests/rdiff.pp | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/manifests/rdiff.pp b/manifests/rdiff.pp
index e3964d0..ec89006 100644
--- a/manifests/rdiff.pp
+++ b/manifests/rdiff.pp
@@ -25,7 +25,7 @@ define backupninja::rdiff(
                "/home", "/usr/local/*bin", "/var/lib/dpkg/status*" ],
   $vsinclude = false, $keep = 30, $sshoptions = false, $options = false, $ssh_dir_manage = true,
   $ssh_dir = false, $authorized_keys_file = false, $installuser = true, $installkey = true,
-  $backuptag = false)
+  $backuptag = false, $home = false)
 {
   include backupninja::client
   case $type {
@@ -34,7 +34,11 @@ define backupninja::rdiff(
       
       backupninja::server::sandbox
       {
-        "${user}-${name}": user => $user, host => $host, dir => $directory,
+        $real_home = $home ? {
+          false => $directory,
+          default => $home,
+        }
+        "${user}-${name}": user => $user, host => $host, dir => $real_home,
         manage_ssh_dir => $ssh_dir_manage, ssh_dir => $ssh_dir,
         authorized_keys_file => $authorized_keys_file, installuser => $installuser,
         backuptag => $backuptag
-- 
cgit v1.2.3


From e0982845a5781c542ac3efa3b8c7d6b7f7db8087 Mon Sep 17 00:00:00 2001
From: Silvio Rhatto <rhatto@riseup.net>
Date: Wed, 26 Aug 2009 21:14:07 -0300
Subject: Oops

---
 manifests/rdiff.pp | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/manifests/rdiff.pp b/manifests/rdiff.pp
index ec89006..b1dd7d2 100644
--- a/manifests/rdiff.pp
+++ b/manifests/rdiff.pp
@@ -32,12 +32,13 @@ define backupninja::rdiff(
     'remote': {
       case $host { false: { err("need to define a host for remote backups!") } }
       
+      $real_home = $home ? {
+        false => $directory,
+        default => $home,
+      }
+
       backupninja::server::sandbox
       {
-        $real_home = $home ? {
-          false => $directory,
-          default => $home,
-        }
         "${user}-${name}": user => $user, host => $host, dir => $real_home,
         manage_ssh_dir => $ssh_dir_manage, ssh_dir => $ssh_dir,
         authorized_keys_file => $authorized_keys_file, installuser => $installuser,
-- 
cgit v1.2.3


From 30237b7ed066509b53bc1f53ffe797d9041856db Mon Sep 17 00:00:00 2001
From: Silvio Rhatto <rhatto@riseup.net>
Date: Wed, 26 Aug 2009 21:37:43 -0300
Subject: Fixing some definitions at backupninja::server::sandbox

---
 manifests/server.pp | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/manifests/server.pp b/manifests/server.pp
index fa85492..28b97d5 100644
--- a/manifests/server.pp
+++ b/manifests/server.pp
@@ -85,7 +85,7 @@ class backupninja::server {
             }
           }
         } 
-        if !defined(File["$real_ssh_dir"]) {
+        if !defined(File["${real_ssh_dir}/${real_authorized_keys_file}"]) {
           @@file { "${real_ssh_dir}/${real_authorized_keys_file}":
             ensure => present,
             mode => 0644, owner => 0, group => 0,
@@ -96,7 +96,7 @@ class backupninja::server {
         }
         case $uid {
           false: {
-            if !defined(File["$real_ssh_dir"]) {
+            if !defined(File["$real_user"]) {
               @@user { "$user":
                 ensure  => "present",
                 gid     => "$gid",
@@ -111,8 +111,8 @@ class backupninja::server {
             }
           }
           default: {
-              if !defined(File["$real_ssh_dir"]) {
-              @@user { "$user":
+              if !defined(File["$real_user"]) {
+              @@user { "$real_user":
                 ensure  => "present",
                 uid     => "$uid",
                 gid     => "$gid",
-- 
cgit v1.2.3


From 02d8a40959f4376742d6c813aa3e44e79c56c429 Mon Sep 17 00:00:00 2001
From: Silvio Rhatto <rhatto@riseup.net>
Date: Wed, 26 Aug 2009 21:54:25 -0300
Subject: Fixing some definitions at backupninja::server::sandbox (2)

---
 manifests/server.pp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/manifests/server.pp b/manifests/server.pp
index 28b97d5..790c931 100644
--- a/manifests/server.pp
+++ b/manifests/server.pp
@@ -96,8 +96,8 @@ class backupninja::server {
         }
         case $uid {
           false: {
-            if !defined(File["$real_user"]) {
-              @@user { "$user":
+            if !defined(User["$real_user"]) {
+              @@user { "$real_user":
                 ensure  => "present",
                 gid     => "$gid",
                 comment => "$name backup sandbox",
@@ -111,7 +111,7 @@ class backupninja::server {
             }
           }
           default: {
-              if !defined(File["$real_user"]) {
+              if !defined(User["$real_user"]) {
               @@user { "$real_user":
                 ensure  => "present",
                 uid     => "$uid",
-- 
cgit v1.2.3


From 564244547ab684e9b63d48fcabbe4f6d377d022e Mon Sep 17 00:00:00 2001
From: Silvio Rhatto <rhatto@riseup.net>
Date: Wed, 26 Aug 2009 22:29:24 -0300
Subject: Adding backupkeytype parameter at backupninja::rdiff

---
 manifests/rdiff.pp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/manifests/rdiff.pp b/manifests/rdiff.pp
index b1dd7d2..a8956f3 100644
--- a/manifests/rdiff.pp
+++ b/manifests/rdiff.pp
@@ -25,7 +25,7 @@ define backupninja::rdiff(
                "/home", "/usr/local/*bin", "/var/lib/dpkg/status*" ],
   $vsinclude = false, $keep = 30, $sshoptions = false, $options = false, $ssh_dir_manage = true,
   $ssh_dir = false, $authorized_keys_file = false, $installuser = true, $installkey = true,
-  $backuptag = false, $home = false)
+  $backuptag = false, $home = false, $backupkeytype = false)
 {
   include backupninja::client
   case $type {
@@ -42,7 +42,7 @@ define backupninja::rdiff(
         "${user}-${name}": user => $user, host => $host, dir => $real_home,
         manage_ssh_dir => $ssh_dir_manage, ssh_dir => $ssh_dir,
         authorized_keys_file => $authorized_keys_file, installuser => $installuser,
-        backuptag => $backuptag
+        backuptag => $backuptag, keytype => $backupkeytype,
       }
       
       backupninja::client::key
-- 
cgit v1.2.3


From 618cddaaeb0a89d3f01f359ebcb80be9d95264da Mon Sep 17 00:00:00 2001
From: Silvio Rhatto <rhatto@riseup.net>
Date: Wed, 26 Aug 2009 22:40:24 -0300
Subject: Setting the right default value for backupkeytype

---
 manifests/dup.pp   | 2 +-
 manifests/rdiff.pp | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/manifests/dup.pp b/manifests/dup.pp
index 05d4892..f12fc0f 100644
--- a/manifests/dup.pp
+++ b/manifests/dup.pp
@@ -75,7 +75,7 @@ define backupninja::duplicity( $order  = 90,
                                $destuser      = false,
                                # configs to backupninja client
                                $backupkeystore       = false,
-                               $backupkeytype        = false,
+                               $backupkeytype        = '',
                                # options to backupninja server sandbox
                                $ssh_dir_manage       = true,
                                $ssh_dir              = false,
diff --git a/manifests/rdiff.pp b/manifests/rdiff.pp
index a8956f3..579071b 100644
--- a/manifests/rdiff.pp
+++ b/manifests/rdiff.pp
@@ -25,7 +25,7 @@ define backupninja::rdiff(
                "/home", "/usr/local/*bin", "/var/lib/dpkg/status*" ],
   $vsinclude = false, $keep = 30, $sshoptions = false, $options = false, $ssh_dir_manage = true,
   $ssh_dir = false, $authorized_keys_file = false, $installuser = true, $installkey = true,
-  $backuptag = false, $home = false, $backupkeytype = false)
+  $backuptag = false, $home = false, $backupkeytype = '')
 {
   include backupninja::client
   case $type {
-- 
cgit v1.2.3


From 6734c256525e1dd42ba3648db82083bcabca66ed Mon Sep 17 00:00:00 2001
From: Silvio Rhatto <rhatto@riseup.net>
Date: Wed, 26 Aug 2009 22:48:57 -0300
Subject: Avoiding duplicate file definitions at backupninja::client::key

---
 manifests/client.pp | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/manifests/client.pp b/manifests/client.pp
index a3d2242..8368eb4 100644
--- a/manifests/client.pp
+++ b/manifests/client.pp
@@ -72,14 +72,18 @@ class backupninja::client {
 
     case $install_key {
       true: {
-        file { "${backupninja::client::real_keydestination}":
-          ensure => directory,
-          mode => 0700, owner => $key_owner, group => $key_group,
+        if !defined(File["${backupninja::client::real_keydestination}"]) {
+          file { "${backupninja::client::real_keydestination}":
+            ensure => directory,
+            mode => 0700, owner => $key_owner, group => $key_group,
+          }
         }
-        file { "${backupninja::client::real_keydestination}/id_${key_type}":
-          source => "${key_store}/${real_user}_id_${key_type}",
-          mode => 0400, owner => $key_owner, group => $key_group,
-          require => File["${backupninja::client::real_keydestination}"],
+        if !defined(File["${backupninja::client::real_keydestination/id_${key_type}"]) {
+          file { "${backupninja::client::real_keydestination}/id_${key_type}":
+            source => "${key_store}/${real_user}_id_${key_type}",
+            mode => 0400, owner => $key_owner, group => $key_group,
+            require => File["${backupninja::client::real_keydestination}"],
+          }
         }
       }
     }
-- 
cgit v1.2.3