summaryrefslogtreecommitdiff
path: root/ctdb
diff options
context:
space:
mode:
authorMartin Schwenke <martin@meltin.net>2019-07-29 16:43:09 +1000
committerKarolin Seeger <kseeger@samba.org>2019-09-04 08:31:22 +0000
commit7e004230708001878e6b278aab32b6854289dc6a (patch)
tree929be6792147d79433e6f79d2f9592f193970f18 /ctdb
parente876b1e85627db8be59bcbcede7154a55f640b00 (diff)
downloadsamba-7e004230708001878e6b278aab32b6854289dc6a.tar.gz
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)
Diffstat (limited to 'ctdb')
-rw-r--r--ctdb/tests/scripts/integration.bash59
1 files changed, 28 insertions, 31 deletions
diff --git a/ctdb/tests/scripts/integration.bash b/ctdb/tests/scripts/integration.bash
index d8411edc588..3fb6f9ade5e 100644
--- a/ctdb/tests/scripts/integration.bash
+++ b/ctdb/tests/scripts/integration.bash
@@ -314,6 +314,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|*" ;;
@@ -326,42 +339,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
-
- if [ -n "$bits" ] ; then
- local out x line
-
- 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'
+ local out x line
+
+ 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
- fi
+ } <<<"$out" # Yay bash!
}
wait_until_node_has_status ()