summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJamie Lennox <jamielennox@redhat.com>2014-08-21 18:54:06 +1000
committerJamie Lennox <jamielennox@redhat.com>2014-08-21 18:54:06 +1000
commit0a2e729e2939c905e0cb8dbfafa1e4a248606468 (patch)
tree86ee2a7bc5ada7c68be9b33da7085889dcdccaea
parent5a0913383ee71fc368c1328601965a00982e5348 (diff)
downloadpython-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.py5
-rw-r--r--keystoneclient/tests/auth/test_conf.py6
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):