summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
authorDean Troyer <dtroyer@gmail.com>2017-12-01 10:37:32 -0600
committerMonty Taylor <mordred@inaugust.com>2018-01-22 16:51:03 -0600
commita018c6d5d8c51c8b0acef3471441b31984502d46 (patch)
treeef486f476ea039d6646c7d5d9e2231fcc6abc8b8 /openstackclient
parent1e30be92d8b30e834b161c2246a499775d6ec6bc (diff)
downloadpython-openstackclient-a018c6d5d8c51c8b0acef3471441b31984502d46.tar.gz
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
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/network/client.py45
1 files changed, 26 insertions, 19 deletions
diff --git a/openstackclient/network/client.py b/openstackclient/network/client.py
index 6f74303d..878672b7 100644
--- a/openstackclient/network/client.py
+++ b/openstackclient/network/client.py
@@ -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