Fixed locking / unlocking mechanism

This commit is contained in:
deajan 2016-08-28 18:40:39 +02:00
parent 7190ffeae5
commit 52b31f7bca
1 changed files with 11 additions and 11 deletions

View File

@ -481,20 +481,22 @@ function CheckLocks {
function _WriteLockFilesLocal { function _WriteLockFilesLocal {
local lockfile="${1}" local lockfile="${1}"
__CheckArguments 1 $# ${FUNCNAME[0]} "$@" #__WITH_PARANOIA_DEBUG local replica_type="${2}"
__CheckArguments 2 $# ${FUNCNAME[0]} "$@" #__WITH_PARANOIA_DEBUG
$COMMAND_SUDO echo "$SCRIPT_PID@$INSTANCE_ID" > "$lockfile" $COMMAND_SUDO echo "$SCRIPT_PID@$INSTANCE_ID" > "$lockfile"
if [ $? != 0 ]; then if [ $? != 0 ]; then
Logger "Could not create lock file [$lockfile]." "CRITICAL" Logger "Could not create lock file on local $replica_type in [$lockfile]." "CRITICAL"
exit 1 exit 1
else else
Logger "Locked replica on [$lockfile]." "DEBUG" Logger "Locked local $replica_type replica in [$lockfile]." "DEBUG"
fi fi
} }
function _WriteLockFilesRemote { function _WriteLockFilesRemote {
local lockfile="${1}" local lockfile="${1}"
__CheckArguments 1 $# ${FUNCNAME[0]} "$@" #__WITH_PARANOIA_DEBUG local replica_type="${2}"
__CheckArguments 2 $# ${FUNCNAME[0]} "$@" #__WITH_PARANOIA_DEBUG
local cmd= local cmd=
@ -504,12 +506,11 @@ function _WriteLockFilesRemote {
cmd=$SSH_CMD' "echo '$SCRIPT_PID@$INSTANCE_ID' | '$COMMAND_SUDO' tee \"'$lockfile'\"" > /dev/null 2>&1' cmd=$SSH_CMD' "echo '$SCRIPT_PID@$INSTANCE_ID' | '$COMMAND_SUDO' tee \"'$lockfile'\"" > /dev/null 2>&1'
Logger "cmd: $cmd" "DEBUG" Logger "cmd: $cmd" "DEBUG"
eval "$cmd" eval "$cmd"
eval "mongo"
if [ $? != 0 ]; then if [ $? != 0 ]; then
Logger "Could not set lock on remote $replica_type replica." "CRITICAL" Logger "Could not create lock file on remote $replica_type in [$lockfile]." "CRITICAL"
exit 1 exit 1
else else
Logger "Locked remote $replica_type replica." "DEBUG" Logger "Locked remote $replica_type replica in [$lockfile]." "DEBUG"
fi fi
} }
@ -521,14 +522,14 @@ function WriteLockFiles {
local pidArray local pidArray
local pid local pid
_WriteLockFilesLocal "${INITIATOR[2]}" & _WriteLockFilesLocal "${INITIATOR[2]}" "${INITIATOR[0]}"&
initiatorPid="$!" initiatorPid="$!"
if [ "$REMOTE_OPERATION" != "yes" ]; then if [ "$REMOTE_OPERATION" != "yes" ]; then
_WriteLockFilesLocal "${TARGET[2]}" & _WriteLockFilesLocal "${TARGET[2]}" "${TARGET[0]}" &
targetPid="$!" targetPid="$!"
else else
_WriteLockFilesRemote "${TARGET[2]}" & _WriteLockFilesRemote "${TARGET[2]}" "${TARGET[0]}" &
targetPid="$!" targetPid="$!"
fi fi
@ -545,7 +546,6 @@ function WriteLockFiles {
done done
Logger "Cancelling task." "CRITICAL" Logger "Cancelling task." "CRITICAL"
local
exit 1 exit 1
fi fi
} }