
#------------------------------------------------------------------------------
function validateTeamLead {
leaderIp='ifconfig|grep -o $leaderIp'
if [ "$leaderIp" == "" ]; then
teamBackup_log "Run this script from the team lead node."
exitBackup 1
fi
teamBackup_log "Leader node IP $leaderIp is correctly configured."
}
#------------------------------------------------------------------------------
# Function validateTeamBackupStatus ( )
# Checks if a new backup can be started.
#------------------------------------------------------------------------------
function validateTeamBackupStatus {
TEAM_BACKUP_ON="backup_in_progress=true"
# Check if any backup is going on now.
if [ -e "$TEAM_BACKUP_STATUS_FILE" ]; then
teamBackup_log "Backup status file $TEAM_BACKUP_STATUS_FILE exists."
backupStatus='cat $TEAM_BACKUP_STATUS_FILE'
if [ "$backupStatus" == "$TEAM_BACKUP_ON" ]; then
teamBackup_log "Backup already in progress, aborting new backup..."
exitBackup 1
fi
fi
rm -rf $BACKUP_TEAM_DIR
mkdir $BACKUP_TEAM_DIR
chmod 777 $BACKUP_TEAM_DIR
echo $TEAM_BACKUP_ON>$TEAM_BACKUP_STATUS_FILE
teamBackup_log "No backup is currently in progress. A new backup can start."
}
#------------------------------------------------------------------------------
# Function backupNode ( <nodeIndex> )
# Backs up a node.
#------------------------------------------------------------------------------
function backupNode {
local nodeIndex=$1
local backupToken=${nodeAuth[$nodeIndex]}
local backupIp=${ipArr[$nodeIndex]}
local backupUUID=${nodeUUID[$nodeIndex]}
backupURL="https://$backupIp:8443/sdn/v2.0/backup
post $backupIp $backupToken "$backupURL"
if [ $errorCode -ne 0 ]; then
teamBackup_log "Failed to start backup for $backupIp."
exitBackup 1
fi
if [ "$sessionID" == "" ]; then
teamBackup_log "Failed to start backup on $backupIp."
exitBackup 1
fi
echo $sessionID
}
#------------------------------------------------------------------------------
# Function downloadBackupSet ( <nodeIndex> )
# Downloads the backup file from each node to the team leader node, verifying the checkum.
#------------------------------------------------------------------------------
function downloadBackupSet {
local nodeIndex=$1
local backupAuth=${nodeAuth[$nodeIndex]}
local backupIp=${ipArr[$nodeIndex]}
local backupUUID=${nodeUUID[$nodeIndex]}
local fileName=""
if [ "$backupIp" == "$leaderIp" ]; then
fileName="$BACKUP_TEAM_DIR/sdn_controller_backup_$backupIp.Leader.zip"
else
fileName="$BACKUP_TEAM_DIR/sdn_controller_backup_$backupIp.zip"
fi
backupUrl="https://$backupIp:8443/sdn/v2.0/backup"
'get $backupIp $backupAuth $backupUrl > $fileName'
expected='get $nodeIP "v2.0/backup/checksum"'
actual=$(sha256sum "$fileName" | cut -d ' ' -f1)
if [ "$expected" != "$actual" ]; then
echo "Checksum failure: expected $expected but got $actual."
exitBackup 1
fi
teamBackup_log "Successfully copied backup MD5 file from $backupIp."
}
}
#------------------------------------------------------------------------------
# Function verifyBackupStatus ( <nodeIndex> )
202
Scripts