From 086de1d73e8b702a42f0816ff34c49a274dccda9 Mon Sep 17 00:00:00 2001 From: Rich Megginson Date: Tue, 17 Feb 2009 15:47:48 +0000 Subject: Resolves: bug 485694 Bug Description: Cross Platform Migration Fails with: Unable to access nsslapd-rundir: Bad address Reviewed by: nkinder (Thanks!) Fix Description: Need to add any new attributes added in 8.0 and 8.1 to the ignoreOld hash table in the migration script. The way migration works, it assumes an attribute is supported in both the old version and the new version. So if the attribute is absent in the old entry and present in the new entry, it assumes the user removed the attribute in the old entry, so removes it in the new entry. The ignoreOld hash table holds the list of attributes that we should ignore for the purposes of attribute comparison. These are the attributes we just want to pass through. Platforms tested: RHEL5 Flag Day: no Doc impact: no --- ldap/admin/src/scripts/DSMigration.pm.in | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/ldap/admin/src/scripts/DSMigration.pm.in b/ldap/admin/src/scripts/DSMigration.pm.in index 3789c8cf..dd6f74af 100644 --- a/ldap/admin/src/scripts/DSMigration.pm.in +++ b/ldap/admin/src/scripts/DSMigration.pm.in @@ -79,6 +79,16 @@ use Util; # these are the attributes for which we will always use # the new value, or which do not apply anymore +# for the next major release e.g. when we support migration from the +# current release 1.1.x to 1.2 or 2.0, the old version number will +# become quite important for migration - for example, when migrating +# from older than 1.1 to 1.1.x, we need to add the attributes in the +# table below to the new entry because the attribute didn't exist +# at all in the old server version - however, when migrating from +# e.g. 1.1.x to 2.0, we must preserve the old value - this means +# if the user has deleted the attribute from the entry, we must +# "migrate" that deletion by removing the attribute from the new +# entry my %ignoreOld = ( 'nsslapd-errorlog' => 'nsslapd-errorlog', @@ -91,6 +101,9 @@ my %ignoreOld = 'nsslapd-pluginversion' => 'nsslapd-pluginVersion', 'nsslapd-plugin-depends-on-named' => 'nsslapd-plugin-depends-on-named', # these are new attrs that we should just pass through + 'nsslapd-allow-unauthenticated-binds' => 'nsslapd-allow-unauthenticated-binds', + 'nsslapd-saslpath' => 'nsslapd-saslpath', + 'nsslapd-rundir' => 'nsslapd-rundir', 'nsslapd-schemadir' => 'nsslapd-schemadir', 'nsslapd-lockdir' => 'nsslapd-lockdir', 'nsslapd-tmpdir' => 'nsslapd-tmpdir', -- cgit