admserv/newinst/src/AdminMigration.pm.in | 49 ++++++++++++++++---------------
1 file changed, 26 insertions(+), 23 deletions(-)
New commits:
commit fb92728c2e0ff34b86001863d96e2b8a24b1f3e8
Author: Endi S. Dewata <edewata(a)redhat.com>
Date: Tue Oct 12 01:39:17 2010 -0400
Bug 573889 - Migration does not remove deprecated schema
The AdminMigration.pm has been modified such that it executes
the update scripts for the Admin Server.
The migratePset() and updateConsoleInfo() have been modified
to use the LDAP connection created in migrateAdminServer().
diff --git a/admserv/newinst/src/AdminMigration.pm.in
b/admserv/newinst/src/AdminMigration.pm.in
index b8f0fbd..40ba860 100644
--- a/admserv/newinst/src/AdminMigration.pm.in
+++ b/admserv/newinst/src/AdminMigration.pm.in
@@ -31,6 +31,7 @@ use Migration;
use AdminServer;
use AdminUtil;
use DSUtil;
+use DSUpdate;
use SetupLog;
use File::Path;
@@ -169,15 +170,7 @@ sub migratePset {
my $inf = $mig->{inf};
my @errs;
- my $conn = getConfigDSConn($inf->{General}->{ConfigDirectoryLdapURL},
- $inf->{General}->{ConfigDirectoryAdminID},
- $inf->{General}->{ConfigDirectoryAdminPwd},
- $configdir, \@errs);
-
- if (@errs) {
- $mig->msg($FATAL, @errs);
- return 0;
- }
+ my $conn = $mig->{inf}->{configdsconn};
# add the Admin Server configuration entries
my @ldiffiles = ("@ldifdir(a)/asmigrate.ldif.tmpl",
@@ -191,7 +184,6 @@ sub migratePset {
$mapper = process_maptbl($mapper, \@errs, $inf, $admininf, $setupinf);
if (!$mapper) {
- $conn->close();
$mig->msg(@errs);
$mig->msg($FATAL, 'error_creating_asmigration_maptbl');
return 0;
@@ -200,7 +192,6 @@ sub migratePset {
# update isie and sie
getMappedEntries($mapper, \@ldiffiles, \@errs, \&migratecb, $conn);
if (@errs) {
- $conn->close();
$mig->msg(@errs);
return 0;
}
@@ -211,7 +202,6 @@ sub migratePset {
$isnew = 1;
}
if (!open(LOCALCONF, ">$localconf")) {
- $conn->close();
$mig->msg($FATAL, 'error_updating_localconf', $localconf, $!);
return 0;
}
@@ -220,7 +210,6 @@ sub migratePset {
if (!$entry || $conn->getErrorCode()) {
$mig->msg($FATAL, 'error_no_localconf_entries',
$inf->{admin}->{sie}, $localconf, $conn->getErrorString());
- $conn->close();
close(LOCALCONF);
return 0;
}
@@ -229,7 +218,6 @@ sub migratePset {
updateLocalConf($entry, $inf->{admin}->{sie}, \*LOCALCONF);
$entry = $conn->nextEntry();
}
- $conn->close();
close(LOCALCONF);
if ($isnew) {
@@ -265,10 +253,7 @@ sub updateConsoleInfo {
my $inf = $mig->{inf};
my @errs;
- my $conn = getConfigDSConn($inf->{General}->{ConfigDirectoryLdapURL},
- $inf->{General}->{ConfigDirectoryAdminID},
- $inf->{General}->{ConfigDirectoryAdminPwd},
- $configdir, \@errs);
+ my $conn = $mig->{inf}->{configdsconn};
if (@errs) {
$mig->msg($FATAL, @errs);
@@ -286,7 +271,6 @@ sub updateConsoleInfo {
$mapper = process_maptbl($mapper, \@errs, $inf, $admininf, $dsinf, $setupinf);
if (!$mapper) {
- $conn->close();
$mig->msg(@errs);
$mig->msg($FATAL, 'error_creating_updateconsole_maptbl');
return 0;
@@ -295,7 +279,6 @@ sub updateConsoleInfo {
# update isie and sie
getMappedEntries($mapper, \@ldiffiles, \@errs, \&updateconinfocb, $conn);
if (@errs) {
- $conn->close();
$mig->msg(@errs);
return 0;
}
@@ -306,7 +289,6 @@ sub updateConsoleInfo {
my $versents = $conn->search($basedn, "sub",
"(objectclass=*)", 0, qw(* aci));
if (!$versents) {
$mig->msg($FATAL, 'error_migrating_console_entries', $basedn,
$conn->getErrorString());
- $conn->close();
return 0;
}
@@ -329,7 +311,6 @@ sub updateConsoleInfo {
debug(3, "Console customization entry $newdn already exists,
skipping\n");
} else {
$mig->msg($FATAL, 'error_adding_console_entries', $newdn,
$conn->getErrorString());
- $conn->close();
return 0;
}
} else {
@@ -337,7 +318,6 @@ sub updateConsoleInfo {
}
}
- $conn->close();
return 1;
}
@@ -453,6 +433,7 @@ sub migrateAdmpw {
sub migrateAdminServer {
my $mig = shift;
+ my @errs;
my $configdir = $mig->{inf}->{admin}->{config_dir} ||
$ENV{ADMSERV_CONF_DIR} ||
@@ -509,14 +490,36 @@ sub migrateAdminServer {
return 0;
}
+ my $conn =
getConfigDSConn($mig->{inf}->{General}->{ConfigDirectoryLdapURL},
+
$mig->{inf}->{General}->{ConfigDirectoryAdminID},
+
$mig->{inf}->{General}->{ConfigDirectoryAdminPwd},
+ $configdir, \@errs);
+
+ if (@errs) {
+ $mig->msg($FATAL, @errs);
+ return 0;
+ }
+
+ $mig->{inf}->{configdsconn} = $conn;
+ $mig->{inf}->{slapd}->{updatedir} = "@updatedir@";
+
+ if (updateDS($mig)) {
+ $conn->close();
+ return 0;
+ }
+
if (!migratePset($mig, $configdir)) {
+ $conn->close();
return 0;
}
if (!updateConsoleInfo($mig, $configdir)) {
+ $conn->close();
return 0;
}
+ $conn->close();
+
if (!migrateAdmpw($mig, $configdir)) {
return 0;
}