mirror of
https://github.com/samba-team/samba.git
synced 2025-03-08 04:58:40 +03:00
ctdb-tests: Handle special cases first and return
All the other cases involve matching bits. BUG: https://bugzilla.samba.org/show_bug.cgi?id=14085 Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com> (cherry picked from commit bff1a3a548a2cace997b767d78bb824438664cb7)
This commit is contained in:
parent
c3f2c55320
commit
31066fde8c
@ -318,6 +318,19 @@ node_has_status ()
|
||||
local pnn="$1"
|
||||
local status="$2"
|
||||
|
||||
case "$status" in
|
||||
recovered)
|
||||
! $CTDB status -n "$pnn" | \
|
||||
grep -Eq '^Recovery mode:RECOVERY \(1\)$'
|
||||
return
|
||||
;;
|
||||
notlmaster)
|
||||
! $CTDB status -n "$pnn" | \
|
||||
grep -Eq "^hash:.* lmaster:${pnn}\$"
|
||||
return
|
||||
;;
|
||||
esac
|
||||
|
||||
local bits
|
||||
case "$status" in
|
||||
unhealthy) bits="?|?|?|1|*" ;;
|
||||
@ -330,42 +343,26 @@ node_has_status ()
|
||||
enabled) bits="?|?|0|*" ;;
|
||||
stopped) bits="?|?|?|?|1|*" ;;
|
||||
notstopped) bits="?|?|?|?|0|*" ;;
|
||||
recovered)
|
||||
! $CTDB status -n "$pnn" | \
|
||||
grep -Eq '^Recovery mode:RECOVERY \(1\)$'
|
||||
return
|
||||
;;
|
||||
notlmaster)
|
||||
! $CTDB status -n "$pnn" | \
|
||||
grep -Eq "^hash:.* lmaster:${pnn}\$"
|
||||
return
|
||||
;;
|
||||
*)
|
||||
echo "node_has_status: unknown status \"$status\""
|
||||
return 1
|
||||
esac
|
||||
local out x line
|
||||
|
||||
if [ -n "$bits" ] ; then
|
||||
local out x line
|
||||
out=$($CTDB -X status 2>&1) || return 1
|
||||
|
||||
out=$($CTDB -X status 2>&1) || return 1
|
||||
|
||||
{
|
||||
read x
|
||||
while read line ; do
|
||||
# This needs to be done in 2 steps to
|
||||
# avoid false matches.
|
||||
local line_bits="${line#|${pnn}|*|}"
|
||||
[ "$line_bits" = "$line" ] && continue
|
||||
[ "${line_bits#${bits}}" != "$line_bits" ] && \
|
||||
return 0
|
||||
done
|
||||
return 1
|
||||
} <<<"$out" # Yay bash!
|
||||
else
|
||||
echo 'node_has_status: unknown mode, $bits not set'
|
||||
{
|
||||
read x
|
||||
while read line ; do
|
||||
# This needs to be done in 2 steps to
|
||||
# avoid false matches.
|
||||
local line_bits="${line#|${pnn}|*|}"
|
||||
[ "$line_bits" = "$line" ] && continue
|
||||
[ "${line_bits#${bits}}" != "$line_bits" ] && \
|
||||
return 0
|
||||
done
|
||||
return 1
|
||||
fi
|
||||
} <<<"$out" # Yay bash!
|
||||
}
|
||||
|
||||
wait_until_node_has_status ()
|
||||
|
Loading…
x
Reference in New Issue
Block a user