summaryrefslogtreecommitdiff
path: root/ctdb/tests/scripts/integration.bash
diff options
context:
space:
mode:
Diffstat (limited to 'ctdb/tests/scripts/integration.bash')
-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 a81f2a022eb..36ee09c563b 100644
--- a/ctdb/tests/scripts/integration.bash
+++ b/ctdb/tests/scripts/integration.bash
@@ -322,6 +322,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|*" ;;
@@ -334,42 +347,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 ()