summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-01-13 20:21:57 +0000
committerGerrit Code Review <review@openstack.org>2016-01-13 20:21:57 +0000
commit94ea0644e56dae7c8150e901f2a4a13c31dbd8a0 (patch)
treeabd36e9eaf7c18bb6eb5bc7596a63443d0f16bce
parent14a3104ecad12f06415d5e6c72bf55d270cf3e66 (diff)
parenta8532f6c8d221628b697ddb0d134e2a000ef61d6 (diff)
downloados-client-config-94ea0644e56dae7c8150e901f2a4a13c31dbd8a0.tar.gz
Merge "Fix a precedence problem with auth arguments"
-rw-r--r--os_client_config/config.py4
-rw-r--r--os_client_config/tests/test_config.py10
2 files changed, 13 insertions, 1 deletions
diff --git a/os_client_config/config.py b/os_client_config/config.py
index edea0d4..378cd3b 100644
--- a/os_client_config/config.py
+++ b/os_client_config/config.py
@@ -448,7 +448,7 @@ class OpenStackConfig(object):
if 'cloud' in cloud:
del cloud['cloud']
- return self._fix_backwards_madness(cloud)
+ return cloud
def _expand_vendor_profile(self, name, cloud, our_cloud):
# Expand a profile if it exists. 'cloud' is an old confusing name
@@ -897,6 +897,8 @@ class OpenStackConfig(object):
if 'endpoint_type' in config:
config['interface'] = config.pop('endpoint_type')
+ config = self._fix_backwards_madness(config)
+
for key in BOOL_KEYS:
if key in config:
if type(config[key]) is not bool:
diff --git a/os_client_config/tests/test_config.py b/os_client_config/tests/test_config.py
index dce436a..1a16bd8 100644
--- a/os_client_config/tests/test_config.py
+++ b/os_client_config/tests/test_config.py
@@ -473,6 +473,16 @@ class TestConfigArgparse(base.TestCase):
opts, _remain = parser.parse_known_args(['--os-cloud', 'foo'])
self.assertEqual(opts.os_cloud, 'foo')
+ def test_env_argparse_precedence(self):
+ self.useFixture(fixtures.EnvironmentVariable(
+ 'OS_TENANT_NAME', 'tenants-are-bad'))
+ c = config.OpenStackConfig(config_files=[self.cloud_yaml],
+ vendor_files=[self.vendor_yaml])
+
+ cc = c.get_one_cloud(
+ cloud='envvars', argparse=self.options)
+ self.assertEqual(cc.auth['project_name'], 'project')
+
def test_argparse_default_no_token(self):
c = config.OpenStackConfig(config_files=[self.cloud_yaml],
vendor_files=[self.vendor_yaml])