From 71cf53a9f60176419732f3ecbbce11c75190c059 Mon Sep 17 00:00:00 2001 From: Jay Pipes Date: Fri, 9 Nov 2012 10:38:49 -0500 Subject: [PATCH] Set the rabbit_durable_queues to match local consumers Due to a problematic bug in Glance (https://bugs.launchpad.net/glance/+bug/1074132), I was unable to get stack.sh to complete successfully. The workaround on the Glance bug was to set the rabbit_durable_queues value to match the setting of the local Rabbit consumers and exchanges. This patch merely looks for any consumer or exchange that is durable and ensures that the default durable_rabbit_queues config option of False is set to True in that case. Change-Id: Ia5a165a5a06d11d1fe6492ca32139972d49d3a1e --- lib/glance | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/lib/glance b/lib/glance index b02a4b63c8..60026d546a 100644 --- a/lib/glance +++ b/lib/glance @@ -70,6 +70,13 @@ function configure_glanceclient() { setup_develop $GLANCECLIENT_DIR } +# durable_glance_queues() - Determine if RabbitMQ queues are durable or not +function durable_glance_queues() { + test `rabbitmqctl list_queues name durable | grep true | wc -l` -gt 0 && return 0 + test `rabbitmqctl list_exchanges name durable | grep true | wc -l` -gt 0 && return 0 + return 1 +} + # configure_glance() - Set config files, create data dirs, etc function configure_glance() { setup_develop $GLANCE_DIR @@ -120,6 +127,12 @@ function configure_glance() { iniset $GLANCE_API_CONF DEFAULT notifier_strategy rabbit iniset $GLANCE_API_CONF DEFAULT rabbit_host $RABBIT_HOST iniset $GLANCE_API_CONF DEFAULT rabbit_password $RABBIT_PASSWORD + if [[ durable_glance_queues -eq 0 ]]; then + # This gets around https://bugs.launchpad.net/glance/+bug/1074132 + # that results in a g-api server becoming unresponsive during + # startup... + iniset $GLANCE_API_CONF DEFAULT rabbit_durable_queues True + fi fi if [[ "$KEYSTONE_TOKEN_FORMAT" == "PKI" ]]; then iniset $GLANCE_API_CONF keystone_authtoken signing_dir $GLANCE_AUTH_CACHE_DIR/api