Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 158241 Details for
Bug 245815
DS Admin Migration framework
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
diffs to add perl module migration support for DS
cvsdiffs (text/plain), 23.35 KB, created by
Rich Megginson
on 2007-06-29 18:28:07 UTC
(
hide
)
Description:
diffs to add perl module migration support for DS
Filename:
MIME Type:
Creator:
Rich Megginson
Created:
2007-06-29 18:28:07 UTC
Size:
23.35 KB
patch
obsolete
>Index: ldapserver/ldap/admin/src/scripts/Setup.pm.in >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/admin/src/scripts/Setup.pm.in,v >retrieving revision 1.7 >diff -u -8 -r1.7 Setup.pm.in >--- ldapserver/ldap/admin/src/scripts/Setup.pm.in 20 Jun 2007 16:27:50 -0000 1.7 >+++ ldapserver/ldap/admin/src/scripts/Setup.pm.in 29 Jun 2007 18:26:01 -0000 >@@ -64,16 +64,21 @@ > use Mozilla::LDAP::API qw(ldap_explode_dn); > use Mozilla::LDAP::LDIF; > > use Getopt::Long; > > use File::Temp qw(tempfile tempdir); > > use SetupLog; >+use Util; >+use Inf; >+ >+use strict; >+use vars qw($EXPRESS $TYPICAL $CUSTOM $SILENT); > > # the setup types > $EXPRESS = 1; > $TYPICAL = 2; > $CUSTOM = 3; > $SILENT = 4; > > # process command line options >@@ -106,31 +111,36 @@ > "slapd.Suffix=dc=example, dc=com" > Values passed in this manner will override values in an .inf file given with the -f argument. > EOF > } > > sub new { > my $type = shift; > my $self = {}; >+ $self = bless $self, $type; >+ $self->init(@_); >+ return $self; >+} >+ >+sub init { >+ my $self = shift; > $self->{res} = shift; >- my ($debuglevel, $silent, $inffile, $keep, $preonly, $logfile); >- my @otherargs; >+ my ($silent, $inffile, $keep, $preonly, $logfile); > > GetOptions('help|h|?' => sub { VersionMessage(); HelpMessage(); exit 0 }, > 'version|v' => sub { VersionMessage(); exit 0 }, >- 'debug|d+' => \$debuglevel, >+ 'debug|d+' => \$Util::debuglevel, > 'silent|s' => \$silent, > 'file|f=s' => \$inffile, > 'keepcache|k' => \$keep, > 'preonly|p' => \$preonly, > 'logfile|l=s' => \$logfile > ); > >- $self->{debuglevel} = $debuglevel; > $self->{silent} = $silent; > $self->{inffile} = $inffile; > $self->{keep} = $keep; > $self->{preonly} = $preonly; > $self->{logfile} = $logfile; > $self->{log} = new SetupLog($self->{logfile}); > # if user supplied inf file, use that to initialize > if (defined($self->{inffile})) { >@@ -157,19 +167,16 @@ > usage(); > exit 1; > } > } > > # this is the base config directory - the directory containing > # the slapd-instance instance specific config directories > $self->{configdir} = $ENV{DS_CONFIG_DIR} || "@instconfigdir@"; >- >- $self = bless $self, $type; >- return $self; > } > > # log only goes the the logfile > sub log { > my $self = shift; > my $level = shift; > $self->{log}->logMessage($level, "Setup", @_); > } >Index: ldapserver/ldap/admin/src/scripts/SetupLog.pm >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/admin/src/scripts/SetupLog.pm,v >retrieving revision 1.1 >diff -u -8 -r1.1 SetupLog.pm >--- ldapserver/ldap/admin/src/scripts/SetupLog.pm 8 Jun 2007 01:09:16 -0000 1.1 >+++ ldapserver/ldap/admin/src/scripts/SetupLog.pm 29 Jun 2007 18:26:01 -0000 >@@ -54,21 +54,22 @@ > $SUCCESS = "Success"; > $WARN = "Warning"; > $INFO = "Info"; > $DEBUG = "Debug"; > > sub new { > my $type = shift; > my $filename = shift; >+ my $prefix = shift || "setup"; > my $self = {}; > my $fh; > > if (!$filename) { >- ($fh, $filename) = tempfile("setupXXXXXX", UNLINK => 0, >+ ($fh, $filename) = tempfile("${prefix}XXXXXX", UNLINK => 0, > SUFFIX => ".log", DIR => File::Spec->tmpdir); > } else { > open LOGFILE, ">$filename" or die "Error: could not open logfile $filename: $!"; > $fh = \*LOGFILE; > } > $self->{fh} = $fh; > $self->{filename} = $filename; > $self = bless $self, $type; >Index: ldapserver/ldap/admin/src/scripts/Util.pm.in >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/admin/src/scripts/Util.pm.in,v >retrieving revision 1.3 >diff -u -8 -r1.3 Util.pm.in >--- ldapserver/ldap/admin/src/scripts/Util.pm.in 21 Jun 2007 21:57:23 -0000 1.3 >+++ ldapserver/ldap/admin/src/scripts/Util.pm.in 29 Jun 2007 18:26:02 -0000 >@@ -42,25 +42,38 @@ > use Mozilla::LDAP::Utils qw(normalizeDN); > use Mozilla::LDAP::API; # Direct access to C API > use Mozilla::LDAP::LDIF; > > require Exporter; > @ISA = qw(Exporter); > @EXPORT = qw(portAvailable getAvailablePort isValidDN addSuffix getMappedEntries > process_maptbl check_and_add_entry getMappedEntries >- getHashedPassword); >+ getHashedPassword debug createDSInstance createInfFromConfig); > @EXPORT_OK = qw(portAvailable getAvailablePort isValidDN addSuffix getMappedEntries > process_maptbl check_and_add_entry getMappedEntries >- getHashedPassword); >+ getHashedPassword debug createDSInstance createInfFromConfig); > > use strict; > > use Socket; > >+use File::Temp qw(tempfile tempdir); >+ >+$Util::debuglevel = 0; >+# use like this: >+# debug(3, "message"); >+# this will only print "message" if $debuglevel is 3 or higher (-ddd on the command line) >+sub debug { >+ my ($level, @rest) = @_; >+ if ($level <= $Util::debuglevel) { >+ print STDERR "+" x $level, @rest; >+ } >+} >+ > # return true if the given port number is available, false otherwise > sub portAvailable { > my $port = shift; > my $proto = getprotobyname('tcp'); > my $rc = socket(SOCK, PF_INET, SOCK_STREAM, $proto); > if ($rc == 1) { > $rc = bind(SOCK, sockaddr_in($port, INADDR_ANY)); > } >@@ -84,20 +97,16 @@ > } > } > > sub isValidDN { > my $dn = shift; > return ($dn =~ /^[0-9a-zA-Z_-]+=.*$/); > } > >-sub debug { >-# print @_, "\n"; >-} >- > # delete the subtree starting from the passed entry > sub delete_all > { > my ($conn, $bentry) = @_; > my $sentry = $conn->search($bentry->{dn}, > "subtree", "(objectclass=*)", 0, ("dn")); > my @mystack = (); > while ($sentry) { >@@ -212,19 +221,28 @@ > sub check_and_add_entry > { > my ($context, $aentry) = @_; > my $conn = $context->[0]; > my $fresh = $context->[1]; > my $verbose = $context->[2]; > my @ctypes = $aentry->getValues("changetype"); > my $sentry = $conn->search($aentry->{dn}, "base", "(objectclass=*)", 0, ("*", "aci")); >+ if ($sentry) { >+ debug(3, "check_and_add_entry: Found entry " . $sentry->getDN() . "\n"); >+ } else { >+ debug(3, "check_and_add_entry: Entry not found " . $aentry->{dn} . >+ " error " . $conn->getErrorString() . "\n"); >+ } > do > { > my $needtoadd; >+ my @addtypes; # list of attr types for mod add >+ my @reptypes; # list of attr types for mod replace >+ my @deltypes; # list of attr types for mod delete > my $MOD_NONE = 0; > my $MOD_ADD = 1; > my $MOD_REPLACE = 2; > my $MOD_SPECIAL = 3; > # $needtomod stores either of the above $MOD_ values > # note: delete is not supported > my $needtomod; > if ( 0 > $#ctypes ) # aentry: complete entry >@@ -243,130 +261,110 @@ > # no need to add the entry. > $needtoadd = 0; > goto out; > } > elsif ( (1 == $rc) && !$fresh ) > { > $needtoadd = 0; > $needtomod = $MOD_ADD; >+ @addtypes = keys %{$aentry}; # add all attrs > } > elsif ( $sentry && $sentry->{dn} ) > { > # $fresh || $rc == -1 > # an entry having the same DN exists, but the attributes do not > # match. remove the entry and the subtree underneath. >- if ( $verbose ) >- { >- print "Deleting an entry dn: $sentry->{dn} ...\n"; >- } >+ debug(1, "Deleting an entry dn: $sentry->{dn} ...\n"); > $rc = delete_all($conn, $sentry); > if ( 0 != $rc ) > { >+ debug(1, "Error deleting $sentry->{dn}\n"); > return 0; > } > } > } > else # aentry: modify format > { > $needtoadd = 0; > if ( $sentry ) > { >- my @atypes = $aentry->getValues("add"); >- if ( 0 <= $#atypes ) >- { >- $needtomod = $MOD_ADD; >- } >- else >- { >- @atypes = $aentry->getValues("replace"); >- if ( 0 <= $#atypes ) >- { >- $needtomod = $MOD_REPLACE; >- } >- else >- { >- @atypes = $aentry->getValues("delete"); >- if ( 0 <= $#atypes ) >- { >- print "\"delete\" is not supported; ignoring...\n"; >- } >- $needtomod = $MOD_NONE; >- } >- } >+ @addtypes = $aentry->getValues("add"); >+ @reptypes = $aentry->getValues("replace"); >+ @deltypes = $aentry->getValues("delete"); >+ $needtomod = $MOD_REPLACE; > } > else > { > $needtomod = $MOD_NONE; > } > } > > if ( 1 == $needtoadd ) > { > $conn->add($aentry); > my $rc = $conn->getErrorCode(); > if ( $rc != 0 ) > { >- print "ERROR: adding an entry $aentry->{dn} failed, error code: $rc\n"; >+ my $string = $conn->getErrorString(); >+ print "ERROR: adding an entry $aentry->{dn} failed, error: $string\n"; > print "[entry]\n"; > $aentry->printLDIF(); > $conn->close(); > return 0; > } >- debug("Entry $aentry->{dn} is added\n"); >+ debug(1, "Entry $aentry->{dn} is added\n"); > } > elsif ( 0 < $needtomod ) # $sentry exists > { >+ my $attr; > if ( $needtomod == $MOD_SPECIAL ) > { >- foreach my $attr ( keys %speciallist ) >+ debug(3, "Doing MOD_SPECIAL for entry $aentry->{dn}\n"); >+ foreach $attr ( keys %speciallist ) > { > foreach my $nval ( @{$aentry->{$attr}} ) > { > $sentry->addValue( $attr, $nval ); > } > } >- $conn->update($sentry); > } >- elsif ( $needtomod == $MOD_ADD ) >+ foreach $attr ( @addtypes ) > { >- foreach my $attr ( keys %{$aentry} ) >- { >- next if $attr =~ /add|changetype/; >- foreach my $nval ( @{$aentry->{$attr}} ) >- { >- $sentry->addValue( $attr, $nval ); >- } >- } >- $conn->update($sentry); >+ debug(3, "Adding attr=$attr values=" . $aentry->getValues($attr) . " to entry $aentry->{dn}\n"); >+ $sentry->addValue( $attr, $aentry->getValues($attr) ); > } >- elsif ( $needtomod == $MOD_REPLACE ) >+ foreach $attr ( @reptypes ) > { >- my $entry = new Mozilla::LDAP::Entry(); >- $entry->setDN($aentry->getDN()); >- foreach my $attr ( keys %{$aentry} ) >+ debug(3, "Replacing attr=$attr values=" . $aentry->getValues($attr) . " to entry $aentry->{dn}\n"); >+ $sentry->setValues($attr, $aentry->getValues($attr)); >+ } >+ foreach $attr ( @deltypes ) >+ { >+ # removeValue takes a single value only >+ if (!$aentry->size($attr)) > { >- next if $attr =~ /replace|changetype/; >- foreach my $nval ( @{$aentry->{$attr}} ) >+ debug(3, "Deleting attr=$attr from entry $aentry->{dn}\n"); >+ $sentry->remove($attr); # just delete the attribute >+ } >+ else >+ { >+ debug(3, "Deleting attr=$attr values=" . $aentry->getValues($attr) . " from entry $aentry->{dn}\n"); >+ foreach my $val ($aentry->getValues($attr)) > { >- $entry->addValue( $attr, $nval ); >+ $sentry->removeValue($attr, $val); > } > } >- $conn->update($entry); >- } >- else >- { >- print "ERROR: needtomod == $needtomod is not supported.\n"; >- $conn->close(); >- return 0; > } >+ $conn->update($sentry); > my $rc = $conn->getErrorCode(); > if ( $rc != 0 ) > { >- print "ERROR: updating an entry $sentry->{dn} failed, error code: $rc\n"; >+ my $string = $conn->getErrorString(); >+ print "ERROR: updating an entry $sentry->{dn} failed, error: $string\n"; > print "[entry]\n"; > $aentry->printLDIF(); > $conn->close(); > return 0; > } > } > if ( $sentry ) > { >@@ -450,17 +448,17 @@ > > if (!ref($ldiffiles)) { > $ldiffiles = [ $ldiffiles ]; > } > > foreach my $ldiffile (@{$ldiffiles}) { > open(MYLDIF, "< $ldiffile") or die "Can't open $ldiffile : $!"; > my $in = new Mozilla::LDAP::LDIF(*MYLDIF); >- debug("Processing $ldiffile ..."); >+ debug(1, "Processing $ldiffile ...\n"); > ENTRY: while (my $entry = Mozilla::LDAP::LDIF::readOneEntry($in)) { > # first, fix the DN > my $dn = $entry->getDN(); > my $origdn = $dn; > while ( $dn =~ /%([\w_-]+)%/ ) { > if (exists($mapper->{$1})) { > $dn =~ s{%([\w_-]+)%}{$mapper->{$1}}ge; > } else { >@@ -704,9 +702,60 @@ > } > $cmd .= " \'$pwd\'"; > my $hashedpwd = `$cmd`; > chomp($hashedpwd); > > return $hashedpwd; > } > >+sub createDSInstance { >+ my $inf = shift; >+# find ds_newinst.pl - in same directory as this script or in PATH >+ my $ds_newinst; >+ ($ds_newinst = $0) =~ s|/[^/]+$|/ds_newinst.pl|; >+ if (! -x $ds_newinst) { >+ $ds_newinst = "@bindir@/ds_newinst.pl"; >+ } >+ if (! -x $ds_newinst) { >+ $ds_newinst = "ds_newinst.pl"; # just get from path >+ } >+ $? = 0; # clear error condition >+ my $output = `$ds_newinst $inf->{filename}`; >+ return ($?, $output); >+} >+ >+# this creates an Inf suitable for passing to createDSInstance >+sub createInfFromConfig { >+ my $configdir = shift; >+ my $inst = shift; >+ my $fname = "$configdir/dse.ldif"; >+ my $id; >+ ($id = $inst) =~ s/^slapd-//; >+ open( DSELDIF, "$fname" ) || die "Can't open $fname: $!"; >+ my ($outfh, $inffile) = tempfile(SUFFIX => '.inf'); >+ my $in = new Mozilla::LDAP::LDIF(*DSELDIF) ; >+ while (my $ent = readOneEntry $in) { >+ my $dn = $ent->getDN(); >+ if ($dn =~ /cn=config/) { >+ print $outfh "[General]\n"; >+ print $outfh "FullMachineName = ", $ent->getValues('nsslapd-localhost'), "\n"; >+ print $outfh "SuiteSpotUserID = ", $ent->getValues('nsslapd-localuser'), "\n"; >+ print $outfh "ServerRoot = @serverdir@\n"; >+ print $outfh "[slapd]\n"; >+ print $outfh "RootDN = ", $ent->getValues('nsslapd-rootdn'), "\n"; >+ print $outfh "RootDNPwd = ", $ent->getValues('nsslapd-rootpw'), "\n"; >+ print $outfh "ServerPort = ", $ent->getValues('nsslapd-port'), "\n"; >+ print $outfh "ServerIdentifier = $id\n"; >+ print $outfh "Suffix = o=deleteAfterMigration\n"; >+ print $outfh "start_server= 0\n"; >+ last; >+ } >+ } >+ close $outfh; >+ close DSELDIF; >+ >+ my $inf = new Inf($inffile); >+ >+ return $inf; >+} >+ > 1; >Index: ldapserver/ldap/admin/src/scripts/setup-ds.pl.in >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/admin/src/scripts/setup-ds.pl.in,v >retrieving revision 1.2 >diff -u -8 -r1.2 setup-ds.pl.in >--- ldapserver/ldap/admin/src/scripts/setup-ds.pl.in 20 Jun 2007 22:08:39 -0000 1.2 >+++ ldapserver/ldap/admin/src/scripts/setup-ds.pl.in 29 Jun 2007 18:26:02 -0000 >@@ -40,16 +40,17 @@ > use lib '@perldir@'; > > use strict; > > use Setup; > use Inf; > use Resource; > use DialogManager; >+use Util; > > my $res = new Resource("@propertydir@/setup-ds.res"); > > my $setup = new Setup($res); > > if (!$setup->{silent}) { > my $dialogmgr = new DialogManager($setup, $res, $TYPICAL); > >@@ -63,11 +64,16 @@ > > my $rc = $dialogmgr->run(); > if ($rc) { > $setup->doExit(); > } > $setup->{inf}->write(); > } > >-system("@bindir@/ds_newinst.pl $setup->{inffile}"); >+my ($rc, $output) = createDSInstance($setup->{inf}); >+if ($rc) { >+ $setup->msg($FATAL, 'error_creating_dsinstance', $rc, $output); >+} else { >+ $setup->msg($output); >+} > > $setup->doExit(); >Index: ldapserver/ldap/admin/src/scripts/setup-ds.res.in >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/admin/src/scripts/setup-ds.res.in,v >retrieving revision 1.4 >diff -u -8 -r1.4 setup-ds.res.in >--- ldapserver/ldap/admin/src/scripts/setup-ds.res.in 19 Jun 2007 18:24:57 -0000 1.4 >+++ ldapserver/ldap/admin/src/scripts/setup-ds.res.in 29 Jun 2007 18:26:02 -0000 >@@ -82,8 +82,10 @@ > > # ----------- miscellaneous ---------------- > backend_already_exists = A database backend with the name '%s' already exists. Config entry DN '%s'. Please choose another backend name. addSuffix can generate a unique backend name if you do not specify a backend name.\n\n > suffix_already_exists = The suffix '%s' already exists. Config entry DN '%s'.\n\n > error_creating_suffix_backend = Could not create the suffix '%s'. There was an error creating the backend database named '%s' for the suffix. Error: %s\n\n > error_creating_suffix = Could not create the suffix '%s'. Error: %s\n\n > > setup_exiting = Exiting . . .\nLog file is '%s'\n\n >+error_creating_dsinstance = Error: Could not create directory server instance. Error code %s. Output:\n%s\n >+created_dsinstance = Your new DS instance was successfully created. Output:\n%s\n >Index: ldapserver/Makefile.am >=================================================================== >RCS file: /cvs/dirsec/ldapserver/Makefile.am,v >retrieving revision 1.46 >diff -u -8 -r1.46 Makefile.am >--- ldapserver/Makefile.am 21 Jun 2007 21:57:22 -0000 1.46 >+++ ldapserver/Makefile.am 29 Jun 2007 18:26:02 -0000 >@@ -181,30 +181,34 @@ > wrappers/migratecred \ > wrappers/mmldif \ > wrappers/pwdhash \ > wrappers/rsearch \ > wrappers/cl-dump \ > ldap/admin/src/scripts/cl-dump.pl \ > wrappers/repl-monitor \ > ldap/admin/src/scripts/repl-monitor.pl \ >- ldap/admin/src/scripts/setup-ds.pl >+ ldap/admin/src/scripts/setup-ds.pl \ >+ ldap/admin/src/scripts/migrate-ds.pl > > perl_SCRIPTS = ldap/admin/src/scripts/SetupLog.pm \ > ldap/admin/src/scripts/Resource.pm \ > ldap/admin/src/scripts/Util.pm \ > ldap/admin/src/scripts/Setup.pm \ > ldap/admin/src/scripts/SetupDialogs.pm \ > ldap/admin/src/scripts/Inf.pm \ > ldap/admin/src/scripts/DialogManager.pm \ > ldap/admin/src/scripts/Dialog.pm \ > ldap/admin/src/scripts/DSDialogs.pm \ >- ldap/admin/src/scripts/Setup.pm >+ ldap/admin/src/scripts/Setup.pm \ >+ ldap/admin/src/scripts/Migration.pm \ >+ ldap/admin/src/scripts/DSMigration.pm > >-property_DATA = ldap/admin/src/scripts/setup-ds.res >+property_DATA = ldap/admin/src/scripts/setup-ds.res \ >+ ldap/admin/src/scripts/migrate-ds.res > > task_SCRIPTS = ldap/admin/src/scripts/template-bak2db \ > ldap/admin/src/scripts/template-db2bak \ > ldap/admin/src/scripts/template-db2index \ > ldap/admin/src/scripts/template-db2ldif \ > ldap/admin/src/scripts/template-ldif2db \ > ldap/admin/src/scripts/template-ldif2ldap \ > ldap/admin/src/scripts/template-monitor \ >Index: ldapserver/ldap/admin/src/create_instance.c >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/admin/src/create_instance.c,v >retrieving revision 1.61 >diff -u -8 -r1.61 create_instance.c >--- ldapserver/ldap/admin/src/create_instance.c 28 Jun 2007 16:15:26 -0000 1.61 >+++ ldapserver/ldap/admin/src/create_instance.c 29 Jun 2007 18:26:05 -0000 >@@ -432,17 +432,17 @@ > register int x; > > if (!param_name) > return "Parameter param_name is null"; > > /* if we don't need to start the server right away, we can skip the > port number checks > */ >- if (!needToStartServer(cf)) >+ if (needToStartServer(cf)) > { > if( (t = create_instance_checkports(cf))) > { > PL_strncpyz(param_name, "servport", BIG_LINE); > return t; > } > > if ( cf->secserv && (strcmp(cf->secserv, "on") == 0) && (cf->secservport != NULL) && >Index: ldapserver/ldap/admin/src/migrateTo11.in >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/admin/src/migrateTo11.in,v >retrieving revision 1.1 >diff -u -8 -r1.1 migrateTo11.in >--- ldapserver/ldap/admin/src/migrateTo11.in 16 Mar 2007 21:32:39 -0000 1.1 >+++ ldapserver/ldap/admin/src/migrateTo11.in 29 Jun 2007 18:26:05 -0000 >@@ -289,48 +289,16 @@ > # server automagically upgrades database if needed > # upgradeDatabase($newdbdir); > # fix the DBVERSION files > # updateDBVERSION($newdbdir); > # fix guardian files > # updateDBguardian($newdbdir); > } > >-sub copySecurityFiles { >- my $oldroot = shift; >- my $inst = shift; >- my $destdir = shift; >- >- if (! -d "$oldroot/alias") { >- debug(0, "Error: security file directory $oldroot/alias not found\n"); >- } elsif (! -d $destdir) { >- debug(0, "Error: new security file directory $destdir not found\n"); >- } else { >- debug(1, "Copying $oldroot/alias/$inst-cert8.db to $destdir/cert8.db\n"); >- system ("cp -p $oldroot/alias/$inst-cert8.db $destdir/cert8.db") == 0 or >- die "Error: could not copy $oldroot/alias/$inst-cert8.db to $destdir/cert8.db: $!"; >- debug(1, "Copying $oldroot/alias/$inst-key3.db to $destdir/key3.db\n"); >- system ("cp -p $oldroot/alias/$inst-key3.db $destdir/key3.db") == 0 or >- die "Error: could not copy $oldroot/alias/$inst-key3.db to $destdir/key3.db: $!"; >- debug(1, "Copying $oldroot/alias/secmod.db to $destdir/secmod.db\n"); >- system ("cp -p $oldroot/alias/secmod.db $destdir/secmod.db") == 0 or >- die "Error: could not copy $oldroot/alias/secmod.db to $destdir/secmod.db: $!"; >- if (-f "$oldroot/alias/$inst-pin.txt") { >- debug(1, "Copying $oldroot/alias/$inst-pin.txt to $destdir/pin.txt\n"); >- system ("cp -p $oldroot/alias/$inst-pin.txt $destdir/pin.txt") == 0 or >- die "Error: could not copy $oldroot/alias/$inst-pin.txt to $destdir/pin.txt: $!"; >- } >- if (-f "$oldroot/shared/config/certmap.conf") { >- debug(1, "Copying $oldroot/shared/config/certmap.conf to $destdir/certmap.conf\n"); >- system ("cp -p $oldroot/shared/config/certmap.conf $destdir/certmap.conf") == 0 or >- die "Error: could not copy $oldroot/shared/config/certmap.conf to $destdir/certmap.conf: $!"; >- } >- } >-} >- > sub copyChangelogDB { > my $oldroot = shift; > my $inst = shift; > my $newdbdir = shift; > # changelog config entry > my $cldn = normalizeDN("cn=changelog5, cn=config"); > my $fname = "$oldroot/$inst/config/dse.ldif"; > open( DSELDIF, "$fname" ) || die "Can't open $fname: $!";
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 245815
:
158147
|
158227
|
158228
|
158229
|
158230
|
158231
|
158235
|
158236
|
158237
|
158238
|
158239
| 158241 |
158266
|
158269
|
158883
|
158885
|
159053
|
159352