Fix swift-dispersion in multi-region setups

If you have 2 swift regions served by the same keystone,
then the client cannot get the correct URL for the swift endpoint
without specifying a region_name.

Closes-Bug: 1587088
Change-Id: Iaab883386e125c3ca6b9554389e63df17267a135
This commit is contained in:
Félix Cantournet 2016-04-27 22:17:01 +02:00
parent 12022385fb
commit 4f053c61d6
3 changed files with 10 additions and 0 deletions

View File

@ -134,6 +134,7 @@ Usage: %%prog [options] [conf_file]
retries = int(conf.get('retries', 5)) retries = int(conf.get('retries', 5))
concurrency = int(conf.get('concurrency', 25)) concurrency = int(conf.get('concurrency', 25))
endpoint_type = str(conf.get('endpoint_type', 'publicURL')) endpoint_type = str(conf.get('endpoint_type', 'publicURL'))
region_name = str(conf.get('region_name', ''))
user_domain_name = str(conf.get('user_domain_name', '')) user_domain_name = str(conf.get('user_domain_name', ''))
project_domain_name = str(conf.get('project_domain_name', '')) project_domain_name = str(conf.get('project_domain_name', ''))
project_name = str(conf.get('project_name', '')) project_name = str(conf.get('project_name', ''))
@ -157,6 +158,8 @@ Usage: %%prog [options] [conf_file]
os_options['project_domain_name'] = project_domain_name os_options['project_domain_name'] = project_domain_name
if project_name: if project_name:
os_options['project_name'] = project_name os_options['project_name'] = project_name
if region_name:
os_options['region_name'] = region_name
url, token = get_auth(conf['auth_url'], conf['auth_user'], url, token = get_auth(conf['auth_url'], conf['auth_user'],
conf['auth_key'], conf['auth_key'],

View File

@ -353,6 +353,7 @@ Usage: %%prog [options] [conf_file]
retries = int(conf.get('retries', 5)) retries = int(conf.get('retries', 5))
concurrency = int(conf.get('concurrency', 25)) concurrency = int(conf.get('concurrency', 25))
endpoint_type = str(conf.get('endpoint_type', 'publicURL')) endpoint_type = str(conf.get('endpoint_type', 'publicURL'))
region_name = str(conf.get('region_name', ''))
if options.dump_json or config_true_value(conf.get('dump_json', 'no')): if options.dump_json or config_true_value(conf.get('dump_json', 'no')):
json_output = True json_output = True
container_report = config_true_value(conf.get('container_report', 'yes')) \ container_report = config_true_value(conf.get('container_report', 'yes')) \
@ -378,6 +379,8 @@ Usage: %%prog [options] [conf_file]
os_options['project_domain_name'] = project_domain_name os_options['project_domain_name'] = project_domain_name
if project_name: if project_name:
os_options['project_name'] = project_name os_options['project_name'] = project_name
if region_name:
os_options['region_name'] = region_name
url, token = get_auth(conf['auth_url'], conf['auth_user'], url, token = get_auth(conf['auth_url'], conf['auth_user'],
conf['auth_key'], conf['auth_key'],

View File

@ -24,6 +24,10 @@ auth_key = testing
# user_domain_name = user_domain # user_domain_name = user_domain
# #
# endpoint_type = publicURL # endpoint_type = publicURL
#
# NOTE: If you have only 1 region with a swift endpoint, no need to specify it
# region_name =
#
# keystone_api_insecure = no # keystone_api_insecure = no
# #
# swift_dir = /etc/swift # swift_dir = /etc/swift