From 4f053c61d6ea49cf566fd7d3d3b1000f2a7a62b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20Cantournet?= Date: Wed, 27 Apr 2016 22:17:01 +0200 Subject: [PATCH] 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 --- bin/swift-dispersion-populate | 3 +++ bin/swift-dispersion-report | 3 +++ etc/dispersion.conf-sample | 4 ++++ 3 files changed, 10 insertions(+) diff --git a/bin/swift-dispersion-populate b/bin/swift-dispersion-populate index 4659661606..afdc7cd320 100755 --- a/bin/swift-dispersion-populate +++ b/bin/swift-dispersion-populate @@ -134,6 +134,7 @@ Usage: %%prog [options] [conf_file] retries = int(conf.get('retries', 5)) concurrency = int(conf.get('concurrency', 25)) endpoint_type = str(conf.get('endpoint_type', 'publicURL')) + region_name = str(conf.get('region_name', '')) user_domain_name = str(conf.get('user_domain_name', '')) project_domain_name = str(conf.get('project_domain_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 if 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'], conf['auth_key'], diff --git a/bin/swift-dispersion-report b/bin/swift-dispersion-report index 48dff80a89..813156cf5b 100755 --- a/bin/swift-dispersion-report +++ b/bin/swift-dispersion-report @@ -353,6 +353,7 @@ Usage: %%prog [options] [conf_file] retries = int(conf.get('retries', 5)) concurrency = int(conf.get('concurrency', 25)) 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')): json_output = True 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 if 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'], conf['auth_key'], diff --git a/etc/dispersion.conf-sample b/etc/dispersion.conf-sample index 865e80fecf..eae777a085 100644 --- a/etc/dispersion.conf-sample +++ b/etc/dispersion.conf-sample @@ -24,6 +24,10 @@ auth_key = testing # user_domain_name = user_domain # # 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 # # swift_dir = /etc/swift