Rework Network client config for new SDK Connection

network.client.make_client() has always put a copy of it's SDK Connection
directly into ClientManager, the new-style Connection create will move
into osc-lib ClientManager, do it here too until then.

Change-Id: I1edfd19c9e73320768fb9640931fafe857c980b4
This commit is contained in:
Dean Troyer 2017-12-01 10:37:32 -06:00 committed by Monty Taylor
parent 1e30be92d8
commit a018c6d5d8
No known key found for this signature in database
GPG Key ID: 7BAE94BC7141A594

View File

@ -41,28 +41,35 @@ API_VERSIONS = {
def make_client(instance): def make_client(instance):
"""Returns a network proxy""" """Returns a network proxy"""
if profile is None: if getattr(instance, "sdk_connection", None) is None:
# New SDK if profile is None:
conn = connection.Connection( # If the installed OpenStackSDK is new enough to not require a
config=instance._cli_options, # Profile obejct and osc-lib is not new enough to have created
session=instance.session) # it for us, make an SDK Connection.
else: # NOTE(dtroyer): This can be removed when this bit is in the
prof = profile.Profile() # released osc-lib in requirements.txt.
prof.set_region(API_NAME, instance.region_name) conn = connection.Connection(
prof.set_version(API_NAME, instance._api_version[API_NAME]) config=instance._cli_options,
prof.set_interface(API_NAME, instance.interface) session=instance.session,
conn = connection.Connection(authenticator=instance.session.auth, )
verify=instance.session.verify, else:
cert=instance.session.cert, # Fall back to the original Connection creation
profile=prof) prof = profile.Profile()
prof.set_region(API_NAME, instance.region_name)
prof.set_version(API_NAME, instance._api_version[API_NAME])
prof.set_interface(API_NAME, instance.interface)
conn = connection.Connection(
authenticator=instance.session.auth,
verify=instance.session.verify,
cert=instance.session.cert,
profile=prof,
)
instance.sdk_connection = conn
LOG.debug('Connection: %s', conn) LOG.debug('Connection: %s', conn)
LOG.debug('Network client initialized using OpenStack SDK: %s', LOG.debug('Network client initialized using OpenStack SDK: %s',
conn.network) conn.network)
# NOTE(dtroyer): Horrible ugly hack since we don't actually save
# the connection anywhere yet, so stash it in the
# instance directly from here for other uses
instance.sdk_connection = conn
return conn.network return conn.network