summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Gallagher <sgallagh@redhat.com>2012-08-03 12:12:17 -0400
committerJakub Hrozek <jhrozek@redhat.com>2012-08-05 19:20:32 +0200
commitbf960d6a15feffff26dff782a876cb0b6e7dd935 (patch)
tree5b299d3cb6455421610da9030232f288726eac73
parent68a962920bb277475047cebf3f02f77136e83156 (diff)
downloadsssd-bf960d6a15feffff26dff782a876cb0b6e7dd935.tar.gz
sssd-bf960d6a15feffff26dff782a876cb0b6e7dd935.tar.xz
sssd-bf960d6a15feffff26dff782a876cb0b6e7dd935.zip
SSSDConfig: Fix nonfunctional SSSDDomain.remove_provider()
Also adds a regression test to the unit test suite. https://fedorahosted.org/sssd/ticket/1388
-rw-r--r--src/config/SSSDConfig/__init__.py.in5
-rwxr-xr-xsrc/config/SSSDConfigTest.py5
2 files changed, 10 insertions, 0 deletions
diff --git a/src/config/SSSDConfig/__init__.py.in b/src/config/SSSDConfig/__init__.py.in
index 32613543f..b90a8e100 100644
--- a/src/config/SSSDConfig/__init__.py.in
+++ b/src/config/SSSDConfig/__init__.py.in
@@ -1254,6 +1254,11 @@ class SSSDDomain(SSSDConfigObject):
if self.options.has_key(option):
del self.options[option]
+ # Remove this provider from the option list
+ option = '%s_provider' % provider_type
+ if self.options.has_key(option):
+ del self.options[option]
+
self.providers.remove((provider, provider_type))
class SSSDConfig(SSSDChangeConf):
diff --git a/src/config/SSSDConfigTest.py b/src/config/SSSDConfigTest.py
index eefbe786a..b03223f46 100755
--- a/src/config/SSSDConfigTest.py
+++ b/src/config/SSSDConfigTest.py
@@ -957,6 +957,7 @@ class SSSDConfigTestSSSDDomain(unittest.TestCase):
# Remove the local ID provider and add an LDAP one
# LDAP ID providers can also use the krb5_realm
domain.remove_provider('id')
+ self.assertFalse(domain.options.has_key('id_provider'))
domain.add_provider('ldap', 'id')
@@ -981,6 +982,7 @@ class SSSDConfigTestSSSDDomain(unittest.TestCase):
# Remove the auth domain and verify that the options
# revert to the backup_list
domain.remove_provider('auth')
+ self.assertFalse(domain.options.has_key('auth_provider'))
options = domain.list_options()
self.assertTrue(type(options) == dict,
@@ -1003,14 +1005,17 @@ class SSSDConfigTestSSSDDomain(unittest.TestCase):
# Test removing nonexistent provider - Real
domain.remove_provider('id')
+ self.assertFalse(domain.options.has_key('id_provider'))
# Test removing nonexistent provider - Bad backend type
# Should pass without complaint
domain.remove_provider('id')
+ self.assertFalse(domain.options.has_key('id_provider'))
# Test removing nonexistent provider - Bad provider type
# Should pass without complaint
domain.remove_provider('nosuchprovider')
+ self.assertFalse(domain.options.has_key('nosuchprovider_provider'))
def testGetOption(self):
domain = SSSDConfig.SSSDDomain('sssd', self.schema)