Fix precedence for pass-in options
The passed-in argparse Namespace is flat and does not have an 'auth' dict, all of the auth options are in the top level. If the loaded dict from clouds.yaml as an 'auth' dict, that used to totally override any passed-in options. This is backwards. Make the passed-in auth options always win over clouds.yaml as this is the only way to change/override those values from the command line. Change-Id: Ic2752a396d45deeda19a16389437679829e0844d
This commit is contained in:
parent
51b4cbee52
commit
05b3c933b3
@ -885,14 +885,14 @@ class OpenStackConfig(object):
|
||||
plugin_options = loader.get_options()
|
||||
|
||||
for p_opt in plugin_options:
|
||||
# if it's in config.auth, win, kill it from config dict
|
||||
# if it's in config and not in config.auth, move it
|
||||
# if it's in config, win, move it and kill it from config dict
|
||||
# if it's in config.auth but not in config we're good
|
||||
# deprecated loses to current
|
||||
# provided beats default, deprecated or not
|
||||
winning_value = self._find_winning_auth_value(
|
||||
p_opt, config['auth'])
|
||||
winning_value = self._find_winning_auth_value(p_opt, config)
|
||||
if not winning_value:
|
||||
winning_value = self._find_winning_auth_value(p_opt, config)
|
||||
winning_value = self._find_winning_auth_value(
|
||||
p_opt, config['auth'])
|
||||
|
||||
# Clean up after ourselves
|
||||
for opt in [p_opt.name] + [o.name for o in p_opt.deprecated]:
|
||||
|
Loading…
x
Reference in New Issue
Block a user