These changes are all related to the following ticket: https://fedorahosted.org/sssd/ticket/763
Changes in SSSDConfig.py merge old and new domain record instead of just deleting the old and inserting the new one. The old approach let to loss of some information like comments and blank lines in the config file. Changes in API config were performed so our Python scripts (like sss_obfuscate) don't add extra config options to the config file. Jan
From de587fff9ed48ec689fb88f50dacf6078ddd5ccd Mon Sep 17 00:00:00 2001 From: Jan Zeleny <jzel...@redhat.com> Date: Wed, 30 Mar 2011 08:38:41 -0400 Subject: [PATCH] Configuration parsing updates These changes are all related to the following ticket: https://fedorahosted.org/sssd/ticket/763 Changes in SSSDConfig.py merge old and new domain record instead of just deleting the old and inserting the new one. The old approach let to loss of some information like comments and blank lines in the config file. Changes in API config were performed so our Python scripts (like sss_obfuscate) don't add extra config options to the config file. --- src/config/SSSDConfig.py | 22 ++++++++-------------- src/config/etc/sssd.api.conf | 6 +++--- src/config/etc/sssd.api.d/sssd-ipa.conf | 2 +- src/config/etc/sssd.api.d/sssd-krb5.conf | 2 +- src/config/etc/sssd.api.d/sssd-ldap.conf | 4 ++-- src/config/etc/sssd.api.d/sssd-local.conf | 4 ++-- 6 files changed, 17 insertions(+), 23 deletions(-) diff --git a/src/config/SSSDConfig.py b/src/config/SSSDConfig.py index 5135174a87d13b2f0817a99e1b1d9f63e73d5673..abcba6a902374004fe1e078c9aaeff80c2013f03 100644 --- a/src/config/SSSDConfig.py +++ b/src/config/SSSDConfig.py @@ -1739,23 +1739,17 @@ class SSSDConfig(SSSDChangeConf): domain.oldname = None; sectionname = 'domain/%s' % name - # Ensure that the existing section is removed - # This way we ensure that we are getting a - # complete copy of the service. - # delete_option() is a noop if the section - # does not exist. - index = self.delete_option('section', sectionname) - addkw = [] + section_subtree = self.findOpts(self.opts, 'section', sectionname) + + for option in self.options(sectionname): + if option['type'] == 'option': + if option['name'] not in domain.get_all_options(): + self.delete_option_subtree(section_subtree, 'option', option['name'], True) + for option,value in domain.get_all_options().items(): if (type(value) == list): value = ', '.join(value) - addkw.append( { 'type' : 'option', - 'name' : option, - 'value' : str(value) } ) - if oldindex: - self.add_section(sectionname, addkw, oldindex) - else: - self.add_section(sectionname, addkw, index) + self.set(sectionname, option, str(value)) if domain.active: self.activate_domain(name) diff --git a/src/config/etc/sssd.api.conf b/src/config/etc/sssd.api.conf index e91597166c07fcf945726dad528082768aabc3ef..0c7d515f171ee29fd34c270dcd068a05616592ed 100644 --- a/src/config/etc/sssd.api.conf +++ b/src/config/etc/sssd.api.conf @@ -11,7 +11,7 @@ reconnection_retries = int, None, false [sssd] # Monitor service -services = list, str, true, nss, pam +services = list, str, false, nss, pam domains = list, str, true timeout = int, None, false sbus_timeout = int, None, false @@ -40,7 +40,7 @@ pam_pwd_expiration_warning = int, None, false [provider] #Available provider types id_provider = str, None, true -auth_provider = str, None, true +auth_provider = str, None, false access_provider = str, None, false chpass_provider = str, None, false @@ -53,7 +53,7 @@ min_id = int, None, false max_id = int, None, false timeout = int, None, false enumerate = bool, None, false -cache_credentials = bool, None, true, false +cache_credentials = bool, None, false store_legacy_passwords = bool, None, false use_fully_qualified_names = bool, None, false entry_cache_timeout = int, None, false diff --git a/src/config/etc/sssd.api.d/sssd-ipa.conf b/src/config/etc/sssd.api.d/sssd-ipa.conf index 31b7dc9beee007d0969d1a2f1750674345cf2eb3..7719069c79c25e88b638ee986f387d1b377d7c50 100644 --- a/src/config/etc/sssd.api.d/sssd-ipa.conf +++ b/src/config/etc/sssd.api.d/sssd-ipa.conf @@ -1,5 +1,5 @@ [provider/ipa] -ipa_domain = str, None, true +ipa_domain = str, None, false ipa_server = str, None, false ipa_hostname = str, None, false ipa_dyndns_update = bool, None, false diff --git a/src/config/etc/sssd.api.d/sssd-krb5.conf b/src/config/etc/sssd.api.d/sssd-krb5.conf index 79c67aeacc3d50485df43e788771e940d9f0976c..ef871d024000cfcab2e30833d620ca08df5fc863 100644 --- a/src/config/etc/sssd.api.d/sssd-krb5.conf +++ b/src/config/etc/sssd.api.d/sssd-krb5.conf @@ -1,7 +1,7 @@ [provider/krb5] krb5_kdcip = str, None, false krb5_server = str, None, false -krb5_realm = str, None, true +krb5_realm = str, None, false krb5_auth_timeout = int, None, false krb5_kpasswd = str, None, false diff --git a/src/config/etc/sssd.api.d/sssd-ldap.conf b/src/config/etc/sssd.api.d/sssd-ldap.conf index 5fd0cfb589e348241cf725e4cbe2fe639e542a58..8672f0b24fb698881f0d1d8d2c705c7acda6e198 100644 --- a/src/config/etc/sssd.api.d/sssd-ldap.conf +++ b/src/config/etc/sssd.api.d/sssd-ldap.conf @@ -1,7 +1,7 @@ [provider/ldap] ldap_uri = str, None, false ldap_search_base = str, None, false -ldap_schema = str, None, true, rfc2307 +ldap_schema = str, None, false ldap_default_bind_dn = str, None, false ldap_default_authtok_type = str, None, false ldap_default_authtok = str, None, false @@ -33,7 +33,7 @@ ldap_search_timeout = int, None, false ldap_enumeration_search_timeout = int, None, false ldap_enumeration_refresh_timeout = int, None, false ldap_purge_cache_timeout = int, None, false -ldap_id_use_start_tls = bool, None, true, false +ldap_id_use_start_tls = bool, None, false ldap_user_search_base = str, None, false ldap_user_search_scope = str, None, false ldap_user_search_filter = str, None, false diff --git a/src/config/etc/sssd.api.d/sssd-local.conf b/src/config/etc/sssd.api.d/sssd-local.conf index 0686f08232c289ab67e1813bfe282bb29a5bc9bb..f740b5ba157deca7e19c4ae565400897b7f0a3e0 100644 --- a/src/config/etc/sssd.api.d/sssd-local.conf +++ b/src/config/etc/sssd.api.d/sssd-local.conf @@ -1,8 +1,8 @@ [provider/local] [provider/local/id] -default_shell = str, None, true, /bin/bash -base_directory = str, None, true, /home +default_shell = str, None, false +base_directory = str, None, false [provider/local/auth] -- 1.7.4.1
_______________________________________________ sssd-devel mailing list sssd-devel@lists.fedorahosted.org https://fedorahosted.org/mailman/listinfo/sssd-devel