summaryrefslogtreecommitdiff
path: root/swiftclient/client.py
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2020-06-17 22:41:58 +0000
committerGerrit Code Review <review@openstack.org>2020-06-17 22:41:58 +0000
commitb63d9a3e96663753f643df41a420b1228210f9fa (patch)
treef01fa9ae18a7bcdfaab13d902fd73629049a6e7b /swiftclient/client.py
parent7852314b0bb591cdf5040b2d2466b959c222bb5a (diff)
parent257a7185a8d5fdc11d91058f1735fa4273719aa9 (diff)
downloadpython-swiftclient-b63d9a3e96663753f643df41a420b1228210f9fa.tar.gz
Merge "Application credential support follow-up"
Diffstat (limited to 'swiftclient/client.py')
-rw-r--r--swiftclient/client.py29
1 files changed, 17 insertions, 12 deletions
diff --git a/swiftclient/client.py b/swiftclient/client.py
index 67440dd..0aba629 100644
--- a/swiftclient/client.py
+++ b/swiftclient/client.py
@@ -62,7 +62,7 @@ except ImportError:
def createLock(self):
self.lock = None
-ksexceptions = ksclient_v2 = ksclient_v3 = None
+ksexceptions = ksclient_v2 = ksclient_v3 = ksa_v3 = None
try:
from keystoneclient import exceptions as ksexceptions
# prevent keystoneclient warning us that it has no log handlers
@@ -72,8 +72,8 @@ except ImportError:
pass
try:
from keystoneclient.v3 import client as ksclient_v3
- from keystoneauth1.identity import v3
- from keystoneauth1 import session
+ from keystoneauth1.identity import v3 as ksa_v3
+ from keystoneauth1 import session as ksa_session
from keystoneauth1 import exceptions as ksauthexceptions
except ImportError:
pass
@@ -627,22 +627,27 @@ variables to be set or overridden with -A, -U, or -K.''')
filter_kwargs['attr'] = 'region'
filter_kwargs['filter_value'] = os_options['region_name']
- if os_options.get('auth_type') == 'v3applicationcredential':
- try:
- v3
- except NameError:
+ if os_options.get('auth_type') and os_options['auth_type'] not in (
+ 'password', 'v2password', 'v3password',
+ 'v3applicationcredential'):
+ raise ClientException(
+ 'Swiftclient currently only supports v3applicationcredential '
+ 'for auth_type')
+ elif os_options.get('auth_type') == 'v3applicationcredential':
+ if ksa_v3 is None:
raise ClientException('Auth v3applicationcredential requires '
- 'python-keystoneclient>=2.0.0')
+ 'keystoneauth1 package; consider upgrading '
+ 'to python-keystoneclient>=2.0.0')
try:
- auth = v3.ApplicationCredential(
+ auth = ksa_v3.ApplicationCredential(
auth_url=auth_url,
application_credential_secret=os_options.get(
'application_credential_secret'),
application_credential_id=os_options.get(
'application_credential_id'))
- sses = session.Session(auth=auth)
- token = sses.get_token()
+ sess = ksa_session.Session(auth=auth)
+ token = sess.get_token()
except ksauthexceptions.Unauthorized:
msg = 'Unauthorized. Check application credential id and secret.'
raise ClientException(msg)
@@ -650,7 +655,7 @@ variables to be set or overridden with -A, -U, or -K.''')
raise ClientException('Authorization Failure. %s' % err)
try:
- endpoint = sses.get_endpoint_data(service_type=service_type,
+ endpoint = sess.get_endpoint_data(service_type=service_type,
endpoint_type=endpoint_type,
**filter_kwargs)