]> gitweb.fluxo.info Git - hydra.git/commitdiff
Unifying database restoration with hydra_backup_restore_database
authorSilvio Rhatto <rhatto@riseup.net>
Thu, 28 Jun 2012 14:53:41 +0000 (11:53 -0300)
committerSilvio Rhatto <rhatto@riseup.net>
Thu, 28 Jun 2012 14:53:41 +0000 (11:53 -0300)
lib/hydra/backup
share/hydractl/backup-restore-site
share/hydractl/backup-restore-sympa

index e3edf509963d28b69d75608419b11885df642aed..02095708ba51810bc439b4f0fb841ffdfff7ff66 100644 (file)
@@ -87,3 +87,37 @@ function hydra_backup_environment_remote {
   DB_DUMP_BASE="$RESTOREDIR/var/backups/mysql/sqldump/"
   mkdir -p $RESTOREDIR
 }
+
+# Restore a database
+function hydra_backup_restore_database {
+  DATABASE="$1"
+
+  if [ -z "$DATABASE" ]; then
+    return
+  fi
+
+  # Check if there are database dumps
+  if [ -f "$DB_DUMP_BASE/$DATABASE.sql.gz" ]; then
+    DB_DUMP_EXT=".gz"
+    DB_DUMP_EXTRACT="gunzip"
+  elif [ -f "$DB_DUMP_BASE/$DATABASE.sql.bz2" ]; then
+    DB_DUMP_EXT=".bz2"
+    DB_DUMP_EXTRACT="bunzip2"
+  elif [ -f "$DB_DUMP_BASE/$DATABASE.sql" ]; then
+    DB_DUMP_EXT=""
+    DB_DUMP_EXTRACT="true"
+  fi
+  
+  # Restore database
+  if [ ! -z "$DB_DUMP_EXT" ]; then
+    echo "Restoring database $DATABASE..."
+    hydra_set_tmpfile $DATABASE -d
+    cp $DB_DUMP_BASE/$DATABASE.sql$DB_DUMP_EXT $TMPWORK
+    ( cd $TMPWORK && $DB_DUMP_EXTRACT $DATABASE.sql$DB_DUMP_EXT )
+    hydra_truncate_database $DATABASE
+    mysql $DATABASE < $TMPWORK/$DATABASE.sql
+    hydra_unset_tmpfile $TMPWORK
+  else
+    echo "Database should be manually restored"
+  fi
+}
index 3c22e521c8e50fd838ddf310ea904b67c962b9ae..f9d7acc3da9ad7dd99e58f517d8a6f8375b9ac03 100755 (executable)
@@ -146,30 +146,8 @@ if [ -e "$FOLDER/drupal" ]; then
   fi
 fi
 
-# Check if there are database dumps
-if [ -f "$DB_DUMP_BASE/$SITE.sql.gz" ]; then
-  DB_DUMP_EXT=".gz"
-  DB_DUMP_EXTRACT="gunzip"
-elif [ -f "$DB_DUMP_BASE/$SITE.sql.bz2" ]; then
-  DB_DUMP_EXT=".bz2"
-  DB_DUMP_EXTRACT="bunzip2"
-elif [ -f "$DB_DUMP_BASE/$SITE.sql" ]; then
-  DB_DUMP_EXT=""
-  DB_DUMP_EXTRACT="true"
-fi
-
 # Restore database
-if [ ! -z "$DB_DUMP_EXT" ]; then
-  echo "Restoring database $SITE..."
-  hydra_set_tmpfile $SITE -d
-  cp $DB_DUMP_BASE/$SITE.sql$DB_DUMP_EXT $TMPWORK
-  ( cd $TMPWORK && $DB_DUMP_EXTRACT $SITE.sql$DB_DUMP_EXT )
-  hydra_truncate_database $SITE
-  mysql $SITE < $TMPWORK/$SITE.sql
-  hydra_unset_tmpfile $TMPWORK
-else
-  echo "Database should be manually restored"
-fi
+hydra_backup_restore_database $SITE
 
 # Ikiwiki
 if [ -e "$FOLDER/ikiwiki" ]; then
index 5f136656b7589715b5b54f6d049a51b54ae8060e..ff1db6dee4a175e4026ebcc70ad8c45497a2828d 100755 (executable)
@@ -23,7 +23,6 @@ hydra_config_load
 # Parameters.
 DATE="`date +%Y%m%d`"
 LISTS_DIR="/var/mail/virtual"
-SITE="sympa"
 
 # Check restore strategy.
 if [ "$1" == "localhost" ] || [ "$1" == "`facter hostname`" ]; then
@@ -61,32 +60,8 @@ fi
 #rsync -av $RESTOREDIR/$LISTS_DIR/bounce/ $LISTS_DIR/bounce/
 rsync -av --delete $RESTOREDIR/$LISTS_DIR/ $LISTS_DIR/
 
-DB_DUMP_BASE="$RESTOREDIR/var/backups/mysql/sqldump"
-
-# Check if there are database dumps
-if [ -f "$DB_DUMP_BASE/$SITE.sql.gz" ]; then
-  DB_DUMP_EXT=".gz"
-  DB_DUMP_EXTRACT="gunzip"
-elif [ -f "$DB_DUMP_BASE/$SITE.sql.bz2" ]; then
-  DB_DUMP_EXT=".bz2"
-  DB_DUMP_EXTRACT="bunzip2"
-elif [ -f "$DB_DUMP_BASE/$SITE.sql" ]; then
-  DB_DUMP_EXT=""
-  DB_DUMP_EXTRACT="true"
-fi
-
 # Restore database
-if [ ! -z "$DB_DUMP_EXT" ]; then
-  echo "Restoring database $SITE..."
-  hydra_set_tmpfile $SITE -d
-  cp $DB_DUMP_BASE/$SITE.sql$DB_DUMP_EXT $TMPWORK
-  ( cd $TMPWORK && $DB_DUMP_EXTRACT $SITE.sql$DB_DUMP_EXT )
-  hydra_truncate_database $SITE
-  mysql $SITE < $TMPWORK/$SITE.sql
-  hydra_unset_tmpfile $TMPWORK
-else
-  echo "Database should be manually restored"
-fi
+hydra_backup_restore_database sympa
 
 # Fix permissions.
 chown -R $LISTS_USER.$LISTS_GROUP $LISTS_DIR