diff --git a/CHANGELOG.md b/CHANGELOG.md index e94787cb36b660e470504de91c62e86e94ac4060..c11a9831625b39a3317d941e2741f6eed3dce243 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - [build] make build reproducible regardless of usrmerge (DEBBUG-915222) - [core] silence exit code message unless --debug is used +- [core] backup halt should trigger email report if enabled ## [1.2.0] - 2021-01-21 diff --git a/src/backupninja.in b/src/backupninja.in index 985241b8bb3bea0a4eff7bffc5626e10967720a7..5d482f987440acd55c22ebca7268ad7cc58c2109 100755 --- a/src/backupninja.in +++ b/src/backupninja.in @@ -606,6 +606,7 @@ if [ $actions_run == 0 ]; then doit=0 elif [ "$reportemail" == "" ]; then doit=0 elif [ $fatals != 0 ]; then doit=1 elif [ $errors != 0 ]; then doit=1 +elif [ $halts != 0 ]; then doit=1 elif [ "$reportsuccess" == "yes" ]; then doit=1 elif [ "$reportwarning" == "yes" -a $warnings != 0 ]; then doit=1 else doit=0 @@ -617,6 +618,7 @@ if [ $doit == 1 ]; then [ $warnings == 0 ] || subject="WARNING" [ $errors == 0 ] || subject="ERROR" [ $fatals == 0 ] || subject="FAILED" + [ $halts == 0 ] || subject="HALTED" { for ((i=0; i < ${#messages[@]} ; i++)); do diff --git a/test/backupninja.bats b/test/backupninja.bats index 90152de078e056679c25e7c405ef5f12beafc923..96eecb6af500e83bb0a0b68f7d40b3f3b9abc320 100644 --- a/test/backupninja.bats +++ b/test/backupninja.bats @@ -68,14 +68,21 @@ create_test_action() { echo "${lines[0]}" | grep -qe '^Configuration files must not be writable/readable by group staff!' } -@test "reports: error report is mailed" { +@test "reports: report is mailed when halts > 0" { + create_test_action halt test_halt + run backupninja --now -f "${BATS_TMPDIR}/backupninja.conf" --run "${BATS_TMPDIR}/backup.d/test.sh" + sleep 0.1 + grep -q "\*halt\* -- ${BATS_TMPDIR}/backup.d/test.sh" /var/mail/vagrant +} + +@test "reports: report is mailed when fatals > 0" { create_test_action fatal test_error run backupninja --now -f "${BATS_TMPDIR}/backupninja.conf" --run "${BATS_TMPDIR}/backup.d/test.sh" sleep 0.1 grep -q "\*failed\* -- ${BATS_TMPDIR}/backup.d/test.sh" /var/mail/vagrant } -@test "reports: warning report is mailed" { +@test "reports: report is mailed when reportwarning = yes and warnings > 0" { create_test_action warning test_warning setconfig backupninja.conf reportsuccess no setconfig backupninja.conf reportwarning yes @@ -84,7 +91,7 @@ create_test_action() { grep -q "Warning: test_warning" /var/mail/vagrant } -@test "reports: success report is mailed" { +@test "reports: report is mailed when reportsuccess = yes" { create_test_action setconfig backupninja.conf reportsuccess yes run backupninja --now -f "${BATS_TMPDIR}/backupninja.conf" --run "${BATS_TMPDIR}/backup.d/test.sh"