Implemented --initialize
This commit is contained in:
parent
ad22361ee5
commit
7621f3ec25
|
@ -8,9 +8,11 @@ PROGRAM="osync" # Rsync based two way sync engine with fault tolerance
|
||||||
AUTHOR="(C) 2013-2017 by Orsiris de Jong"
|
AUTHOR="(C) 2013-2017 by Orsiris de Jong"
|
||||||
CONTACT="http://www.netpower.fr/osync - ozy@netpower.fr"
|
CONTACT="http://www.netpower.fr/osync - ozy@netpower.fr"
|
||||||
PROGRAM_VERSION=1.2.5-dev
|
PROGRAM_VERSION=1.2.5-dev
|
||||||
PROGRAM_BUILD=2018062501
|
PROGRAM_BUILD=2018062505
|
||||||
IS_STABLE=no
|
IS_STABLE=no
|
||||||
|
|
||||||
|
#TODO: tidy up ExecTasks comments
|
||||||
|
|
||||||
|
|
||||||
##### Execution order #__WITH_PARANOIA_DEBUG
|
##### Execution order #__WITH_PARANOIA_DEBUG
|
||||||
##### Function Name Is parallel #__WITH_PARANOIA_DEBUG
|
##### Function Name Is parallel #__WITH_PARANOIA_DEBUG
|
||||||
|
@ -1480,6 +1482,35 @@ function deletionPropagation {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function Initialize {
|
||||||
|
__CheckArguments 0 $# "$@" #__WITH_PARANOIA_DEBUG
|
||||||
|
|
||||||
|
Logger "Initializing initiator and target file lists." "NOTICE"
|
||||||
|
|
||||||
|
treeList "${INITIATOR[$__replicaDir]}" "${INITIATOR[$__type]}" "${INITIATOR[$__replicaDir]}${INITIATOR[$__stateDir]}/${INITIATOR[$__type]}${INITIATOR[$__treeAfterFile]}" &
|
||||||
|
initiatorPid="$!"
|
||||||
|
|
||||||
|
treeList "${TARGET[$__replicaDir]}" "${TARGET[$__type]}" "${INITIATOR[$__replicaDir]}${INITIATOR[$__stateDir]}/${TARGET[$__type]}${INITIATOR[$__treeAfterFile]}" &
|
||||||
|
targetPid="$!"
|
||||||
|
|
||||||
|
ExecTasks "$initiatorPid;$targetPid" "${FUNCNAME[0]}" false 0 0 $SOFT_MAX_EXEC_TIME $HARD_MAX_EXEC_TIME false $SLEEP_TIME $KEEP_LOGGING
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
IFS=';' read -r -a pidArray <<< "$(eval echo \"\$WAIT_FOR_TASK_COMPLETION_${FUNCNAME[0]}\")"
|
||||||
|
initiatorFail=false
|
||||||
|
targetFail=false
|
||||||
|
for pid in "${pidArray[@]}"; do
|
||||||
|
pid=${pid%:*}
|
||||||
|
if [ "$pid" == "$initiatorPid" ]; then
|
||||||
|
Logger "Failed to create initialization files for initiator." "ERROR"
|
||||||
|
elif [ "$pid" == "$targetPid" ]; then
|
||||||
|
Logger "Failed to create initialization files for target." "ERROR"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
exit 1
|
||||||
|
resumeTarget="${SYNC_ACTION[8]}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
###### Sync function in 9 steps
|
###### Sync function in 9 steps
|
||||||
######
|
######
|
||||||
###### Step 0a & 0b: Create current file list of replicas
|
###### Step 0a & 0b: Create current file list of replicas
|
||||||
|
@ -2474,6 +2505,7 @@ function Usage {
|
||||||
echo "--force-unlock Will override any existing active or dead locks on initiator and target replica"
|
echo "--force-unlock Will override any existing active or dead locks on initiator and target replica"
|
||||||
echo "--on-changes Will launch a sync task after a short wait period if there is some file activity on initiator replica. You should try daemon mode instead"
|
echo "--on-changes Will launch a sync task after a short wait period if there is some file activity on initiator replica. You should try daemon mode instead"
|
||||||
echo "--no-resume Do not try to resume a failed run. By default, execution is resumed once"
|
echo "--no-resume Do not try to resume a failed run. By default, execution is resumed once"
|
||||||
|
echo "--initialize Create file lists without actually synchronizing anything, this will help setup deletion detections before the first run"
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "[QUICKSYNC OPTIONS]"
|
echo "[QUICKSYNC OPTIONS]"
|
||||||
|
@ -2587,7 +2619,7 @@ sync_on_changes=false
|
||||||
_NOLOCKS=false
|
_NOLOCKS=false
|
||||||
osync_cmd=$0
|
osync_cmd=$0
|
||||||
_SUMMARY=false
|
_SUMMARY=false
|
||||||
|
INITIALIZE="no"
|
||||||
|
|
||||||
function GetCommandlineArguments {
|
function GetCommandlineArguments {
|
||||||
local isFirstArgument=true
|
local isFirstArgument=true
|
||||||
|
@ -2685,6 +2717,10 @@ function GetCommandlineArguments {
|
||||||
LOG_CONFLICTS="yes"
|
LOG_CONFLICTS="yes"
|
||||||
opts=$opts" --alert-conflicts"
|
opts=$opts" --alert-conflicts"
|
||||||
;;
|
;;
|
||||||
|
--initialize)
|
||||||
|
INITIALIZE="yes"
|
||||||
|
opts=$opts "--initialize"
|
||||||
|
;;
|
||||||
--no-prefix)
|
--no-prefix)
|
||||||
opts=$opts" --no-prefix"
|
opts=$opts" --no-prefix"
|
||||||
_LOGGER_PREFIX=""
|
_LOGGER_PREFIX=""
|
||||||
|
@ -2809,14 +2845,20 @@ else
|
||||||
fi
|
fi
|
||||||
CheckReplicas
|
CheckReplicas
|
||||||
RunBeforeHook
|
RunBeforeHook
|
||||||
Main
|
|
||||||
if [ $? -eq 0 ]; then
|
if [ "$INITIALIZE" == "yes" ]; then
|
||||||
SoftDelete
|
HandleLocks
|
||||||
fi
|
Initialize
|
||||||
if [ $_SUMMARY == true ]; then
|
else
|
||||||
Summary
|
Main
|
||||||
fi
|
if [ $? -eq 0 ]; then
|
||||||
if [ $LOG_CONFLICTS == "yes" ]; then
|
SoftDelete
|
||||||
LogConflicts
|
fi
|
||||||
|
if [ $_SUMMARY == true ]; then
|
||||||
|
Summary
|
||||||
|
fi
|
||||||
|
if [ $LOG_CONFLICTS == "yes" ]; then
|
||||||
|
LogConflicts
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
Loading…
Reference in New Issue