diff --git a/script/service-still-runnable b/script/service-still-runnable index a9f294a..8c568d8 100755 --- a/script/service-still-runnable +++ b/script/service-still-runnable @@ -1,23 +1,30 @@ #!/bin/bash # This script is part of Booth. # It checks whether the given resource (service) still has a chance # to run on the local cluster, so that booth knows whether to # acquire the ticket here. set -e service="${1:?Need a resource name as first argument.}" +# might say "resource g_http is NOT running", but still returns 0. +if ! crm_resource -W --resource "$service" &> /dev/null ; then + echo "Error: Resource name '$service' is now known." + exit 1 +fi + + all_INF=1 for eligible_node in `crm_node -p` ; do stat=`crm_failcount -G -r "$service" -N "$eligible_node"` if [[ "$stat" == "scope=status "*"name="*" value="* && "$stat" != *" value=INFINITY" ]] ; then all_INF=0 fi done # if INFINITY on all nodes, the service can't run anywhere. # so tell booth to _not_ get the ticket. exit $all_INF