Fix the way auth_type default value is overriden

Commit 50f05448982b5fafd9d9a7783b639dd145090a0d to os-client-config
removed the default values in the _defaults dict. This makes any
call to cloud_config.set_default() before initializing the dict
fail.

The fix changes the way the auth_type default is overriden, by
doing it when cloud_config.OpenStackConfig() is executed.

Change-Id: If37d3ba303f01d4c77fd7c15a3cde9634534b64a
Closes-bug: #1473921
This commit is contained in:
Javier Pena 2015-07-06 18:04:18 +02:00 committed by Gael Chamoulaud
parent 11c9695e5e
commit c5b4383160

View File

@ -240,9 +240,9 @@ class OpenStackShell(app.App):
# Set the default plugin to token_endpoint if url and token are given
if (self.options.url and self.options.token):
# Use service token authentication
cloud_config.set_default('auth_type', 'token_endpoint')
auth_type = 'token_endpoint'
else:
cloud_config.set_default('auth_type', 'osc_password')
auth_type = 'osc_password'
self.log.debug("options: %s", self.options)
project_id = getattr(self.options, 'project_id', None)
@ -266,7 +266,8 @@ class OpenStackShell(app.App):
# Ignore the default value of interface. Only if it is set later
# will it be used.
cc = cloud_config.OpenStackConfig(
override_defaults={'interface': None, })
override_defaults={'interface': None,
'auth_type': auth_type, })
self.log.debug("defaults: %s", cc.defaults)
self.cloud = cc.get_one_cloud(