fix(regression): bad-restore uses custom-html-bkp-bad + ops.py+test_restore.py
continuous-integration/drone/push Build is failing
continuous-integration/drone/push Build is failing
backup-bot-two ignores backupbot.backup.path labels and always backs up the full volume, making path-based restore-RED infeasible. New approach: custom-html-bkp-bad has no pre_backup → marker never seeded → backup snapshot has no ci-marker.txt. pre_restore writes 'mutated'. After restore: marker is MISSING or 'mutated' → test_restore_returns_state FAILS. upgrade=skip (no version tags) is acceptable since passing_tiers_before=[install,backup]. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
c7ede9cfbb
commit
74364d0a46
@@ -0,0 +1,25 @@
|
||||
"""custom-html-bkp-bad — RESTORE assertion (bad-restore RED canary).
|
||||
|
||||
pre_restore seeds 'mutated' to ci-marker.txt. The backup snapshot has no ci-marker.txt
|
||||
(never seeded by pre_backup). After restore, the marker is either MISSING or 'mutated' —
|
||||
never 'original' — so this assertion FAILS → restore tier RED.
|
||||
"""
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "..", "runner"))
|
||||
from harness import lifecycle # noqa: E402
|
||||
|
||||
MARKER_PATH = "/usr/share/nginx/html/ci-marker.txt"
|
||||
|
||||
|
||||
def test_restore_returns_state(live_app):
|
||||
result = lifecycle.exec_in_app(
|
||||
live_app, ["sh", "-c", f"cat {MARKER_PATH} 2>/dev/null || echo MISSING"]
|
||||
).strip()
|
||||
assert result == "original", (
|
||||
f"restore did not return the pre-mutation (backed-up) state: got {result!r}. "
|
||||
"Expected 'original'. The backup had no marker (not seeded by pre_backup), so "
|
||||
"restore cannot recover it — this is the intended failure for the bad-restore RED canary."
|
||||
)
|
||||
Reference in New Issue
Block a user