mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-08 11:46:35 +00:00
The payload check accepted a files/ tree OR an sql dump, so a database whose dump never happened and which was copied as raw engine files passed it. That is exactly what occurred: Discourse's postgres landed as PG_VERSION/base/pg_wal and the drill reported green, while restoring that replays a torn cluster rather than a dump. The generation's manifest is now the authority on which volumes held a database and which of those carry a dump; generations written before baudolo recorded that are judged by the engine's on-disk footprint instead. Demonstrated against both: the manifest branch catches a volume the footprint heuristic cannot see, and leaves a non-database volume alone. seed/marker.py reads dumps and therefore needs baudolo, but ran under a bare python3, which Ansible's PATH resolves to the sealed project venv while sys-pip-install installs into the system interpreter - so it died at import and the entire restore half of the drill never ran. It now uses BKP_TEST_PYTHON, the interpreter the role installed into. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
10 lines
605 B
Bash
10 lines
605 B
Bash
ASYNC_ENABLED={{ ASYNC_ENABLED | bool | lower }}
|
|
BKP_TEST_BACKUPS_DIR={{ DIR_BACKUPS }}
|
|
BKP_TEST_HEALTH_SCRIPT={{ [ DIR_SCRIPTS_SYSTEMCTL, 'sys-ctl-hlth-container', 'script.sh' ] | path_join }}
|
|
BKP_TEST_HEALTH_TIMEOUT={{ lookup('timeout', 1200) | int }}
|
|
BKP_TEST_IS_STACK_HOST={{ IS_STACK_HOST | bool | lower }}
|
|
BKP_TEST_PYTHON={{ ansible_python_interpreter }}
|
|
BKP_TEST_REPO_ROOT={{ playbook_dir }}
|
|
BKP_TEST_SCRATCH_IMAGE={{ lookup('config', application_id, 'services.test.image') }}:{{ lookup('config', application_id, 'services.test.version') }}
|
|
BKP_TEST_SERVICE={{ SYS_SERVICE_BACKUP_VOLUME_2_LOCAL }}
|