Fix a precedence problem with auth arguments
With the current code, OS_TENANT_NAME will take precednece over --os-project-name beause OS_TENANT_NAME gets early-moved to config['auth']['project_name'], then when the argparse value gets put into config['project_name'] the auth fixing sees auth['project_name'] and thinks it should win. Change-Id: I97084ea221eb963f14d98cf550a04bbd5c7d954c
This commit is contained in:
parent
7e54967635
commit
a8532f6c8d
@ -447,7 +447,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
|
||||
@ -896,6 +896,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:
|
||||
|
@ -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])
|
||||
|
Loading…
x
Reference in New Issue
Block a user