More control over failure mode of pre/post commands
authorJamie Cameron <jcameron@webmin.com>
Wed, 16 Apr 2008 18:15:32 +0000 (18:15 +0000)
committerJamie Cameron <jcameron@webmin.com>
Wed, 16 Apr 2008 18:15:32 +0000 (18:15 +0000)
fsdump/CHANGELOG
fsdump/backup.cgi
fsdump/backup.pl
fsdump/edit_dump.cgi
fsdump/lang/en
fsdump/save_dump.cgi

index 4b1f03a..7f8f491 100644 (file)
@@ -32,3 +32,5 @@ When making tar format backups on Linux, an option to just append new files to t
 ---- Changes since 1.400 ----
 Fixed remote tar backups via FTP on OSX.
 Files and directories to exclude can be specified for TAR format backups on Linux.
+---- Changes since 1.410 ----
+Added checkboxes to control if failure of the pre and post-backup commands cause the whole job to be regarded as a failure.
index f8bc205..bcc6e78 100755 (executable)
@@ -35,7 +35,7 @@ else {
                             &dump_dest($dump)),"</b><p>\n";
        print "<pre>";
        $bok = &execute_before($dump, STDOUT, 1);
-       if (!$bok) {
+       if (!$bok && !$dump->{'beforefok'}) {
                # Before command failed
                print "</pre>\n";
                print "<b>$text{'backup_beforefailed'}</b><p>\n";
index edfd377..26aaf5d 100755 (executable)
@@ -41,7 +41,7 @@ else {
        &create_wrappers();
 
        $bok = &execute_before($dump, OUT, 0);
-       if (!$bok) {
+       if (!$bok && !$dump->{'beforefok'}) {
                # Before command failed!
                print OUT "\n$text{'email_ebefore'}\n";
                $status{'status'} = 'failed';
@@ -74,7 +74,7 @@ else {
        if ($status{'status'} = 'complete') {
                # Execute the post-backup script
                $bok = &execute_after($dump, OUT, 0);
-               if (!$bok) {
+               if (!$bok && && !$dump->{'afterfok'}) {
                        print OUT "\n$text{'email_eafter'}\n";
                        $status{'status'} = 'failed';
                        $ok = 0;
index 7e55d24..811fc96 100755 (executable)
@@ -101,12 +101,16 @@ if ($access{'extra'}) {
 # Before and after commands
 if ($access{'cmds'}) {
        print &ui_table_row(&hlink($text{'dump_before'},"before"),
-                           &ui_textbox("before", $dump->{'before'}, 60), 3,
-                           \@tds);
+                           &ui_textbox("before", $dump->{'before'}, 60)." ".
+                           &ui_checkbox("beforefok", 1, $text{'dump_fok'},
+                                        !$dump->{'beforefok'}),
+                           3, \@tds);
 
        print &ui_table_row(&hlink($text{'dump_after'},"after"),
-                           &ui_textbox("after", $dump->{'after'}, 60), 3,
-                           \@tds);
+                           &ui_textbox("after", $dump->{'after'}, 60)." ".
+                           &ui_checkbox("afterfok", 1, $text{'dump_fok'},
+                                        !$dump->{'afterfok'}),
+                           3, \@tds);
        }
 print &ui_table_end();
 
index 0ee2122..c81e6b1 100644 (file)
@@ -67,6 +67,7 @@ dump_complvl=Yes, with level
 dump_ecomp=Missing or invalid compression level
 dump_before=Command to run before backup
 dump_after=Command to run after backup
+dump_fok=Halt if command fails
 dump_extra=Extra command-line parameters
 dump_rsh=Remote backup command
 dump_rsh0=Default (RSH)
index 5db374d..65ac328 100755 (executable)
@@ -75,6 +75,8 @@ else {
        if ($access{'cmds'}) {
                $dump->{'before'} = $in{'before'};
                $dump->{'after'} = $in{'after'};
+               $dump->{'beforefok'} = !$in{'beforefok'};
+               $dump->{'afterfok'} = !$in{'afterfok'};
                }
        &parse_dump($dump);
        $dump->{'reverify'} = $in{'reverify'} if (defined(&verify_dump));