summaryrefslogtreecommitdiff
path: root/ceilometer/messaging.py
diff options
context:
space:
mode:
authorMehdi Abaakouk <mehdi.abaakouk@enovance.com>2014-06-17 10:25:25 +0200
committerMehdi Abaakouk <mehdi.abaakouk@enovance.com>2014-06-17 11:38:11 +0200
commit0fd24771d64a4feeaf346f1a500d9ae725b0a3dd (patch)
treee288782ea635c868b16b161ad29b4ca9c462cdcf /ceilometer/messaging.py
parent5ff550ea46ed7fba6058253986f3065cdbb52576 (diff)
downloadceilometer-0fd24771d64a4feeaf346f1a500d9ae725b0a3dd.tar.gz
Fix messaging.get_transport caching
If some case get_transport can return a cached transport even cache=False This change fixes it and also adds some unit tests for this method Change-Id: If87cf60d0a25a84dd05f1b84c35f1bcbfeb69b75
Diffstat (limited to 'ceilometer/messaging.py')
-rw-r--r--ceilometer/messaging.py9
1 files changed, 4 insertions, 5 deletions
diff --git a/ceilometer/messaging.py b/ceilometer/messaging.py
index fda4320c..14d842ef 100644
--- a/ceilometer/messaging.py
+++ b/ceilometer/messaging.py
@@ -67,8 +67,9 @@ def setup():
def get_transport(url=None, optional=False, cache=True):
"""Initialise the oslo.messaging layer."""
global TRANSPORTS, DEFAULT_URL
- transport = TRANSPORTS.get(url)
- if not transport:
+ cache_key = url or DEFAULT_URL
+ transport = TRANSPORTS.get(cache_key)
+ if not transport or not cache:
try:
transport = oslo.messaging.get_transport(cfg.CONF, url,
aliases=_ALIASES)
@@ -79,10 +80,8 @@ def get_transport(url=None, optional=False, cache=True):
raise
return None
else:
- if not url:
- url = DEFAULT_URL
if cache:
- TRANSPORTS[url] = transport
+ TRANSPORTS[cache_key] = transport
return transport