Added helper for pgsql handler.
authorintrigeri <intrigeri@758a04ac-41e6-0310-8a23-8373a73cc35d>
Tue, 9 Aug 2005 20:59:20 +0000 (20:59 +0000)
committerintrigeri <intrigeri@758a04ac-41e6-0310-8a23-8373a73cc35d>
Tue, 9 Aug 2005 20:59:20 +0000 (20:59 +0000)
git-svn-id: http://code.autistici.org/svn/backupninja/trunk@164 758a04ac-41e6-0310-8a23-8373a73cc35d

changelog
etc/backup.d/example.pgsql
handlers/pgsql.helper [new file with mode: 0644]

index f2e11b158f47c27718f5c1ed0d26b693e3ad17f9..cabe82b7f5a0c15e983e532cb5a5e0ffbc325459 100644 (file)
--- a/changelog
+++ b/changelog
@@ -1,10 +1,10 @@
 version XX -- ...
 
-       added pgsql (PostgreSQL) handler, with vservers support
+       added pgsql (PostgreSQL) handler, with vservers support.
        added vservers support to duplicity handler
                Note: the configuration is a bit different of rdiff
-               handler's one, but the default behavior is the same: have
-               a look to example.dup.
+                       handler's one, but the default behavior is the same:
+                       have a look to example.dup.
        improved README
                documented .disabled method.
                corrected VROOTDIR default value.
@@ -26,6 +26,7 @@ version XX -- ...
                        must not be group or world writable!" error msg).
                xedit action now tries $EDITOR, then /etc/alternatives/editor,
                        then nano, vim and vi, and aborts if none of these exists.
+       added helper for pgsql handler.
        
 version 0.7 -- July 26 2005
        added ninjahelper: a dialog based wizard for creating backupninja configs.
index 8313bd43b0df23974bbef2d288c7933c77fdc868..d9aab420c1374cfb3a28221ef283af92d3743638 100644 (file)
@@ -1,19 +1,20 @@
 ### backupninja PostgreSQL config file ###
 
+# vsname = <vserver> (no default)
+# what vserver to operate on, only used if vserver = yes in /etc/backupninja.conf
+# if you do not specify a vsname the host will be operated on
+# Note: if operating on a vserver, $VROOTDIR will be prepended to backupdir.
+
 # backupdir = <dir> (default: /var/backups/postgres)
 # where to dump the backups
-#
+
 # databases = < all | db1 db2 db3 > (default = all)
 # which databases to backup. should either be the word 'all' or a 
 # space separated list of database names.
 # Note: when using 'all', pg_dumpall is used instead of pg_dump, which means
 # that cluster-wide data (such as users and groups) are saved.
-#
+
 # compress = < yes | no > (default = yes)
-# if yes, compress the pg_dump output. 
-#
-# vsname = <vserver> (no default)
-# what vserver to operate on, only used if vserver = yes in /etc/backupninja.conf
-# if you do not specify a vsname the host will be operated on
-# Note: if operating on a vserver, $VROOTDIR will be prepended to backupdir.
+# if yes, compress the pg_dump/pg_dumpall output. 
+
 
diff --git a/handlers/pgsql.helper b/handlers/pgsql.helper
new file mode 100644 (file)
index 0000000..8f9a8d4
--- /dev/null
@@ -0,0 +1,89 @@
+HELPERS="$HELPERS pgsql:postgresql_database_backup"
+
+do_pgsql_vserver() {
+   inputBox "$pgsql_title" "Specify a vserver name:"
+   [ $? = 1 ] && return;
+   pgsql_vsname="vsname = $REPLY"
+}
+
+do_pgsql_databases() {
+   formBegin "$pgsql_title: databases"
+     formItem "Database:"
+     formItem "Database:"
+     formItem "Database:"
+     formItem "Database:"
+     formItem "Database:"
+     formItem "Database:"
+     formItem "Database:"
+     formItem "Database:"
+     formItem "Database:"
+     formItem "Database:"
+   formDisplay
+   [ $? = 1 ] && return
+   
+   pgsql_databases="databases = "
+   for i in $REPLY; do
+      [ "$i" != "" ] && pgsql_databases="$pgsql_databases $i"
+   done
+}
+
+pgsql_wizard() {
+
+    # constants
+   pgsql_title="PostgreSQL action wizard"
+
+   # vserver support
+   booleanBox "$pgsql_title" "Do you want to operate on a vserver? If not, the host will be operated on."
+   [ $? = 0 ] && do_pgsql_vserver
+
+   # backupdir
+   inputBox "$pgsql_title" "Directory where to store the backups:`[ -z \"$pgsql_vsname\" ] || echo \"\n(In respect to chosen vserver's root directory)\"`" "/var/backups/postgres"
+   [ $? = 1 ] && return
+   pgsql_backupdir="backupdir = $REPLY"
+
+   # databases
+   booleanBox "$pgsql_title" "Do you want to backup the whole cluster? If not, you'll be offered to choose the databases to backup."
+   if [ $? = 0 ]; then
+      pgsql_databases="databases = all"
+   else
+      do_pgsql_databases
+   fi
+
+   # compress
+   booleanBox "$pgsql_title" "Do you want to compress the backups?"
+   if [ $? = 0 ]; then
+      pgsql_compress="compress = yes"
+   else
+      pgsql_compress="compress = no"
+   fi
+
+   # write config file
+   get_next_filename $configdirectory/20.pgsql
+   cat >> $next_filename <<EOF
+### backupninja PostgreSQL config file ###
+
+# vsname = <vserver> (no default)
+# what vserver to operate on, only used if vserver = yes in /etc/backupninja.conf
+# if you do not specify a vsname the host will be operated on
+# Note: if operating on a vserver, $VROOTDIR will be prepended to backupdir.
+$pgsql_vsname
+
+# backupdir = <dir> (default: /var/backups/postgres)
+# where to dump the backups
+$pgsql_backupdir
+
+# databases = < all | db1 db2 db3 > (default = all)
+# which databases to backup. should either be the word 'all' or a 
+# space separated list of database names.
+# Note: when using 'all', pg_dumpall is used instead of pg_dump, which means
+# that cluster-wide data (such as users and groups) are saved.
+$pgsql_databases
+
+# compress = < yes | no > (default = yes)
+# if yes, compress the pg_dump/pg_dumpall output. 
+$pgsql_compress
+
+EOF
+   chmod 000 $next_filename
+
+}