Filter for local nodes in check_resource function
authorRaoul Scarazzini <rscarazz@redhat.com>
Fri, 1 Apr 2016 13:52:33 +0000 (15:52 +0200)
committerGiulio Fidente <gfidente@redhat.com>
Mon, 4 Apr 2016 08:41:37 +0000 (10:41 +0200)
While having extra customizations inside a TripleO deployed
Pacemaker environment, say you have instance HA with
pacemaker_remoted or you need to configure an external arbitrator
for something, then the status of the resources for remote nodes
is "Stopped".
This leads to failures while, for example, scaling up.
This fixes the way status is checked, filtering just local nodes.

Co-Authored-By: Giulio Fidente <gfidente@redhat.com>
Change-Id: I8dc25f5d7031c265858afd5a266fda5315ae37a0

extraconfig/tasks/pacemaker_common_functions.sh

index 0808763..7d794c9 100755 (executable)
@@ -19,8 +19,9 @@ function check_resource {
       match_for_incomplete='Stopped'
   fi
 
+  nodes_local=$(pcs status  | grep ^Online | sed 's/.*\[ \(.*\) \]/\1/g' | sed 's/ /\|/g')
   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 | { egrep "$nodes_local" || true; } )
       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