diff options
author | Giulio Fidente <gfidente@redhat.com> | 2015-12-22 12:06:55 +0100 |
---|---|---|
committer | Jiri Stransky <jistr@redhat.com> | 2016-01-26 15:21:24 +0100 |
commit | 9e5bc6593898e4a400797ab5d3a74db7b4746329 (patch) | |
tree | 83097c57e0f20dda1aa1e9a6c8a15cf23140159a /extraconfig/tasks/pacemaker_common_functions.sh | |
parent | 2a9985459b1ef76cfc410e79417a0d6292670387 (diff) |
Split pacemaker common check_service function out of _restart.sh
Also split out echo_error function to DRY the error output code and
allow changing the way we report errors in a single place.
Change-Id: I448bf0eb49390f03155335736bb4ab4e979db128
Co-Authored-By: Jiri Stransky <jistr@redhat.com>
Diffstat (limited to 'extraconfig/tasks/pacemaker_common_functions.sh')
-rwxr-xr-x | extraconfig/tasks/pacemaker_common_functions.sh | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/extraconfig/tasks/pacemaker_common_functions.sh b/extraconfig/tasks/pacemaker_common_functions.sh new file mode 100755 index 00000000..32d06c4a --- /dev/null +++ b/extraconfig/tasks/pacemaker_common_functions.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +set -eu + +function check_resource { + + if [ "$#" -ne 3 ]; then + echo_error "ERROR: check_resource function expects 3 parameters, $# given" + exit 1 + fi + + service=$1 + state=$2 + timeout=$3 + + if [ "$state" = "stopped" ]; then + match_for_incomplete='Started' + else # started + match_for_incomplete='Stopped' + fi + + 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_error "ERROR: cluster finished transition but $service was not in $state state, exiting." + exit 1 + else + echo "$service has $state" + fi + else + echo_error "ERROR: cluster remained unstable for more than $timeout seconds, exiting." + exit 1 + fi + +} + +function echo_error { + echo "$@" | tee /dev/fd2 +} |