-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 10/26/2009 01:10 PM, Stephen Gallagher wrote:
> On 10/26/2009 07:58 AM, Jakub Hrozek wrote:
>> Configuration files before 0.5.0 did not enforce provider= in local
>> domains it did special-case by domain name (LOCAL). Our script was
>> relying on provider= value, this patch adds the special-casing in case
>> the domain was called LOCAL.
> 
>> Fixes: RHBZ #530949
> 
> Nack.
> 
> The approach looks sound, but I think you want to check that old_domsec
> == 'domains/LOCAL' rather than checking the new_domsec ==
> 'domain/LOCAL'. I'm aware that they should both work, but old_domsec
> seems more correct.
> 

OK, new patch attached.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org/

iEYEARECAAYFAkrlkyMACgkQHsardTLnvCUbogCgxR5wfOiXGbZT/JSiRzAXT6ws
jt0AoOtunVSS9CmsMzMVgIss3evmYQG/
=K0Qy
-----END PGP SIGNATURE-----
>From ff5fd17a20037377889b60a73b2b1f470c67c674 Mon Sep 17 00:00:00 2001
From: Jakub Hrozek <jhro...@redhat.com>
Date: Mon, 26 Oct 2009 12:54:38 +0100
Subject: [PATCH] Fix migration script for pre-0.5 local domains

Configuration files before 0.5.0 did not enforce provider= in local
domains it did special-case by domain name (LOCAL). Our script was
relying on provider= value, this patch adds the special-casing in case
the domain was called LOCAL.
---
 server/upgrade/upgrade_config.py |   13 +++++++++++--
 1 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/server/upgrade/upgrade_config.py b/server/upgrade/upgrade_config.py
index 87e3990..fe20811 100644
--- a/server/upgrade/upgrade_config.py
+++ b/server/upgrade/upgrade_config.py
@@ -25,6 +25,7 @@ import sys
 import shutil
 import traceback
 from ConfigParser import RawConfigParser
+from ConfigParser import NoOptionError
 from optparse import OptionParser
 
 class SSSDConfigParser(RawConfigParser):
@@ -211,11 +212,19 @@ class SSSDConfigFile(object):
         self._migrate_kw(new_domsec, old_domsec, ldap_kw)
         self._migrate_kw(new_domsec, old_domsec, krb5_kw)
 
+        # configuration files before 0.5.0 did not enforce provider= in local domains
+        # it did special-case by domain name (LOCAL)
+        try:
+            prv = self._new_config.get(new_domsec, 'id_provider')
+        except NoOptionError:
+            if old_domsec == 'domains/LOCAL':
+                prv = 'local'
+                self._new_config.set(new_domsec, 'id_provider', prv)
+
         # if domain was local, update with parameters from [user_defaults]
-        if self._new_config.get(new_domsec, 'id_provider') == 'local':
+        if prv == 'local':
             self._migrate_kw(new_domsec, 'user_defaults', user_defaults_kw)
 
-
     def _migrate_domains(self):
         for domain in [ s.replace('domains/','') for s in self._config.sections() if s.startswith("domains/") ]:
             domain = domain.strip()
-- 
1.6.2.5

_______________________________________________
sssd-devel mailing list
sssd-devel@lists.fedorahosted.org
https://fedorahosted.org/mailman/listinfo/sssd-devel

Reply via email to