summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-02-16 11:23:26 +0000
committerGerrit Code Review <review@openstack.org>2016-02-16 11:23:26 +0000
commitb1c30b5bc1c4eeac34d4038c812904d577c7cf45 (patch)
tree64bf5435f6c6f2e098933babb93858ec5036b4fe
parent43e0a3df21a7800cc670bb23388ccb42609b1b75 (diff)
parent2a9985459b1ef76cfc410e79417a0d6292670387 (diff)
Merge "Use timeout to check for services status"
-rwxr-xr-xextraconfig/tasks/pacemaker_resource_restart.sh23
1 files changed, 12 insertions, 11 deletions
diff --git a/extraconfig/tasks/pacemaker_resource_restart.sh b/extraconfig/tasks/pacemaker_resource_restart.sh
index 12201097..dfc335bf 100755
--- a/extraconfig/tasks/pacemaker_resource_restart.sh
+++ b/extraconfig/tasks/pacemaker_resource_restart.sh
@@ -7,11 +7,14 @@ check_interval=3
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
state=$2
timeout=$3
- tstart=$(date +%s)
- tend=$(( $tstart + $timeout ))
if [ "$state" = "stopped" ]; then
match_for_incomplete='Started'
@@ -19,20 +22,18 @@ function check_resource {
match_for_incomplete='Stopped'
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)
if echo "$node_states" | grep -q "$match_for_incomplete"; then
- echo "$service not yet $state, sleeping $check_interval seconds."
- sleep $check_interval
+ echo "ERROR: cluster settled but $service was not in $state state, exiting." | tee /dev/fd/2
+ exit 1
else
echo "$service has $state"
- timeout -k 10 $timeout crm_resource --wait
- return
fi
- done
-
- echo "$service never $state after $timeout seconds" | tee /dev/fd/2
- exit 1
+ else
+ echo "ERROR: cluster remained unstable for more than $timeout seconds, exiting." | tee /dev/fd/2
+ exit 1
+ fi
}