From 166c486601064424410d1bd9d6ee6ad6e7fefd1a Mon Sep 17 00:00:00 2001
From: Elijah Saxon <elijah@riseup.net>
Date: Thu, 15 Sep 2005 18:36:23 +0000
Subject: [PATCH] added patch to mysql handler from Daniel.Bonniot@inria.fr
 (adds ignores option)

---
 changelog      |  2 ++
 handlers/mysql | 23 ++++++++++++++++-------
 2 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/changelog b/changelog
index 8e056cfb..81b4f168 100644
--- a/changelog
+++ b/changelog
@@ -29,6 +29,8 @@ version 0.8 --
     rdiff handler now does not require 'label'
     changes to mysql and svn handlers' vservers support
         these handlers now check if the source vserver is running
+    added 'ignores' for mysql handler. (thanks Daniel.Bonniot@inria.fr)
+
 
 version 0.7 -- July 26 2005
 	added ninjahelper: a dialog based wizard for creating backupninja configs.
diff --git a/handlers/mysql b/handlers/mysql
index e5306db4..57b9ecfe 100644
--- a/handlers/mysql
+++ b/handlers/mysql
@@ -4,6 +4,7 @@
 
 getconf backupdir /var/backups/mysql
 getconf databases all
+getconf ignores
 getconf dbhost localhost
 getconf hotcopy no
 getconf sqldump no
@@ -25,6 +26,14 @@ else
 	[ -f $userhome/.my.cnf ] || fatal "Can't find config file in $userhome/.my.cnf"
 fi
 
+## Prepare ignore part of the command
+## This only works for mysqldump at the moment
+
+ignore=''
+for i in $ignores; do
+       ignore="$ignore --ignore-table=$i"
+done
+
 # If vservers are configured, decide if the handler should
 # use them or if it should just operate on the host
 
@@ -42,13 +51,13 @@ fi
 # If needed, make sure that the specified vserver exists and is running.
 if [ $usevserver ]
 then
-        info "examining vserver '$vsname'"
-        # does it exist ?
+	info "examining vserver '$vsname'"
+	# does it exist ?
 	vroot="$VROOTDIR/$vsname"
 	[ -d $vroot ] || fatal "vserver '$vsname' does not exist at '$vroot'"
-        # is it running ?
-        running=`$VSERVERINFO $vsname RUNNING`
-        [ $running = 1 ] || fatal "vserver $vsname is not running."
+	# is it running ?
+	running=`$VSERVERINFO $vsname RUNNING`
+	[ $running = 1 ] || fatal "vserver $vsname is not running."
 fi
 	
 # create backup dirs, the vroot variable will be empty if no vsname was specified
@@ -181,9 +190,9 @@ if [ "$sqldump" == "yes" ]; then
 	for db in $databases; do
 		if [ $usevserver ]
 		then
-			execstr="$VSERVER $vsname exec $MYSQLDUMP $defaultsfile --lock-tables --complete-insert --add-drop-table --quick --quote-names $db > $vroot$dumpdir/${db}.sql"
+			execstr="$VSERVER $vsname exec $MYSQLDUMP $defaultsfile --lock-tables --complete-insert --add-drop-table --quick --quote-names $ignore $db > $vroot$dumpdir/${db}.sql"
 		else
-			execstr="$MYSQLDUMP $defaultsfile --lock-tables --complete-insert --add-drop-table --quick --quote-names $db > $dumpdir/${db}.sql"
+			execstr="$MYSQLDUMP $defaultsfile --lock-tables --complete-insert --add-drop-table --quick --quote-names $ignore $db > $dumpdir/${db}.sql"
 		fi
 		debug "su $user -c '$execstr'"
 		if [ ! $test ]; then
-- 
GitLab