summaryrefslogtreecommitdiffstats
path: root/ldap/admin
diff options
context:
space:
mode:
authorRich Megginson <rmeggins@redhat.com>2007-09-04 17:50:49 +0000
committerRich Megginson <rmeggins@redhat.com>2007-09-04 17:50:49 +0000
commit9c547934f1d1083aec634bcc35d0db49235191d9 (patch)
tree2db90d02cac38447b3e25ddfa8532b62ddf74b55 /ldap/admin
parent6cc77119625e8c63d27ff1a6a8e8a7159c3abbfe (diff)
downloadds-9c547934f1d1083aec634bcc35d0db49235191d9.tar.gz
ds-9c547934f1d1083aec634bcc35d0db49235191d9.tar.xz
ds-9c547934f1d1083aec634bcc35d0db49235191d9.zip
Resolves: bug 276741
Bug Description: 'Operation Error' encountered during DS6.21 to DS80 cross-platform migration Reviewed by: nhosoi (Thanks!) Fix Description: For cross platform migration, we should not migrate the nsslapd-idl-switch setting, we should just use the new default value which is "new". Platforms tested: RHEL4 Flag Day: no Doc impact: no QA impact: should be covered by regular nightly and manual testing New Tests integrated into TET: none
Diffstat (limited to 'ldap/admin')
-rw-r--r--ldap/admin/src/scripts/DSMigration.pm.in21
1 files changed, 19 insertions, 2 deletions
diff --git a/ldap/admin/src/scripts/DSMigration.pm.in b/ldap/admin/src/scripts/DSMigration.pm.in
index d34e1657..cc0f9b3c 100644
--- a/ldap/admin/src/scripts/DSMigration.pm.in
+++ b/ldap/admin/src/scripts/DSMigration.pm.in
@@ -101,7 +101,8 @@ my %ignoreOld =
'nsslapd-ldapiuidnumbertype' => 'nsslapd-ldapiuidnumbertype',
'nsslapd-ldapigidnumbertype' => 'nsslapd-ldapigidnumbertype',
'nsslapd-ldapientrysearchbase' => 'nsslapd-ldapientrysearchbase',
- 'nsslapd-ldapiautodnsuffix' => 'nsslapd-ldapiautodnsuffix'
+ 'nsslapd-ldapiautodnsuffix' => 'nsslapd-ldapiautodnsuffix',
+ 'numsubordinates' => 'numSubordinates'
);
# these are the obsolete entries we do not migrate
@@ -180,6 +181,21 @@ sub removensState {
return $newval;
}
+sub migIdlSwitch {
+ my ($ent, $attr, $mig, $inst) = @_;
+ my $newval;
+
+ # if doing cross platform migration, just use the default value for
+ # nsslapd-idl-switch
+ # if not doing cross platform, meaning we just use the existing
+ # database binaries, we must preserve whatever the old value is
+ if (!$mig->{crossplatform}) {
+ $newval = $ent->getValues($attr);
+ }
+
+ return $newval;
+}
+
# these are attributes that we have to transform from
# the old value to the new value (e.g. a pathname)
# The key of this hash is the attribute name. The value
@@ -193,7 +209,8 @@ my %transformAttr =
'nsslapd-changelogdir' => \&getNewDbDir,
'nsds5replicacredentials' => \&migrateCredentials,
'nsmultiplexorcredentials' => \&migrateCredentials,
- 'nsstate' => \&removensState
+ 'nsstate' => \&removensState,
+ 'nsslapd-idl-switch' => \&migIdlSwitch
);
sub copyDatabaseDirs {