From 8d0482561ed95621e52710d74fb74dc6970a6f04 Mon Sep 17 00:00:00 2001 From: Rich Megginson Date: Nov 26 2013 21:38:55 +0000 Subject: Ticket #47300 [RFE] remove-ds-admin.pl: redesign the behaviour https://fedorahosted.org/389/ticket/47300 Reviewed by: mreynolds (Thanks!) Branch: master Fix Description: Replace these files with their defaults saved in the bakup directory: httpd.conf, console.conf, admserv.conf, nss.conf. Without the -a (all) flag, preserve these files: cert8.db, key3.db, secmod.db, password.conf. With the -a flag, remove them. Platforms tested: RHEL6 x86_64 Flag Day: no Doc impact: no --- diff --git a/admserv/newinst/src/AdminServer.pm.in b/admserv/newinst/src/AdminServer.pm.in index 1d7d06f..7c7b511 100644 --- a/admserv/newinst/src/AdminServer.pm.in +++ b/admserv/newinst/src/AdminServer.pm.in @@ -355,6 +355,9 @@ sub registerASWithConfigDS { return @errs ? 0 : 1; } +my @saveconffiles = qw(admserv.conf httpd.conf nss.conf console.conf); +my @savesecfiles = qw(cert8.db key3.db secmod.db password.conf); + # update other config files - these are the fields which users typically want to # change during an install or an upgrade, that also must be synced to the Apache # style config files - we use the config CGI in command line mode because it @@ -412,14 +415,13 @@ sub updateHttpConfFiles { print CONSOLECONF @contents; close (CONSOLECONF); } - my @savefiles = qw(admserv.conf httpd.conf nss.conf console.conf cert8.db key3.db secmod.db); if (! -d "$admConf->{configdir}/bakup") { if (system ("mkdir -p $admConf->{configdir}/bakup")) { debug(0, "Error backing up $admConf->{configdir}/console.conf failed: $!"); } } # backup savefiles for "remove-ds-admin.pl -a" - foreach my $savefile (@savefiles) { + foreach my $savefile (@saveconffiles, @savesecfiles) { if (! -f "$admConf->{configdir}/bakup/$savefile") { if (system ("cp -p $admConf->{configdir}/$savefile $admConf->{configdir}/bakup")) { debug(0, "Error backing up $admConf->{configdir}/$savefile failed: $!"); @@ -740,7 +742,10 @@ sub removeAdminServer { } # remove config files - my @savefiles = qw(admserv.conf httpd.conf nss.conf console.conf cert8.db key3.db secmod.db); + my @savefiles = @savesecfiles; # save security files by default + if ($all) { + @savefiles = (); # $all means remove everything, save nothing + } if (opendir(CONFDIR, $configdir)) { while ($file = readdir(CONFDIR)) { next if ($file eq '.' || $file eq '..'); @@ -756,13 +761,11 @@ sub removeAdminServer { } } closedir(CONFDIR); - if ($all) { - # restore backed up savefiles - foreach my $savefile (@savefiles) { - if (-f "$configdir/bakup/$savefile") { - if (system ("mv $configdir/bakup/$savefile $configdir")) { - debug(0, "Error Restoring $configdir/$savefile failed: $!"); - } + # restore original conf files + foreach my $savefile (@saveconffiles) { + if (-f "$configdir/bakup/$savefile") { + if (system ("mv $configdir/bakup/$savefile $configdir")) { + debug(0, "Error Restoring $configdir/$savefile failed: $!"); } } }