Files
openstack-ansible-rabbitmq_…/tasks/rabbitmq_feature_flags.yml
Dmitriy Rabotyagov 29d276582c Add retries for feature flags check
As task is execured right after handlers execution, it would make sense
to add retries just in case cluster doesn't come up immediatelly back.

Change-Id: Ia26c3a9e9a7a39969a5b6450703c14aad4760eea
2024-09-05 15:22:43 +02:00

49 lines
1.7 KiB
YAML

---
# Copyright 2024, BBC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
- name: "Gather cluster status"
command: "rabbitmqctl cluster_status --formatter json"
register: _cluster_status
changed_when: False
until: _cluster_status is success
retries: 5
delay: 2
tags:
- rabbitmq-upgrade
- name: "Only enable feature flags if all cluster members are up and stable"
block:
- name: "Check for disabled RabbitMQ feature flags"
shell: "rabbitmqctl list_feature_flags | grep disabled"
args:
executable: /bin/bash
register: _feature_flags
changed_when: False
failed_when: False
# NOTE: changed_when required despite the above check because 'unstable'
# feature flags will remain disabled each time this runs
- name: "Enable all RabbitMQ feature flags"
command: "rabbitmqctl enable_feature_flag all"
changed_when: False
when:
- (_feature_flags.stdout_lines | length) > 0
when:
- ((_cluster_status.stdout | from_json)['running_nodes'] | length) == (groups[rabbitmq_host_group] | length)
- ((_cluster_status.stdout | from_json)['alarms'] | length) == 0
- ((_cluster_status.stdout | from_json)['partitions'] | length) == 0
tags:
- rabbitmq-upgrade