Fix upgrade issues from old (pre-0.5.0) releases of SSSD
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.
			
			
This commit is contained in:
		
							parent
							
								
									3c198001f3
								
							
						
					
					
						commit
						04c1b5452b
					
				
							
								
								
									
										50
									
								
								old_upgrades.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								old_upgrades.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,50 @@ | |||||||
|  | >From ff5fd17a20037377889b60a73b2b1f470c67c674 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Jakub Hrozek <jhrozek@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 | ||||||
|  | 
 | ||||||
| @ -3,7 +3,7 @@ | |||||||
| 
 | 
 | ||||||
| Name: sssd | Name: sssd | ||||||
| Version: 0.7.0 | Version: 0.7.0 | ||||||
| Release: 1%{?dist} | Release: 2%{?dist} | ||||||
| Group: Applications/System | Group: Applications/System | ||||||
| Summary: System Security Services Daemon | Summary: System Security Services Daemon | ||||||
| # The entire source code is GPLv3+ except replace/ which is LGPLv3+ | # The entire source code is GPLv3+ except replace/ which is LGPLv3+ | ||||||
| @ -15,6 +15,8 @@ BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) | |||||||
| 
 | 
 | ||||||
| ### Patches ### | ### Patches ### | ||||||
| 
 | 
 | ||||||
|  | Patch1: 0001-Fix-migration-script-for-pre-0.5-local-domains.patch | ||||||
|  | 
 | ||||||
| ### Dependencies ### | ### Dependencies ### | ||||||
| 
 | 
 | ||||||
| Requires: libldb >= 0.9.3 | Requires: libldb >= 0.9.3 | ||||||
| @ -73,6 +75,8 @@ service. | |||||||
| %prep | %prep | ||||||
| %setup -q | %setup -q | ||||||
| 
 | 
 | ||||||
|  | %patch1 -p1 -b .upgrade_fixes | ||||||
|  | 
 | ||||||
| %build | %build | ||||||
| %configure \ | %configure \ | ||||||
|     --without-tests \ |     --without-tests \ | ||||||
| @ -190,6 +194,9 @@ fi | |||||||
| %postun client -p /sbin/ldconfig | %postun client -p /sbin/ldconfig | ||||||
| 
 | 
 | ||||||
| %changelog | %changelog | ||||||
|  | * Mon Oct 26 2009 Stephen Gallagher <sgallagh@redhat.com> - 0.7.0-2 | ||||||
|  | - Fix upgrade issues from old (pre-0.5.0) releases of SSSD | ||||||
|  | 
 | ||||||
| * Fri Oct 23 2009 Stephen Gallagher <sgallagh@redhat.com> - 0.7.0-1 | * Fri Oct 23 2009 Stephen Gallagher <sgallagh@redhat.com> - 0.7.0-1 | ||||||
| - New upstream release 0.7.0 | - New upstream release 0.7.0 | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user