summaryrefslogtreecommitdiff
path: root/swiftclient/service.py
diff options
context:
space:
mode:
Diffstat (limited to 'swiftclient/service.py')
-rw-r--r--swiftclient/service.py20
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'),