Add MQTT backup reporting and trigger listener
This commit is contained in:
1 parent
a1ce3b19bc
commit
d73e00db1c
9 files changed
+197
-1
No files matched your search
@@ -16,6 +16,32 @@ while [[ $# -gt 0 ]]; do
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
BACKUP_RUN_ID="$(run_id)"
|
||||
BACKUP_STARTED_EPOCH="$(date +%s)"
|
||||
BACKUP_RUN_LOG="$(mktemp "${TMPDIR:-/tmp}/zorruno-docker-backup.XXXXXX.log")"
|
||||
export BACKUP_RUN_ID BACKUP_STARTED_EPOCH BACKUP_RUN_LOG
|
||||
|
||||
finish_run() {
|
||||
local exit_code=$? finished status
|
||||
trap - EXIT
|
||||
set +e
|
||||
finished="$(date +%s)"
|
||||
if (( exit_code == 0 )); then
|
||||
if (( DRY_RUN )); then status="dry_run_success"; else status="success"; fi
|
||||
else
|
||||
if (( DRY_RUN )); then status="dry_run_failed"; else status="failed"; fi
|
||||
fi
|
||||
if is_true "$MQTT_REPORT_ENABLED"; then
|
||||
"$SCRIPT_DIR/stages/99-mqtt-report.sh" "$status" "$exit_code" \
|
||||
"$BACKUP_STARTED_EPOCH" "$finished" "$BACKUP_RUN_ID" "$BACKUP_RUN_LOG" \
|
||||
|| log ERROR "Unable to publish final MQTT result"
|
||||
fi
|
||||
rm -f -- "$BACKUP_RUN_LOG"
|
||||
exit "$exit_code"
|
||||
}
|
||||
trap finish_run EXIT
|
||||
|
||||
require_command flock
|
||||
mkdir -p "$(dirname "$LOCK_FILE")"
|
||||
exec 9>"$LOCK_FILE"
|
||||
@@ -24,6 +50,11 @@ stage_args=()
|
||||
(( DRY_RUN )) && stage_args+=(--dry-run)
|
||||
[[ -n "$CONTAINERS_OVERRIDE" ]] && stage_args+=(--containers "$CONTAINERS_OVERRIDE")
|
||||
log START "Backup pipeline for $BACKUP_HOSTNAME"
|
||||
if is_true "$MQTT_REPORT_ENABLED"; then
|
||||
"$SCRIPT_DIR/stages/99-mqtt-report.sh" running 0 "$BACKUP_STARTED_EPOCH" \
|
||||
"$BACKUP_STARTED_EPOCH" "$BACKUP_RUN_ID" "$BACKUP_RUN_LOG" \
|
||||
|| log WARN "Unable to publish MQTT running state; backup will continue"
|
||||
fi
|
||||
(( SKIP_CONTAINERS )) || "$SCRIPT_DIR/stages/10-containers.sh" "${stage_args[@]}"
|
||||
method_args=(); (( DRY_RUN )) && method_args+=(--dry-run)
|
||||
for method in $BACKUP_METHODS; do
|
||||
|
||||
Reference in new issue
Block a user