Target rebuild

This commit is contained in:
deajan 2016-08-01 14:18:41 +02:00
parent 021b354929
commit 2de50b413c
2 changed files with 72 additions and 26 deletions

View File

@ -4,7 +4,7 @@ PROGRAM="osync" # Rsync based two way sync engine with fault tolerance
AUTHOR="(C) 2013-2016 by Orsiris de Jong"
CONTACT="http://www.netpower.fr/osync - ozy@netpower.fr"
PROGRAM_VERSION=1.1.1
PROGRAM_BUILD=2016080106
PROGRAM_BUILD=2016080108
IS_STABLE=yes
## FUNC_BUILD=2016071902
@ -1375,13 +1375,23 @@ function CheckCurrentConfig {
###### Osync specific functions (non shared)
function _CreateStateDirsLocal {
local replica_state_dir="${1}"
__CheckArguments 1 $# ${FUNCNAME[0]} "$@" #__WITH_PARANOIA_DEBUG
local backup_dir="${1}"
local delete_dir="${2}"
__CheckArguments 2 $# ${FUNCNAME[0]} "$@" #__WITH_PARANOIA_DEBUG
if ! [ -d "$replica_state_dir" ]; then
$COMMAND_SUDO mkdir -p "$replica_state_dir" > "$RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID" 2>&1
if ! [ -d "$backup_dir" ]; then
$COMMAND_SUDO mkdir -p "$backup_dir" > "$RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID" 2>&1
if [ $? != 0 ]; then
Logger "Cannot create state dir [$replica_state_dir]." "CRITICAL"
Logger "Cannot create state dir [$backup_dir]." "CRITICAL"
Logger "Command output:\n$(cat $RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID)" "ERROR"
exit 1
fi
fi
if ! [ -d "$delete_dir" ]; then
$COMMAND_SUDO mkdir -p "$delete_dir" > "$RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID" 2>&1
if [ $? != 0 ]; then
Logger "Cannot create state dir [$delete_dir]." "CRITICAL"
Logger "Command output:\n$(cat $RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID)" "ERROR"
exit 1
fi
@ -1389,34 +1399,45 @@ function _CreateStateDirsLocal {
}
function _CreateStateDirsRemote {
local replica_state_dir="${1}"
__CheckArguments 1 $# ${FUNCNAME[0]} "$@" #__WITH_PARANOIA_DEBUG
local backup_dir="${1}"
local delete_dir="${2}"
__CheckArguments 2 $# ${FUNCNAME[0]} "$@" #__WITH_PARANOIA_DEBUG
local cmd=
CheckConnectivity3rdPartyHosts
CheckConnectivityRemoteHost
cmd=$SSH_CMD' "if ! [ -d \"'$replica_state_dir'\" ]; then '$COMMAND_SUDO' mkdir -p \"'$replica_state_dir'\"; fi" > "'$RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID'" 2>&1'
cmd=$SSH_CMD' "if ! [ -d \"'$backup_dir'\" ]; then '$COMMAND_SUDO' mkdir -p \"'$backup_dir'\"; fi" > "'$RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID'" 2>&1'
Logger "cmd: $cmd" "DEBUG"
eval "$cmd" &
WaitForTaskCompletion $! 720 1800 ${FUNCNAME[0]}
if [ $? != 0 ]; then
Logger "Cannot create remote state dir [$replica_state_dir]." "CRITICAL"
Logger "Cannot create remote state dir [$backup_dir]." "CRITICAL"
Logger "Command output:\n$(cat $RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID)" "ERROR"
exit 1
fi
cmd=$SSH_CMD' "if ! [ -d \"'$delete_dir'\" ]; then '$COMMAND_SUDO' mkdir -p \"'$delete_dir'\"; fi" > "'$RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID'" 2>&1'
Logger "cmd: $cmd" "DEBUG"
eval "$cmd" &
WaitForTaskCompletion $! 720 1800 ${FUNCNAME[0]}
if [ $? != 0 ]; then
Logger "Cannot create remote state dir [$delete_dir]." "CRITICAL"
Logger "Command output:\n$(cat $RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID)" "ERROR"
exit 1
fi
}
#TODO: also create deleted and backup dirs
# Merge with CheckReplicaPaths ?
function CreateStateDirs {
__CheckArguments 0 $# ${FUNCNAME[0]} "$@" #__WITH_PARANOIA_DEBUG
_CreateStateDirsLocal "${INITIATOR[1]}${INITIATOR[3]}"
_CreateStateDirsLocal "${INITIATOR[1]}${INITIATOR[4]}" "${INITIATOR[1]}${INITIATOR[5]}"
if [ "$REMOTE_OPERATION" != "yes" ]; then
_CreateStateDirsLocal "${TARGET[1]}${TARGET[3]}"
_CreateStateDirsLocal "${TARGET[1]}${TARGET[4]}" "${TARGET[1]}${TARGET[5]}"
else
_CreateStateDirsRemote "${TARGET[1]}${TARGET[3]}"
_CreateStateDirsRemote "${TARGET[1]}${TARGET[4]}" "${TARGET[1]}${TARGET[5]}"
fi
}
@ -2656,6 +2677,7 @@ function Init {
#${REPLICA[8]} contains full resume count file path
# Local variables used for state filenames
local lock_filename="lock"
local state_dir="state"
local backup_dir="backup"
@ -2752,6 +2774,7 @@ function Init {
function Main {
__CheckArguments 0 $# ${FUNCNAME[0]} "$@" #__WITH_PARANOIA_DEBUG
#TODO: Check replicas and Create StateDirs should be the same functions
CreateStateDirs
CheckLocks
Sync

View File

@ -4,7 +4,7 @@ PROGRAM="osync" # Rsync based two way sync engine with fault tolerance
AUTHOR="(C) 2013-2016 by Orsiris de Jong"
CONTACT="http://www.netpower.fr/osync - ozy@netpower.fr"
PROGRAM_VERSION=1.1.1
PROGRAM_BUILD=2016080106
PROGRAM_BUILD=2016080108
IS_STABLE=yes
## FUNC_BUILD=2016071902
@ -1299,12 +1299,22 @@ function CheckCurrentConfig {
###### Osync specific functions (non shared)
function _CreateStateDirsLocal {
local replica_state_dir="${1}"
local backup_dir="${1}"
local delete_dir="${2}"
if ! [ -d "$replica_state_dir" ]; then
$COMMAND_SUDO mkdir -p "$replica_state_dir" > "$RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID" 2>&1
if ! [ -d "$backup_dir" ]; then
$COMMAND_SUDO mkdir -p "$backup_dir" > "$RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID" 2>&1
if [ $? != 0 ]; then
Logger "Cannot create state dir [$replica_state_dir]." "CRITICAL"
Logger "Cannot create state dir [$backup_dir]." "CRITICAL"
Logger "Command output:\n$(cat $RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID)" "ERROR"
exit 1
fi
fi
if ! [ -d "$delete_dir" ]; then
$COMMAND_SUDO mkdir -p "$delete_dir" > "$RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID" 2>&1
if [ $? != 0 ]; then
Logger "Cannot create state dir [$delete_dir]." "CRITICAL"
Logger "Command output:\n$(cat $RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID)" "ERROR"
exit 1
fi
@ -1312,32 +1322,43 @@ function _CreateStateDirsLocal {
}
function _CreateStateDirsRemote {
local replica_state_dir="${1}"
local backup_dir="${1}"
local delete_dir="${2}"
local cmd=
CheckConnectivity3rdPartyHosts
CheckConnectivityRemoteHost
cmd=$SSH_CMD' "if ! [ -d \"'$replica_state_dir'\" ]; then '$COMMAND_SUDO' mkdir -p \"'$replica_state_dir'\"; fi" > "'$RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID'" 2>&1'
cmd=$SSH_CMD' "if ! [ -d \"'$backup_dir'\" ]; then '$COMMAND_SUDO' mkdir -p \"'$backup_dir'\"; fi" > "'$RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID'" 2>&1'
Logger "cmd: $cmd" "DEBUG"
eval "$cmd" &
WaitForTaskCompletion $! 720 1800 ${FUNCNAME[0]}
if [ $? != 0 ]; then
Logger "Cannot create remote state dir [$replica_state_dir]." "CRITICAL"
Logger "Cannot create remote state dir [$backup_dir]." "CRITICAL"
Logger "Command output:\n$(cat $RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID)" "ERROR"
exit 1
fi
cmd=$SSH_CMD' "if ! [ -d \"'$delete_dir'\" ]; then '$COMMAND_SUDO' mkdir -p \"'$delete_dir'\"; fi" > "'$RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID'" 2>&1'
Logger "cmd: $cmd" "DEBUG"
eval "$cmd" &
WaitForTaskCompletion $! 720 1800 ${FUNCNAME[0]}
if [ $? != 0 ]; then
Logger "Cannot create remote state dir [$delete_dir]." "CRITICAL"
Logger "Command output:\n$(cat $RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID)" "ERROR"
exit 1
fi
}
#TODO: also create deleted and backup dirs
# Merge with CheckReplicaPaths ?
function CreateStateDirs {
_CreateStateDirsLocal "${INITIATOR[1]}${INITIATOR[3]}"
_CreateStateDirsLocal "${INITIATOR[1]}${INITIATOR[4]}" "${INITIATOR[1]}${INITIATOR[5]}"
if [ "$REMOTE_OPERATION" != "yes" ]; then
_CreateStateDirsLocal "${TARGET[1]}${TARGET[3]}"
_CreateStateDirsLocal "${TARGET[1]}${TARGET[4]}" "${TARGET[1]}${TARGET[5]}"
else
_CreateStateDirsRemote "${TARGET[1]}${TARGET[3]}"
_CreateStateDirsRemote "${TARGET[1]}${TARGET[4]}" "${TARGET[1]}${TARGET[5]}"
fi
}
@ -2548,6 +2569,7 @@ function Init {
#${REPLICA[8]} contains full resume count file path
# Local variables used for state filenames
local lock_filename="lock"
local state_dir="state"
local backup_dir="backup"
@ -2643,6 +2665,7 @@ function Init {
function Main {
#TODO: Check replicas and Create StateDirs should be the same functions
CreateStateDirs
CheckLocks
Sync