From d9d96ee0b39de247e83beb92ec24f6adc02a4698 Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Wed, 9 Dec 2009 07:33:51 -0500 Subject: SSSDConfig.get_domain() should properly detect active state --- server/config/SSSDConfig.py | 29 +++++++++++++++++++++++++++++ server/config/SSSDConfigTest.py | 1 + 2 files changed, 30 insertions(+) (limited to 'server') diff --git a/server/config/SSSDConfig.py b/server/config/SSSDConfig.py index f00824d59..10d2f02a1 100644 --- a/server/config/SSSDConfig.py +++ b/server/config/SSSDConfig.py @@ -1238,6 +1238,9 @@ class SSSDConfig(SSSDChangeConf): for opt in self.strip_comments_empty(self.options('domain/%s' % name)) if opt not in providers] + # Determine if this domain is currently active + domain.active = self.is_domain_active(name) + return domain def new_domain(self, name): @@ -1266,6 +1269,32 @@ class SSSDConfig(SSSDChangeConf): self.save_domain(domain) return domain + def is_domain_active(self, name): + """ + Is a particular domain set active + + name: + The name of the configured domain to check + + === Returns === + True if the domain is active, False if it is inactive + + === Errors === + NotInitializedError: + This SSSDConfig object has not had import_config() or new_config() + run on it yet. + NoDomainError: + No domain by this name is configured + """ + + if not self.initialized: + raise NotInitializedError + + if name not in self.list_domains(): + raise NoDomainError + + return name in self.list_active_domains() + def activate_domain(self, name): """ Activate a configured domain diff --git a/server/config/SSSDConfigTest.py b/server/config/SSSDConfigTest.py index 0d42d8a67..abb2b071c 100644 --- a/server/config/SSSDConfigTest.py +++ b/server/config/SSSDConfigTest.py @@ -1103,6 +1103,7 @@ class SSSDConfigTestSSSDConfig(unittest.TestCase): domain = sssdconfig.get_domain('IPA') self.assertTrue(isinstance(domain, SSSDConfig.SSSDDomain)) + self.assertTrue(domain.active) # TODO verify the contents of this domain -- cgit