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
1 changed files with 26 additions and 19 deletions

View File

@ -41,28 +41,35 @@ API_VERSIONS = {
def make_client(instance):
"""Returns a network proxy"""
if profile is None:
# New SDK
conn = connection.Connection(
config=instance._cli_options,
session=instance.session)
else:
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)
if getattr(instance, "sdk_connection", None) is None:
if profile is None:
# If the installed OpenStackSDK is new enough to not require a
# Profile obejct and osc-lib is not new enough to have created
# it for us, make an SDK Connection.
# NOTE(dtroyer): This can be removed when this bit is in the
# released osc-lib in requirements.txt.
conn = connection.Connection(
config=instance._cli_options,
session=instance.session,
)
else:
# Fall back to the original Connection creation
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('Network client initialized using OpenStack SDK: %s',
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