Skip to content

Commit

Permalink
Merge pull request #1335 from stackhpc/upgrade-prerequisites
Browse files Browse the repository at this point in the history
Fix upgrade-prerequisites
  • Loading branch information
Alex-Welsh authored Nov 13, 2024
2 parents f945151 + ecc15f5 commit 548a236
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 8 deletions.
10 changes: 5 additions & 5 deletions tools/rabbitmq-quorum-migration.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,15 @@ fi

if [[ ! "$1" = "--skip-checks" ]]; then
# Fail if clocks are not synced
if ! kayobe overcloud host command run -l controllers -b --command "timedatectl status | grep 'synchronized: yes'"; then
if ! ( kayobe overcloud host command run -l controllers -b --command "timedatectl status | grep 'synchronized: yes'" ); then
echo "Failed precheck: Time not synced on controllers"
echo "Use 'timedatectl status' to check sync state"
echo "Either wait for sync or use 'chronyc makestep'"
exit 1
fi
kayobe overcloud service configuration generate --node-config-dir /tmp/rabbit-migration --kolla-tags none
# Fail if HA is set or quorum is not
if ! grep 'om_enable_rabbitmq_quorum_queues: true' $KOLLA_CONFIG_PATH/globals.yml || grep 'om_enable_rabbitmq_high_availability: true' $KOLLA_CONFIG_PATH/globals.yml; then
if ! ( grep 'om_enable_rabbitmq_quorum_queues: true' $KOLLA_CONFIG_PATH/globals.yml || grep 'om_enable_rabbitmq_high_availability: true' $KOLLA_CONFIG_PATH/globals.yml ); then
echo "Failed precheck: om_enable_rabbitmq_quorum_queues must be enabled, om_enable_rabbitmq_high_availability must be disabled"
exit 1
fi
Expand All @@ -35,12 +35,12 @@ kayobe kolla ansible run rabbitmq-reset-state
if [[ ! "$1" = "--skip-checks" ]]; then
# Fail if any queues still exist
sleep 20
if kayobe overcloud host command run -l controllers -b --command "docker exec $RABBITMQ_CONTAINER_NAME rabbitmqctl list_queues name --silent | grep -v '^$'"; then
if ( kayobe overcloud host command run -l controllers -b --command "docker exec $RABBITMQ_CONTAINER_NAME rabbitmqctl list_queues name --silent | grep -v '^$'" ); then
echo "Failed check: RabbitMQ has not stopped properly, queues still exist"
exit 1
fi
# Fail if any exchanges still exist (excluding those starting with 'amq.')
if kayobe overcloud host command run -l controllers -b --command "docker exec $RABBITMQ_CONTAINER_NAME rabbitmqctl list_exchanges name --silent | grep -v '^$' | grep -v '^amq.'"; then
if ( kayobe overcloud host command run -l controllers -b --command "docker exec $RABBITMQ_CONTAINER_NAME rabbitmqctl list_exchanges name --silent | grep -v '^$' | grep -v '^amq.'" ); then
echo "Failed check: RabbitMQ has not stopped properly, exchanges still exist"
exit 1
fi
Expand All @@ -52,7 +52,7 @@ kayobe kolla ansible run deploy-containers -kt $RABBITMQ_SERVICES_TO_RESTART
if [[ ! "$1" = "--skip-checks" ]]; then
sleep 20
# Assert that at least one quorum queue exists on each controller
if kayobe overcloud host command run -l controllers -b --command "docker exec $RABBITMQ_CONTAINER_NAME rabbitmqctl list_queues type | grep quorum"; then
if ( kayobe overcloud host command run -l controllers -b --command "docker exec $RABBITMQ_CONTAINER_NAME rabbitmqctl list_queues type | grep quorum" ); then
echo "Queues migrated successfully"
else
echo "Failed post-check: A controller does not have any quorum queues"
Expand Down
10 changes: 7 additions & 3 deletions tools/upgrade-prerequisites.sh
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,19 @@ function rabbit_upgrade() {
function rabbit_migration() {
if ! kayobe overcloud host command run -l controllers -b --command "docker exec rabbitmq rabbitmqctl list_queues type | grep quorum"; then
# Set quorum flag, execute RabbitMQ queue migration script, unset quorum flag (to avoid git conflicts)
KOLLA_GLOBALS_PATH=$KAYOBE_CONFIG_PATH/kolla/globals.yml
if [[ $KAYOBE_ENVIRONMENT ]]; then
KOLLA_GLOBALS_PATH=$KAYOBE_CONFIG_PATH/environments/$KAYOBE_ENVIRONMENT/kolla/globals.yml
fi
sed -i -e 's/om_enable_rabbitmq_high_availability: true/om_enable_rabbitmq_high_availability: false/' \
-e 's/om_enable_rabbitmq_quorum_queues: false/om_enable_rabbitmq_quorum_queues: true/' \
$KAYOBE_CONFIG_PATH/environments/$KAYOBE_ENVIRONMENT/kolla/globals.yml
$KOLLA_GLOBALS_PATH

$KAYOBE_CONFIG_ROOT/tools/rabbitmq-quorum-migration.sh
$KAYOBE_CONFIG_PATH/../../tools/rabbitmq-quorum-migration.sh

sed -i -e 's/om_enable_rabbitmq_high_availability: false/om_enable_rabbitmq_high_availability: true/' \
-e 's/om_enable_rabbitmq_quorum_queues: true/om_enable_rabbitmq_quorum_queues: false/' \
$KAYOBE_CONFIG_PATH/environments/$KAYOBE_ENVIRONMENT/kolla/globals.yml
$KOLLA_GLOBALS_PATH
fi
}

Expand Down

0 comments on commit 548a236

Please sign in to comment.