From e5b5830d74879aa1cc2cea0fe6d1bb1531f1185c Mon Sep 17 00:00:00 2001 From: Noriko Hosoi Date: Apr 29 2016 17:46:08 +0000 Subject: Ticket #48429 - running remove-ds-admin.pl multiple times will make it so you cannot install DS Bug Description: remove-ds-admin.pl resets the files in /etc/dirsrv/admin- serv and put it to the original state just after "rpm -i 389-admin" is executed. To recover the original state, remove-ds-admin.pl restores the config files backed up by setup-ds-admin.pl. That is, if remove-ds-admin.pl is executed without setup-ds-admin.pl or remove-ds-admin.pl is repeatedly run, the config files are failed to restore. It makes the following setup-ds-admin.pl fail. Fix Description: This patch changes the remove-ds-admin.pl behaviour so that the config files are not touched regardless of the existence of the back up. If the back up exists, the files are overridden by the back up. But even if it does not exist, the current config files remain in the directory, which leads the next setup-ds-admin.pl successfully finish. https://fedorahosted.org/389/ticket/48429 Reviewed by lkrispen@redhat.com (Thank you, Ludwig!!) --- diff --git a/admserv/newinst/src/AdminServer.pm.in b/admserv/newinst/src/AdminServer.pm.in index 3e31e70..480fb3a 100644 --- a/admserv/newinst/src/AdminServer.pm.in +++ b/admserv/newinst/src/AdminServer.pm.in @@ -826,9 +826,9 @@ sub removeAdminServer { } # remove config files - my @savefiles = @savesecfiles; # save security files by default + my @savefiles = (@savesecfiles, @saveconffiles); # save security and conf files by default if ($all) { - @savefiles = (); # $all means remove everything, save nothing + @savefiles = @saveconffiles; # $all means remove everything, except the files in rpm. } if (opendir(CONFDIR, $configdir)) { while ($file = readdir(CONFDIR)) {