#!/bin/bash
-# Setup environment for backup restored from localhost
-function hydra_backup_environment_local {
+# Setup environment for the backups website
+function hydra_backup_environment_local_website {
SITE="$1"
BACKUPDIR="/var/sites/backups/site/$SITE"
RESTOREDIR="$BACKUPDIR/$DATE"
else
RESTOREDIR="$BACKUPDIR/`date +%Y%m%d`"
- fi
+ fi
DB_DUMP_BASE="$RESTOREDIR"
mkdir -p $RESTOREDIR
}
+# Setup environment for backup restored from localhost
+function hydra_backup_environment_local {
+ BACKUPDIR="/var/backups/duplicity"
+
+ if [ ! -z "$DATE" ]; then
+ RESTOREDIR="/var/backups/restore/$DATE"
+ else
+ RESTOREDIR="/var/backups/restore/`date +%Y%m%d`"
+ fi
+
+ DB_DUMP_BASE="$RESTOREDIR/var/backups/mysql/sqldump/"
+ mkdir -p $RESTOREDIR
+}
+
# Setup environment for backup restored from remote source
function hydra_backup_environment_remote {
NODE="$1"
# Command line arguments
NODES="$*"
-COMMIT="d8e20cc9fa92f07def15ebf3041405627fb66eae"
+COMMIT="f360acf0fab1d941bc7de8bec3d22aabd64f49fe"
# Build node list
if [ -z "$NODES" ]; then
#
# Backup restoration.
#
-# TODO: optionally restore from local backup
-#
# Load.
source $APP_BASE/lib/hydra/functions || exit 1
hydra_config_load
-hydra_backup_environment_remote $*
+# Check restore strategy.
+if [ "$1" == "localhost" ]; then
+ hydra_backup_environment_local $2 restore
+else
+ hydra_backup_environment_remote $1 restore
+fi
+
duplicity restore file:///$BACKUPDIR/ $RESTOREDIR/
#
# Gitosis backup restoration.
#
-# TODO
# Load.
source $APP_BASE/lib/hydra/functions || exit 1
hydra_config_load
-hydra_backup_environment_remote $*
+# Parameters.
+DATE="`date +%Y%m%d`"
-# Check if folder exist on the backup
-# Check if there's already a site folder and backup it
-# Copy site folder from backup
-# Fix permissions
+# Check restore strategy.
+if [ "$1" == "localhost" ] || [ "$1" == "`facter hostname`" ]; then
+ hydra_backup_environment_local $2 restore
+else
+ hydra_backup_environment_remote $1 restore
+fi
+
+# Check if folder exist on the backup.
+if [ ! -d "$RESTOREDIR/var/git" ]; then
+ echo "Git folder does not exist: $RESTOREDIR/var/git"
+ exit 1
+fi
+
+# Set git user.
+if hydra_check_user gitosis; then
+ $GIT_USER="gitosis"
+else
+ $GIT_USER="root"
+fi
+
+# Set git group.
+if hydra_check_group gitosis; then
+ $GIT_GROUP="gitosis"
+else
+ $GIT_GROUP="root"
+fi
+
+# TODO: more like backup-site
+# Backup it.
+mkdir -p /var/site/backups/git/
+mv /var/git /var/site/backups/git/$DATE
+
+# Copy site folder from backup.
+cp -a $RESTOREDIR/var/git /var/git
+
+# Fix permissions.
+chown -R $GIT_USER.$GIT_GROUP /var/git
exit 1
fi
-# Check restore stratety.
-if [ "$1" == "localhost" ]; then
+# Check restore strategy.
+if [ "$1" == "backups" ]; then
+ hydra_backup_environment_local_website $2 restore
+elif [ "$1" == "localhost" ] || [ "$1" == "`facter hostname`" ]; then
hydra_backup_environment_local $2 restore
else
hydra_backup_environment_remote $1 restore
#
# Subversion backup restoration.
#
-# TODO
# Load.
source $APP_BASE/lib/hydra/functions || exit 1
hydra_config_load
-hydra_backup_environment_remote $*
+# Parameters.
+DATE="`date +%Y%m%d`"
-# Check if folder exist on the backup
-# Check if there's already a site folder and backup it
-# Copy site folder from backup
-# Fix permissions
+# Check restore strategy.
+if [ "$1" == "localhost" ] || [ "$1" == "`facter hostname`" ]; then
+ hydra_backup_environment_local $2 restore
+else
+ hydra_backup_environment_remote $1 restore
+fi
+
+# Check if folder exist on the backup.
+if [ -d "$RESTOREDIR/var/svn" ]; then
+ echo "SVN folder does not exist: $RESTOREDIR/var/svn"
+ exit 1
+fi
+
+# TODO: more like backup-site
+# Backup it.
+mkdir -p /var/site/backups/svn/
+mv /var/svn /var/site/backups/svn/$DATE
+
+# Set svn user.
+if hydra_check_user svn; then
+ $SVN_USER="svn"
+else
+ $SVN_USER="root"
+fi
+
+# Set svn group.
+if hydra_check_group svn; then
+ $SVN_GROUP="svn"
+else
+ $SVN_GROUP="root"
+fi
+
+# Copy site folder from backup.
+cp -a $RESTOREDIR/var/svn /var/svn
+
+# Fix permissions.
+chown root.root /var/svn
+chown -R $SVN_USER.$SVN_GROUP /var/svn/*