scripts: sanity/dns/wallet-cli helpers; ops cleanup
This commit is contained in:
parent
1181680a4b
commit
be05666737
18 changed files with 1440 additions and 0 deletions
73
scripts/taler-sanity/check_stack-health.sh
Normal file
73
scripts/taler-sanity/check_stack-health.sh
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
#!/bin/bash
|
||||
# Sanity: public + local Taler endpoints respond (GOA stack).
|
||||
# Run on koopa as root (or any user with network to services).
|
||||
set -euo pipefail
|
||||
ROOT=$(cd "$(dirname "$0")" && pwd)
|
||||
# shellcheck source=lib.sh
|
||||
source "$ROOT/lib.sh"
|
||||
|
||||
echo "=== Taler stack health ==="
|
||||
|
||||
# Public HTTPS (via Caddy / VeciGate)
|
||||
for url in \
|
||||
"${EXCHANGE_PUBLIC}/config" \
|
||||
"${EXCHANGE_PUBLIC}/keys" \
|
||||
"${BANK_PUBLIC}/config" \
|
||||
"${MERCHANT_PUBLIC}/config"
|
||||
do
|
||||
code=$(http_code "$url")
|
||||
if [ "$code" = "200" ]; then pass "$url -> $code"
|
||||
else fail "$url -> $code"
|
||||
fi
|
||||
done
|
||||
|
||||
# Local loopback ports (containers via pasta)
|
||||
for spec in \
|
||||
"bank ${BANK_URL}/config" \
|
||||
"merchant ${MERCHANT_URL}/config" \
|
||||
"exchange-via-public ${EXCHANGE_PUBLIC}/config"
|
||||
do
|
||||
name=${spec%% *}
|
||||
url=${spec#* }
|
||||
code=$(http_code "$url")
|
||||
if [ "$code" = "200" ]; then pass "local $name -> $code"
|
||||
else fail "local $name -> $code"
|
||||
fi
|
||||
done
|
||||
|
||||
# Merchant multi-currency
|
||||
tmp=$(mktemp)
|
||||
curl -sk -m 12 -o "$tmp" "${MERCHANT_PUBLIC}/config" || true
|
||||
if python3 - "$tmp" <<'PY'
|
||||
import json,sys
|
||||
d=json.load(open(sys.argv[1]))
|
||||
ex=[e.get("currency") for e in d.get("exchanges") or []]
|
||||
cur=list((d.get("currencies") or {}).keys())
|
||||
ok = "GOA" in ex and "CHF" in ex and "GOA" in cur
|
||||
print("currency_default", d.get("currency"))
|
||||
print("exchanges", ex)
|
||||
print("currencies", cur)
|
||||
sys.exit(0 if ok else 1)
|
||||
PY
|
||||
then pass "merchant has CHF + GOA exchanges"
|
||||
else fail "merchant missing CHF/GOA in /config"
|
||||
fi
|
||||
rm -f "$tmp"
|
||||
|
||||
# Exchange currency GOA
|
||||
tmp=$(mktemp)
|
||||
curl -sk -m 12 -o "$tmp" "${EXCHANGE_PUBLIC}/config" || true
|
||||
if python3 - "$tmp" <<'PY'
|
||||
import json,sys
|
||||
d=json.load(open(sys.argv[1]))
|
||||
c=(d.get("currency") or d.get("currency_specification",{}).get("currency"))
|
||||
print("exchange_currency", c)
|
||||
sys.exit(0 if c=="GOA" else 1)
|
||||
PY
|
||||
then pass "exchange currency GOA"
|
||||
else fail "exchange currency not GOA"
|
||||
fi
|
||||
rm -f "$tmp"
|
||||
|
||||
echo "=== summary fails=$FAILS ==="
|
||||
exit "$FAILS"
|
||||
Loading…
Add table
Add a link
Reference in a new issue