diff options
author | Jamie Lennox <jamielennox@redhat.com> | 2014-08-21 18:54:06 +1000 |
---|---|---|
committer | Jamie Lennox <jamielennox@redhat.com> | 2014-08-21 18:54:06 +1000 |
commit | 0a2e729e2939c905e0cb8dbfafa1e4a248606468 (patch) | |
tree | 86ee2a7bc5ada7c68be9b33da7085889dcdccaea | |
parent | 5a0913383ee71fc368c1328601965a00982e5348 (diff) | |
download | python-keystoneclient-0a2e729e2939c905e0cb8dbfafa1e4a248606468.tar.gz |
Distinguish between name not provided and incorrect
When loading from config we need a way to determine if a plugin name was
specified incorrectly or was not specified at all. We need this to
determine if we need to load a fallback plugin.
This is much more in line with how CLI loading works and how it should
have worked initially.
Change-Id: I5547b6e169abc4f1850ff205a8f054a617785c2c
Closes-Bug: #1359618
-rw-r--r-- | keystoneclient/auth/conf.py | 5 | ||||
-rw-r--r-- | keystoneclient/tests/auth/test_conf.py | 6 |
2 files changed, 4 insertions, 7 deletions
diff --git a/keystoneclient/auth/conf.py b/keystoneclient/auth/conf.py index c3d13db..ca14499 100644 --- a/keystoneclient/auth/conf.py +++ b/keystoneclient/auth/conf.py @@ -13,7 +13,6 @@ from oslo.config import cfg from keystoneclient.auth import base -from keystoneclient import exceptions _AUTH_PLUGIN_OPT = cfg.StrOpt('auth_plugin', help='Name of the plugin to load') @@ -89,7 +88,7 @@ def load_from_conf_options(conf, group, **kwargs): :param conf: An oslo.config conf object. :param string group: The group name that options should be read from. - :returns plugin: An authentication Plugin. + :returns plugin: An authentication Plugin or None if a name is not provided :raises exceptions.NoMatchingPlugin: if a plugin cannot be created. """ @@ -101,7 +100,7 @@ def load_from_conf_options(conf, group, **kwargs): name = conf[group].auth_plugin if not name: - raise exceptions.NoMatchingPlugin('No plugin name provided for config') + return None plugin_class = base.get_plugin_class(name) plugin_class.register_conf_options(conf, group) diff --git a/keystoneclient/tests/auth/test_conf.py b/keystoneclient/tests/auth/test_conf.py index 24b2019..342333f 100644 --- a/keystoneclient/tests/auth/test_conf.py +++ b/keystoneclient/tests/auth/test_conf.py @@ -101,10 +101,8 @@ class ConfTests(utils.TestCase): self.GROUP) def test_loading_with_no_data(self): - self.assertRaises(exceptions.NoMatchingPlugin, - conf.load_from_conf_options, - self.conf_fixture.conf, - self.GROUP) + self.assertIsNone(conf.load_from_conf_options(self.conf_fixture.conf, + self.GROUP)) @mock.patch('stevedore.DriverManager') def test_other_params(self, m): |