diff --git a/ops/restore-tests/nextcloud-restore-test.sh b/ops/restore-tests/nextcloud-restore-test.sh index f7b0913..ae12b18 100644 --- a/ops/restore-tests/nextcloud-restore-test.sh +++ b/ops/restore-tests/nextcloud-restore-test.sh @@ -50,9 +50,9 @@ Mode: WhatIf RestoreRoot: $RESTORE_ROOT ReportRoot: $REPORT_ROOT Expected Borg source paths: -- local/appdata/nextcloud/html -- local/documents/nextcloud-data (nur Strukturpruefung, nicht das volle Nutzdatenvolumen) -- local/borg-dumps/latest/nextcloud.dump +- local/appdata/nextcloud/html (aus Borg-Archiv) +Host source paths: +- /mnt/user/backups/borg/dumps/latest/nextcloud.dump (vom Host, taeglich frisch) Planned isolation: - Test-Postgres: postgres:18.4 mit Wegwerf-Credentials - Test-Redis: redis:8.8.0-alpine (rebuildbar, kein Restore) @@ -99,28 +99,29 @@ if [ -z "$archive" ] || [ -z "$repo" ]; then exit 1 fi -# Stufe 1: Nextcloud-App-Pfade und Dump aus Borg extrahieren. -# Wir extrahieren html (App-Code + config) und den Dump. -# Nutzdaten (local/documents/nextcloud-data) extrahieren wir NUR das -# Verzeichnis-Listing (--strip-components wuerde hier nicht helfen), -# um zu pruefen, dass der Pfad im Archiv existiert. Die vollen -# Nutzdaten sind zu gross fuer einen regelmaessigen Smoke. +# Stufe 1: Nextcloud-App-Pfade aus Borg, Dump vom Host. +# HTML (App-Code + config) kommt aus dem Borg-Archiv. +# Der Dump liegt frisch auf dem Host unter /mnt/user/backups/borg/dumps/latest/ +# (wird taeglich von pre-backup-dumps.sh erzeugt und dann in Borg gesichert). +# Der Borg-Extract des Dumps wuerde dieselbe Datei liefern, braucht aber eine +# eigene Remote-Roundtrip-Zeit; wir nutzen die Host-Kopie direkt. +DUMP_HOST_PATH="/mnt/user/backups/borg/dumps/latest/nextcloud.dump" + borg_extract "/restore/nextcloud-extract" \ - "local/appdata/nextcloud/html" \ - "local/borg-dumps/latest/nextcloud.dump" + "local/appdata/nextcloud/html" if [ ! -d "$EXTRACT_DIR/local/appdata/nextcloud/html" ]; then echo "Nextcloud html path missing in Borg archive" >&2 exit 1 fi -if [ ! -f "$EXTRACT_DIR/local/borg-dumps/latest/nextcloud.dump" ]; then - echo "nextcloud.dump missing in Borg archive" >&2 +if [ ! -f "$DUMP_HOST_PATH" ]; then + echo "nextcloud.dump missing on host at $DUMP_HOST_PATH" >&2 exit 1 fi # App-Code + Config ins Restore-Lab verschieben cp -a "$EXTRACT_DIR/local/appdata/nextcloud/html/." "$RESTORE_ROOT/html/" -mv "$EXTRACT_DIR/local/borg-dumps/latest/nextcloud.dump" "$RESTORE_ROOT/dumps/latest/nextcloud.dump" +cp "$DUMP_HOST_PATH" "$RESTORE_ROOT/dumps/latest/nextcloud.dump" # Nextcloud braucht einen beschreibbaren data-Pfad, auch wenn er leer ist. # Im Restore-Lab ist das /mnt/user/backups/restore-lab/nextcloud/data. @@ -265,7 +266,7 @@ write_report "$REPORT_FILE" <