Improve RabbitMQ HA checks in OSTF
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Fuel for OpenStack |
Invalid
|
Medium
|
Fuel Python (Deprecated) |
Bug Description
RabbitMQ OSTF test performs only "rabbitmqctl cluster_status" check . No functionality is checked by OSTF, so it never covers pacemaker logic concerning assembly rabbitmq cluster.
There are some situations when OSTF doesn't reflect actual rabbitmq status:
- "rabbitmqctl cluster_status" shows that all nodes are running but pacemaker ocf script hasn't opened 5673 port in iptables yet (or there is remained an extra iptables rule that blocks 5673 port);
- "rabbitmqctl cluster_status" shows that all nodes are running but pacemaker is just checking if the rabbitmq starts (start phase) and it is going to shutdown rabbitmq before performing further steps;
- "rabbitmqctl cluster_status" shows that all nodes are running but it is still inaccessible thru haproxy because of haproxy, vip__management, network or any other issue. In this case rabbitmq looks like a nonworking for other services.
We want to make sure that rabbitmq is successfully assembled by pacemaker and ready to serve requests from other services.
The better way would be perform creating some queue and sending some test messages, but it is not realized in OSTF yet (please see https:/
Also, sometimes rabbitmq cluster looks healthy, but "rabbitmqctl list_channels" hangs and Openstack services cannot use channels as well. I believe this case should be also addressed.
related bug https:/ /bugs.launchpad .net/fuel/ +bug/1383247 (some code samples from https:/ /review. openstack. org/#/c/ 131742/ could be reused, perhaps)