From 172cfb33f3ee207531a9e82fbc8293d24009a256 Mon Sep 17 00:00:00 2001 From: Mehdi Abaakouk Date: Fri, 5 Oct 2018 11:38:46 +0200 Subject: [PATCH] Fix oslo.messaging default transport Change d3f6ca0b47e2a5a3413b27617d9655f02b191c6a have broken oslo.messaging defaults, no more transport are selected by default and oslo.messaging just crash: Traceback (most recent call last): File "/home/sileht/workspace/openstack/oslo.messaging/.tox/py27/lib/python2.7/site-packages/mock/mock.py", line 1305, in patched return func(*args, **keywargs) File "oslo_messaging/tests/test_transport.py", line 111, in test_get_transport transport_ = oslo_messaging.get_transport(self.conf, **kwargs) File "/home/sileht/workspace/openstack/oslo.messaging/.tox/py27/lib/python2.7/site-packages/debtcollector/removals.py", line 242, in wrapper return f(*args, **kwargs) File "oslo_messaging/transport.py", line 247, in get_transport transport_cls=RPCTransport) File "oslo_messaging/transport.py", line 205, in _get_transport url.transport.split('+')[0], AttributeError: 'NoneType' object has no attribute 'split' This change restores rabbit:// as default. Change-Id: I945a2aca60347dad672cc406cd33e80e93c588a7 --- oslo_messaging/tests/test_transport.py | 13 +++++++++++-- oslo_messaging/transport.py | 3 +-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/oslo_messaging/tests/test_transport.py b/oslo_messaging/tests/test_transport.py index 4d37a6a2b..a2c17f9c4 100755 --- a/oslo_messaging/tests/test_transport.py +++ b/oslo_messaging/tests/test_transport.py @@ -51,6 +51,13 @@ class _FakeManager(object): class GetTransportTestCase(test_utils.BaseTestCase): scenarios = [ + ('default', + dict(url=None, transport_url=None, + control_exchange=None, allowed=None, + expect=dict(backend='rabbit', + exchange=None, + url='rabbit:', + allowed=[]))), ('transport_url', dict(url=None, transport_url='testtransport:', control_exchange=None, allowed=None, @@ -83,8 +90,10 @@ class GetTransportTestCase(test_utils.BaseTestCase): @mock.patch('oslo_messaging.transport.LOG') def test_get_transport(self, fake_logger): - self.config(control_exchange=self.control_exchange, - transport_url=self.transport_url) + self.messaging_conf.reset() + self.config(control_exchange=self.control_exchange) + if self.transport_url: + self.config(transport_url=self.transport_url) driver.DriverManager = mock.Mock() diff --git a/oslo_messaging/transport.py b/oslo_messaging/transport.py index 20ea77896..da4d081b4 100644 --- a/oslo_messaging/transport.py +++ b/oslo_messaging/transport.py @@ -42,6 +42,7 @@ LOG = logging.getLogger(__name__) _transport_opts = [ cfg.StrOpt('transport_url', + default="rabbit://", secret=True, help='The network address and optional user credentials for ' 'connecting to the messaging backend, in URL format. The ' @@ -443,8 +444,6 @@ class TransportURL(object): if not url: conf.register_opts(_transport_opts) url = url or conf.transport_url - if not url: - return cls(conf) if not isinstance(url, six.string_types): raise InvalidTransportURL(url, 'Wrong URL type')