summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2015-05-12 20:20:31 +0000
committerGerrit Code Review <review@openstack.org>2015-05-12 20:20:31 +0000
commit7c03b4a8984bc8a703edff35abf7e8ea6f8a3589 (patch)
treeab8778542f880d4c21ccb11f740d423330452b7f
parentbab4504ba2481428fcd4587c4eb609851b4009af (diff)
parentcbdc7c70801d7a0bd9a6ac51e0b9b6f4dc9e7b8d (diff)
downloados-client-config-7c03b4a8984bc8a703edff35abf7e8ea6f8a3589.tar.gz
Merge "Change overriding defaults to kwarg"
-rw-r--r--os_client_config/config.py9
-rw-r--r--os_client_config/tests/test_config.py26
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])