diff options
author | Mehdi Abaakouk <mehdi.abaakouk@enovance.com> | 2014-05-26 15:37:36 +0200 |
---|---|---|
committer | Mehdi Abaakouk <mehdi.abaakouk@enovance.com> | 2014-05-27 18:51:42 +0200 |
commit | 9df30aad188f36309ff817810d509f37e951426e (patch) | |
tree | 48bdaa078791ffa3351f46741bdf83cf4750840a /ceilometer/messaging.py | |
parent | 08eea702572a1f36c06da201b5f6b9ab6ff90f15 (diff) | |
download | ceilometer-9df30aad188f36309ff817810d509f37e951426e.tar.gz |
Don't rely on oslomsg configuration options
We shouldn't use internal oslo.messaging configuration options.
This patch removes them when an oslo.messaging public API equivalent is
possible.
Closes-bug: #1323324
Change-Id: I0d901bfaf7dd67f0adb0ad9c1b4371994573a6c8
Diffstat (limited to 'ceilometer/messaging.py')
-rw-r--r-- | ceilometer/messaging.py | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/ceilometer/messaging.py b/ceilometer/messaging.py index 24f94a7e..7d92e03d 100644 --- a/ceilometer/messaging.py +++ b/ceilometer/messaging.py @@ -62,7 +62,7 @@ class JsonPayloadSerializer(oslo.messaging.NoOpSerializer): return jsonutils.to_primitive(entity, convert_instances=True) -def setup(url=None): +def setup(url=None, optional=False): """Initialise the oslo.messaging layer.""" global TRANSPORT, NOTIFIER @@ -73,9 +73,17 @@ def setup(url=None): if not TRANSPORT: oslo.messaging.set_transport_defaults('ceilometer') - TRANSPORT = oslo.messaging.get_transport(cfg.CONF, url, - aliases=_ALIASES) - if not NOTIFIER: + try: + TRANSPORT = oslo.messaging.get_transport(cfg.CONF, url, + aliases=_ALIASES) + except oslo.messaging.InvalidTransportURL as e: + TRANSPORT = None + if not optional or e.url: + # NOTE(sileht): oslo.messaging is configured but unloadable + # so reraise the exception + raise + + if not NOTIFIER and TRANSPORT: serializer = RequestContextSerializer(JsonPayloadSerializer()) NOTIFIER = oslo.messaging.Notifier(TRANSPORT, serializer=serializer) @@ -83,10 +91,9 @@ def setup(url=None): def cleanup(): """Cleanup the oslo.messaging layer.""" global TRANSPORT, NOTIFIER - assert TRANSPORT is not None - assert NOTIFIER is not None - TRANSPORT.cleanup() - TRANSPORT = NOTIFIER = None + if TRANSPORT: + TRANSPORT.cleanup() + TRANSPORT = NOTIFIER = None def get_rpc_server(topic, endpoint): |