|
|
|
@ -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.2-beta2
|
|
|
|
|
PROGRAM_BUILD=2016102101
|
|
|
|
|
PROGRAM_BUILD=2016102102
|
|
|
|
|
IS_STABLE=no
|
|
|
|
|
|
|
|
|
|
# Execution order #__WITH_PARANOIA_DEBUG
|
|
|
|
@ -45,7 +45,7 @@ IS_STABLE=no
|
|
|
|
|
|
|
|
|
|
#### MINIMAL-FUNCTION-SET BEGIN ####
|
|
|
|
|
|
|
|
|
|
## FUNC_BUILD=2016102101
|
|
|
|
|
## FUNC_BUILD=2016102102
|
|
|
|
|
## BEGIN Generic bash functions written in 2013-2016 by Orsiris de Jong - http://www.netpower.fr - ozy@netpower.fr
|
|
|
|
|
|
|
|
|
|
## To use in a program, define the following variables:
|
|
|
|
@ -917,19 +917,20 @@ function IsNumericExpand {
|
|
|
|
|
local re="^-?[0-9]+([.][0-9]+)?$"
|
|
|
|
|
|
|
|
|
|
if [[ $value =~ $re ]]; then
|
|
|
|
|
echo 1
|
|
|
|
|
echo 1 && return 1
|
|
|
|
|
else
|
|
|
|
|
echo 0
|
|
|
|
|
echo 0 && return 0
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# Usage [ $(IsNumeric $var) -eq 1 ]
|
|
|
|
|
function IsNumeric {
|
|
|
|
|
local value="${1}"
|
|
|
|
|
|
|
|
|
|
if [[ $value =~ ^[0-9]+([.][0-9]+)?$ ]]; then
|
|
|
|
|
echo 1
|
|
|
|
|
echo 1 && return 1
|
|
|
|
|
else
|
|
|
|
|
echo 0
|
|
|
|
|
echo 0 && return 0
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -937,9 +938,9 @@ function IsInteger {
|
|
|
|
|
local value="${1}"
|
|
|
|
|
|
|
|
|
|
if [[ $value =~ ^[0-9]+$ ]]; then
|
|
|
|
|
echo 1
|
|
|
|
|
echo 1 && return 1
|
|
|
|
|
else
|
|
|
|
|
echo 0
|
|
|
|
|
echo 0 && return 0
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -973,13 +974,13 @@ arrayContains () {
|
|
|
|
|
local e
|
|
|
|
|
|
|
|
|
|
if [ "$2" == "" ]; then
|
|
|
|
|
echo 1 && return 1
|
|
|
|
|
echo 0 && return 0
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
for e in "${@:2}"; do
|
|
|
|
|
[[ "$e" == "$1" ]] && echo 0 && return 0
|
|
|
|
|
[[ "$e" == "$1" ]] && echo 1 && return 1
|
|
|
|
|
done
|
|
|
|
|
echo 1 && return 1
|
|
|
|
|
echo 0 && return 0
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function GetLocalOS {
|
|
|
|
@ -1714,7 +1715,7 @@ function CheckCurrentConfigAll {
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if [ "$SKIP_DELETION" != "" ] && [ $(arrayContains "${INITIATOR[$__type]}" "${SKIP_DELETION[@]}") -ne 0 ] && [ $(arrayContains "${TARGET[$__type]}" "${SKIP_DELETION[@]}") -ne 0 ]; then
|
|
|
|
|
if [ "$SKIP_DELETION" != "" ] && [ $(arrayContains "${INITIATOR[$__type]}" "${SKIP_DELETION[@]}") -eq 0 ] && [ $(arrayContains "${TARGET[$__type]}" "${SKIP_DELETION[@]}") -eq 0 ]; then
|
|
|
|
|
Logger "Bogus skip deletion parameter." "CRITICAL"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
@ -2715,7 +2716,7 @@ function deletionPropagation {
|
|
|
|
|
#TODO: deletionPropagation replicaType = source replica whereas _deleteXxxxxx replicaType = dest replica
|
|
|
|
|
|
|
|
|
|
if [ "$replicaType" == "${INITIATOR[$__type]}" ]; then
|
|
|
|
|
if [ $(arrayContains "${INITIATOR[$__type]}" "${SKIP_DELETION[@]}") -ne 0 ]; then
|
|
|
|
|
if [ $(arrayContains "${INITIATOR[$__type]}" "${SKIP_DELETION[@]}") -eq 0 ]; then
|
|
|
|
|
replicaDir="${INITIATOR[$__replicaDir]}"
|
|
|
|
|
deleteDir="${INITIATOR[$__deleteDir]}"
|
|
|
|
|
|
|
|
|
@ -2729,7 +2730,7 @@ function deletionPropagation {
|
|
|
|
|
Logger "Skipping deletion on replica $replicaType." "NOTICE"
|
|
|
|
|
fi
|
|
|
|
|
elif [ "$replicaType" == "${TARGET[$__type]}" ]; then
|
|
|
|
|
if [ $(arrayContains "${TARGET[$__type]}" "${SKIP_DELETION[@]}") -ne 0 ]; then
|
|
|
|
|
if [ $(arrayContains "${TARGET[$__type]}" "${SKIP_DELETION[@]}") -eq 0 ]; then
|
|
|
|
|
replicaDir="${TARGET[$__replicaDir]}"
|
|
|
|
|
deleteDir="${TARGET[$__deleteDir]}"
|
|
|
|
|
|
|
|
|
|