Merge "Use timeout to check for services status"
This commit is contained in:
commit
b1c30b5bc1
|
@ -7,11 +7,14 @@ check_interval=3
|
||||||
|
|
||||||
function check_resource {
|
function check_resource {
|
||||||
|
|
||||||
|
if [ "$#" -ne 3 ]; then
|
||||||
|
echo "ERROR: check_resource function expects 3 parameters, $# given" | tee /dev/fd/2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
service=$1
|
service=$1
|
||||||
state=$2
|
state=$2
|
||||||
timeout=$3
|
timeout=$3
|
||||||
tstart=$(date +%s)
|
|
||||||
tend=$(( $tstart + $timeout ))
|
|
||||||
|
|
||||||
if [ "$state" = "stopped" ]; then
|
if [ "$state" = "stopped" ]; then
|
||||||
match_for_incomplete='Started'
|
match_for_incomplete='Started'
|
||||||
|
@ -19,20 +22,18 @@ function check_resource {
|
||||||
match_for_incomplete='Stopped'
|
match_for_incomplete='Stopped'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
while (( $(date +%s) < $tend )); do
|
if timeout -k 10 $timeout crm_resource --wait; then
|
||||||
node_states=$(pcs status --full | grep "$service" | grep -v Clone)
|
node_states=$(pcs status --full | grep "$service" | grep -v Clone)
|
||||||
if echo "$node_states" | grep -q "$match_for_incomplete"; then
|
if echo "$node_states" | grep -q "$match_for_incomplete"; then
|
||||||
echo "$service not yet $state, sleeping $check_interval seconds."
|
echo "ERROR: cluster settled but $service was not in $state state, exiting." | tee /dev/fd/2
|
||||||
sleep $check_interval
|
exit 1
|
||||||
else
|
else
|
||||||
echo "$service has $state"
|
echo "$service has $state"
|
||||||
timeout -k 10 $timeout crm_resource --wait
|
|
||||||
return
|
|
||||||
fi
|
fi
|
||||||
done
|
else
|
||||||
|
echo "ERROR: cluster remained unstable for more than $timeout seconds, exiting." | tee /dev/fd/2
|
||||||
echo "$service never $state after $timeout seconds" | tee /dev/fd/2
|
exit 1
|
||||||
exit 1
|
fi
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue