From 485986d5ae8925e880a772bd5537e3ce5d373213 Mon Sep 17 00:00:00 2001
From: Dan Smith <dansmith@redhat.com>
Date: Mon, 28 Nov 2016 14:16:39 -0800
Subject: [PATCH] Register opts if we're going to check conf.transport_url in
 parse()

In TransportURL.parse(), a classmethod, we expect conf.transport_url
to be accessible if a url is not passed in. However, since the
_transport_opts are not registered yet, that will fail, which is
a pretty easy case to hit if we're constructing our TransportURL
for the first time on startup.

This registers the opts if we're likely to hit it.

Change-Id: Id94bc0a7fec3ce536e134d4f162ac253a775b238
---
 oslo_messaging/transport.py | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/oslo_messaging/transport.py b/oslo_messaging/transport.py
index b7408201d..084fbc738 100644
--- a/oslo_messaging/transport.py
+++ b/oslo_messaging/transport.py
@@ -395,6 +395,8 @@ class TransportURL(object):
         :returns: A TransportURL
         """
 
+        if not url:
+            conf.register_opts(_transport_opts)
         url = url or conf.transport_url
         if not url:
             return cls(conf, aliases=aliases)