Blame SOURCES/bz1343905-rabbitmq-automatic-cluster-recovery.patch

581d9d
commit 1621dbb60454840d469f3a0e317a97d94510f7ab
581d9d
Author: John Eckersberg <jeckersb@redhat.com>
581d9d
Date:   Tue Jul 26 13:47:39 2016 -0400
581d9d
581d9d
    rabbitmq: Allow automatic cluster recovery before forcing it
581d9d
    
581d9d
    When joining a node into an existing cluster, check to see if it is
581d9d
    already clustered before force removing it from the cluster and
581d9d
    re-adding.  If the clustering is already functional there's no need to
581d9d
    force it again.
581d9d
581d9d
diff --git a/heartbeat/rabbitmq-cluster b/heartbeat/rabbitmq-cluster
581d9d
index 651b837..966dd64 100755
581d9d
--- a/heartbeat/rabbitmq-cluster
581d9d
+++ b/heartbeat/rabbitmq-cluster
581d9d
@@ -238,6 +238,11 @@ rmq_start_first()
581d9d
 	return $rc
581d9d
 }
581d9d
 
581d9d
+rmq_is_clustered()
581d9d
+{
581d9d
+    $RMQ_CTL eval 'rabbit_mnesia:is_clustered().' | grep -q true
581d9d
+}
581d9d
+
581d9d
 rmq_join_existing()
581d9d
 {
581d9d
 	local join_list="$1"
581d9d
@@ -249,6 +254,11 @@ rmq_join_existing()
581d9d
 		return $OCF_ERR_GENERIC
581d9d
 	fi
581d9d
 
581d9d
+        if rmq_is_clustered; then
581d9d
+            ocf_log info "Successfully re-joined existing rabbitmq cluster automatically"
581d9d
+            return $OCF_SUCCESS
581d9d
+        fi
581d9d
+
581d9d
 	# unconditionally join the cluster
581d9d
 	$RMQ_CTL stop_app > /dev/null 2>&1
581d9d
 	for node in $(echo "$join_list"); do