railiance-platform/scripts/survey-backup-pair-metadata.sh

37 lines
1.2 KiB
Bash
Raw Normal View History

#!/bin/sh
# Record KV metadata versions only. Silent for warden access.
set -eu
receipt_dir=/home/worsch/.local/state/railiance/receipts
umask 077
mkdir -p "$receipt_dir"
tmp=$(mktemp -d)
trap 'rm -rf "$tmp"' EXIT
python3 - "$tmp" "$receipt_dir/backup-pair-metadata.json" << 'PY'
import json, subprocess, sys
tmp, dest = sys.argv[1:]
paths = [
"platform/workloads/coulomb-social/backup-primary",
"platform/workloads/email-connect/backup-primary",
"platform/workloads/railiance/scaleway/bootstrap",
"platform/workloads/railiance/backup/object-storage",
]
rows = []
for path in paths:
out = subprocess.run(
["bao", "kv", "metadata", "get", "-format=json", path],
capture_output=True,
)
row = {"path": path, "returncode": out.returncode}
if out.returncode == 0:
data = json.loads(out.stdout)["data"]
row["current_version"] = data.get("current_version")
versions = data.get("versions") or {}
row["version_count"] = len(versions)
else:
err = (out.stderr + out.stdout).decode("utf-8", "replace")
row["absent"] = "No value found" in err
rows.append(row)
open(dest, "w").write(json.dumps({"paths": rows}, indent=2) + "\n")
PY
exit 0