diff options
author | Jenkins <jenkins@review.openstack.org> | 2015-05-12 20:20:31 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2015-05-12 20:20:31 +0000 |
commit | 7c03b4a8984bc8a703edff35abf7e8ea6f8a3589 (patch) | |
tree | ab8778542f880d4c21ccb11f740d423330452b7f | |
parent | bab4504ba2481428fcd4587c4eb609851b4009af (diff) | |
parent | cbdc7c70801d7a0bd9a6ac51e0b9b6f4dc9e7b8d (diff) | |
download | os-client-config-7c03b4a8984bc8a703edff35abf7e8ea6f8a3589.tar.gz |
Merge "Change overriding defaults to kwarg"
-rw-r--r-- | os_client_config/config.py | 9 | ||||
-rw-r--r-- | os_client_config/tests/test_config.py | 26 |
2 files changed, 34 insertions, 1 deletions
diff --git a/os_client_config/config.py b/os_client_config/config.py index 64afdbd..5b64395 100644 --- a/os_client_config/config.py +++ b/os_client_config/config.py @@ -49,6 +49,10 @@ VENDOR_FILES = [ ] +# NOTE(dtroyer): This turns out to be not the best idea so let's move +# overriding defaults to a kwarg to OpenStackConfig.__init__() +# Remove this sometime in June 2015 once OSC is comfortably +# changed-over and global-defaults is updated. def set_default(key, value): defaults._defaults[key] = value @@ -85,11 +89,14 @@ def _auth_update(old_dict, new_dict): class OpenStackConfig(object): - def __init__(self, config_files=None, vendor_files=None): + def __init__(self, config_files=None, vendor_files=None, + override_defaults=None): self._config_files = config_files or CONFIG_FILES self._vendor_files = vendor_files or VENDOR_FILES self.defaults = defaults.get_defaults() + if override_defaults: + self.defaults.update(override_defaults) # First, use a config file if it exists where expected self.cloud_config = self._load_config_file() diff --git a/os_client_config/tests/test_config.py b/os_client_config/tests/test_config.py index f4bf6db..d196a86 100644 --- a/os_client_config/tests/test_config.py +++ b/os_client_config/tests/test_config.py @@ -19,6 +19,7 @@ import fixtures from os_client_config import cloud_config from os_client_config import config +from os_client_config import defaults from os_client_config import exceptions from os_client_config.tests import base @@ -30,6 +31,31 @@ class TestConfig(base.TestCase): vendor_files=[self.vendor_yaml]) self.assertIsInstance(c.get_one_cloud(), cloud_config.CloudConfig) + def test_get_one_cloud_auth_defaults(self): + c = config.OpenStackConfig(config_files=[self.cloud_yaml]) + cc = c.get_one_cloud(cloud='_test_cloud_', auth={'username': 'user'}) + self.assertEqual('user', cc.auth['username']) + self.assertEqual( + defaults._defaults['auth_type'], + cc.auth_type, + ) + self.assertEqual( + defaults._defaults['identity_api_version'], + cc.identity_api_version, + ) + + def test_get_one_cloud_auth_override_defaults(self): + default_options = {'auth_type': 'token'} + c = config.OpenStackConfig(config_files=[self.cloud_yaml], + override_defaults=default_options) + cc = c.get_one_cloud(cloud='_test_cloud_', auth={'username': 'user'}) + self.assertEqual('user', cc.auth['username']) + self.assertEqual('token', cc.auth_type) + self.assertEqual( + defaults._defaults['identity_api_version'], + cc.identity_api_version, + ) + def test_get_one_cloud_with_config_files(self): c = config.OpenStackConfig(config_files=[self.cloud_yaml], vendor_files=[self.vendor_yaml]) |