From ee952c1bf250550d5da5b8a988e9e930edefce86 Mon Sep 17 00:00:00 2001 From: Tim Burke Date: Fri, 10 Mar 2023 21:39:57 -0800 Subject: Ensure v*password auth_type correctly implies auth version Change-Id: I787b0988b7518850f1e1f93ca269f39f8cdec15c --- swiftclient/service.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'swiftclient/service.py') diff --git a/swiftclient/service.py b/swiftclient/service.py index 79cf86c..3d1b476 100644 --- a/swiftclient/service.py +++ b/swiftclient/service.py @@ -90,14 +90,26 @@ class SwiftError(Exception): def process_options(options): + auth_types_to_versions = { + 'v1password': '1.0', + 'v2password': '2.0', + 'v3password': '3', + 'v3applicationcredential': '3', + } + + version_from_type = auth_types_to_versions.get(options['os_auth_type']) + if version_from_type: + options['auth_version'] = version_from_type + # tolerate sloppy auth_version if options.get('auth_version') == '3.0': options['auth_version'] = '3' elif options.get('auth_version') == '2': options['auth_version'] = '2.0' - if options.get('auth_version') not in ('2.0', '3') and not all( - options.get(key) for key in ('auth', 'user', 'key')): + if options.get('auth_version') not in ('2.0', '3') and \ + options.get('os_auth_type') != 'v1password' and \ + not all(options.get(key) for key in ('auth', 'user', 'key')): # Use keystone auth if any of the new-style args are present if any(options.get(k) for k in ( 'os_user_domain_id', @@ -109,9 +121,6 @@ def process_options(options): else: options['auth_version'] = '2.0' - if options.get('os_auth_type', None) == 'v3applicationcredential': - options['auth_version'] == '3' - # Use new-style args if old ones not present if not options['auth'] and options['os_auth_url']: options['auth'] = options['os_auth_url'] -- cgit v1.2.1