diff options
author | Mehdi Abaakouk <mehdi.abaakouk@enovance.com> | 2014-06-17 10:25:25 +0200 |
---|---|---|
committer | Mehdi Abaakouk <mehdi.abaakouk@enovance.com> | 2014-06-17 11:38:11 +0200 |
commit | 0fd24771d64a4feeaf346f1a500d9ae725b0a3dd (patch) | |
tree | e288782ea635c868b16b161ad29b4ca9c462cdcf /ceilometer/messaging.py | |
parent | 5ff550ea46ed7fba6058253986f3065cdbb52576 (diff) | |
download | ceilometer-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.py | 9 |
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 |