summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen Gallagher <sgallagh@redhat.com>2009-12-07 14:50:48 -0500
committerStephen Gallagher <sgallagh@redhat.com>2009-12-08 23:35:29 -0500
commitafa260fcc56bde83e4b77282c7b3b22cfb4eca47 (patch)
tree48fb986e0e32629b198919e19c4fc26cb985ac70
parent62bbadfe0aaa9348e3a05b5ce960e8c4e5a8d44b (diff)
downloadsssd-afa260fcc56bde83e4b77282c7b3b22cfb4eca47.tar.gz
sssd-afa260fcc56bde83e4b77282c7b3b22cfb4eca47.tar.bz2
sssd-afa260fcc56bde83e4b77282c7b3b22cfb4eca47.zip
SSSDDomain.remove_provider() requires only the provider type
There was no valid reason to require the backend type when specifying a provider to remove.
-rw-r--r--server/config/SSSDConfig.py18
-rw-r--r--server/config/SSSDConfigTest.py12
2 files changed, 18 insertions, 12 deletions
diff --git a/server/config/SSSDConfig.py b/server/config/SSSDConfig.py
index 1cbf1a84..1992a940 100644
--- a/server/config/SSSDConfig.py
+++ b/server/config/SSSDConfig.py
@@ -787,14 +787,12 @@ class SSSDDomain(SSSDConfigObject):
provider_type)))
- def remove_provider(self, provider, provider_type):
+ def remove_provider(self, provider_type):
"""
Remove a provider from the domain. If the provider is not present, it
is ignored.
- type:
- Provider backend type. (e.g. local, ldap, krb5, etc.)
- subtype:
+ provider_type:
Subtype of the backend type. (e.g. id, auth, chpass)
=== Returns ===
@@ -803,7 +801,15 @@ class SSSDDomain(SSSDConfigObject):
=== Errors ===
No Errors
"""
- if (provider,provider_type) not in self.providers:
+
+ provider = None
+ for (provider, ptype) in self.providers:
+ if ptype == provider_type:
+ break
+ provider = None
+
+ # Check whether the provider_type was found
+ if not provider:
return
# TODO: safely remove any unused options when removing
@@ -811,7 +817,7 @@ class SSSDDomain(SSSDConfigObject):
# to account for multiple providers making use of the
# same options (such ask krb5_realm)
- self.providers.remove((provider,provider_type))
+ self.providers.remove((provider, provider_type))
class SSSDConfig(SSSDChangeConf):
"""
diff --git a/server/config/SSSDConfigTest.py b/server/config/SSSDConfigTest.py
index ac37aec9..fa111819 100644
--- a/server/config/SSSDConfigTest.py
+++ b/server/config/SSSDConfigTest.py
@@ -142,7 +142,7 @@ class SSSDConfigTestValid(unittest.TestCase):
ldap_domain = sssdconfig.get_domain('LDAP')
ldap_domain.set_option('debug_level', 3)
- ldap_domain.remove_provider('ldap', 'auth')
+ ldap_domain.remove_provider('auth')
ldap_domain.add_provider('krb5', 'auth')
ldap_domain.set_active(True)
sssdconfig.save_domain(ldap_domain)
@@ -455,7 +455,7 @@ class SSSDConfigTestSSSDDomain(unittest.TestCase):
# Remove the auth domain and verify that the options
# revert to the backup_list
- domain.remove_provider('krb5', 'auth')
+ domain.remove_provider('auth')
options = domain.list_options()
self.assertTrue(type(options) == dict,
@@ -666,7 +666,7 @@ class SSSDConfigTestSSSDDomain(unittest.TestCase):
# Remove the auth domain and verify that the options
# revert to the backup_list
- domain.remove_provider('krb5', 'auth')
+ domain.remove_provider('auth')
options = domain.list_options()
self.assertTrue(type(options) == dict,
@@ -685,15 +685,15 @@ class SSSDConfigTestSSSDDomain(unittest.TestCase):
option)
# Test removing nonexistent provider - Real
- domain.remove_provider('ldap', 'id')
+ domain.remove_provider('id')
# Test removing nonexistent provider - Bad backend type
# Should pass without complaint
- domain.remove_provider('nosuchbackend', 'id')
+ domain.remove_provider('id')
# Test removing nonexistent provider - Bad provider type
# Should pass without complaint
- domain.remove_provider('ldap', 'nosuchprovider')
+ domain.remove_provider('nosuchprovider')
def testGetOption(self):
domain = SSSDConfig.SSSDDomain('sssd', self.schema)