Browse code

Define a new function for notifications URL

This defines a new function get_notification_url, which returns the URL
of RabbitMQ when you want connect to it, and uses in
ceilometermiddleware. This fixes an issue when we try to use AMQP for
RPC, but not for notifications.

Change-Id: I14450b2440806a17a90e5ddefc243868fdbe4f2c

Thomas Herve authored on 2017/04/13 21:27:35
Showing 2 changed files
... ...
@@ -122,6 +122,15 @@ function get_transport_url {
122 122
     fi
123 123
 }
124 124
 
125
+# Repeat the definition, in case get_transport_url is overriden for RPC purpose.
126
+# get_notification_url can then be used to talk to rabbit for notifications.
127
+function get_notification_url {
128
+    local virtual_host=$1
129
+    if is_service_enabled rabbit || { [ -n "$RABBIT_HOST" ] && [ -n "$RABBIT_PASSWORD" ]; }; then
130
+        echo "rabbit://$RABBIT_USERID:$RABBIT_PASSWORD@$RABBIT_HOST:5672/$virtual_host"
131
+    fi
132
+}
133
+
125 134
 # iniset configuration
126 135
 function iniset_rpc_backend {
127 136
     local package=$1
... ...
@@ -419,7 +419,7 @@ function configure_swift {
419 419
         iniset ${SWIFT_CONFIG_PROXY_SERVER} filter:ceilometer "set log_level" "WARN"
420 420
         iniset ${SWIFT_CONFIG_PROXY_SERVER} filter:ceilometer paste.filter_factory "ceilometermiddleware.swift:filter_factory"
421 421
         iniset ${SWIFT_CONFIG_PROXY_SERVER} filter:ceilometer control_exchange "swift"
422
-        iniset ${SWIFT_CONFIG_PROXY_SERVER} filter:ceilometer url $(get_transport_url)
422
+        iniset ${SWIFT_CONFIG_PROXY_SERVER} filter:ceilometer url $(get_notification_url)
423 423
         iniset ${SWIFT_CONFIG_PROXY_SERVER} filter:ceilometer driver "messaging"
424 424
         iniset ${SWIFT_CONFIG_PROXY_SERVER} filter:ceilometer topic "notifications"
425 425
         SWIFT_EXTRAS_MIDDLEWARE_LAST="${SWIFT_EXTRAS_MIDDLEWARE_LAST} ceilometer"