diff options
| author | Dean Troyer <dtroyer@gmail.com> | 2017-12-01 10:37:32 -0600 |
|---|---|---|
| committer | Monty Taylor <mordred@inaugust.com> | 2018-01-22 16:51:03 -0600 |
| commit | a018c6d5d8c51c8b0acef3471441b31984502d46 (patch) | |
| tree | ef486f476ea039d6646c7d5d9e2231fcc6abc8b8 /openstackclient | |
| parent | 1e30be92d8b30e834b161c2246a499775d6ec6bc (diff) | |
| download | python-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.py | 45 |
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 |
