diff options
Diffstat (limited to 'swiftclient/service.py')
-rw-r--r-- | swiftclient/service.py | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/swiftclient/service.py b/swiftclient/service.py index fa39ecc..365485a 100644 --- a/swiftclient/service.py +++ b/swiftclient/service.py @@ -77,8 +77,10 @@ class SwiftError(Exception): def process_options(options): - if not (options['auth'] and options['user'] and options['key']): - # Use 2.0 auth if none of the old args are present + if (not (options.get('auth') and options.get('user') + and options.get('key')) + and options.get('auth_version') != '3'): + # Use keystone 2.0 auth if any of the old-style args are missing options['auth_version'] = '2.0' # Use new-style args if old ones not present @@ -91,8 +93,15 @@ def process_options(options): # Specific OpenStack options options['os_options'] = { + 'user_id': options['os_user_id'], + 'user_domain_id': options['os_user_domain_id'], + 'user_domain_name': options['os_user_domain_name'], 'tenant_id': options['os_tenant_id'], 'tenant_name': options['os_tenant_name'], + 'project_id': options['os_project_id'], + 'project_name': options['os_project_name'], + 'project_domain_id': options['os_project_domain_id'], + 'project_domain_name': options['os_project_domain_name'], 'service_type': options['os_service_type'], 'endpoint_type': options['os_endpoint_type'], 'auth_token': options['os_auth_token'], @@ -111,9 +120,16 @@ _default_global_options = { "key": environ.get('ST_KEY'), "retries": 5, "os_username": environ.get('OS_USERNAME'), + "os_user_id": environ.get('OS_USER_ID'), + "os_user_domain_name": environ.get('OS_USER_DOMAIN_NAME'), + "os_user_domain_id": environ.get('OS_USER_DOMAIN_ID'), "os_password": environ.get('OS_PASSWORD'), "os_tenant_id": environ.get('OS_TENANT_ID'), "os_tenant_name": environ.get('OS_TENANT_NAME'), + "os_project_name": environ.get('OS_PROJECT_NAME'), + "os_project_id": environ.get('OS_PROJECT_ID'), + "os_project_domain_name": environ.get('OS_PROJECT_DOMAIN_NAME'), + "os_project_domain_id": environ.get('OS_PROJECT_DOMAIN_ID'), "os_auth_url": environ.get('OS_AUTH_URL'), "os_auth_token": environ.get('OS_AUTH_TOKEN'), "os_storage_url": environ.get('OS_STORAGE_URL'), |