summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRich Megginson <rmeggins@redhat.com>2009-02-17 15:47:48 +0000
committerRich Megginson <rmeggins@redhat.com>2009-02-17 15:47:48 +0000
commit086de1d73e8b702a42f0816ff34c49a274dccda9 (patch)
treef3e854e06ae897bb6639c6b2bd04a9f8e0ff880c
parent83bee6271116730465180289008b0ccd5353027e (diff)
downloadds-086de1d73e8b702a42f0816ff34c49a274dccda9.tar.gz
ds-086de1d73e8b702a42f0816ff34c49a274dccda9.tar.xz
ds-086de1d73e8b702a42f0816ff34c49a274dccda9.zip
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
-rw-r--r--ldap/admin/src/scripts/DSMigration.pm.in13
1 files changed, 13 insertions, 0 deletions
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',