Allow the rabbitmq cluster to work on pacemaker remote nodes
This was first observed via
https://bugzilla.redhat.com/show_bug.cgi?id=1435982. Due to the way
the resource agent looks for attrd entries, it will filter out any
node which does not have the @crmd=online attribute. This is the
case for pacemaker-remote nodes. To fix this we chose the more
conservative approach and only do an additional query when the first
one returned no entries. Note that this issue exhibits itself
when 'pcs status' reports rabbitmq started on a bunch of nodes:
Clone Set: rabbitmq-clone [rabbitmq]
Started: [ overcloud-rabbit-0 overcloud-rabbit-1 overcloud-rabbit-2
But the cluster_status command returns a single node:
[root@overcloud-rabbit-1 ~]# rabbitmqctl cluster_status
Cluster status of node 'rabbit@overcloud-rabbit-1' ...
[{nodes,[{disc,['rabbit@overcloud-rabbit-1']}]},
{running_nodes,['rabbit@overcloud-rabbit-1']},
{cluster_name,<<"rabbit@overcloud-rabbit-1.localdomain">>},
{partitions,[]},
{alarms,[{'rabbit@overcloud-rabbit-1',[]}]}]
Also add some text in the help explaining that currently a mixture of
pacemaker-remote and pacemaker nodes is not supported.
We tested this change on a pacemaker-remote only setup successfully:
Clone Set: rabbitmq-clone [rabbitmq]
Started: [ overcloud-rabbit-0 overcloud-rabbit-1 overcloud-rabbit-2
[root@overcloud-rabbit-0 ~]# rabbitmqctl cluster_status
Cluster status of node 'rabbit@overcloud-rabbit-0' ...
[{nodes,[{disc,['rabbit@overcloud-rabbit-0','rabbit@overcloud-rabbit-1',
'rabbit@overcloud-rabbit-2']}]},
{running_nodes,['rabbit@overcloud-rabbit-2','rabbit@overcloud-rabbit-1',
'rabbit@overcloud-rabbit-0']},
{cluster_name,<<"rabbit@overcloud-rabbit-0.localdomain">>},
{partitions,[]},
{alarms,[{'rabbit@overcloud-rabbit-2',[]},
{'rabbit@overcloud-rabbit-1',[]}, {'rabbit@overcloud-rabbit-0',[]}]}]
Signed-Off-By: Michele Baldessari <michele@acksyn.org>
Signed-Off-By: Damien Ciabrini <dciabrin@redhat.com>