Compare commits
No commits in common. "f26bf6a30597a16aaf6d2d6c2a43b2a9d7910ecd" and "7636040c496c123f055592da96213f5e69b6588f" have entirely different histories.
f26bf6a305
...
7636040c49
2 changed files with 27 additions and 66 deletions
|
|
@ -14,11 +14,9 @@ services:
|
|||
ports:
|
||||
- "9025:9967"
|
||||
extra_hosts:
|
||||
# pasta publishes merchant on host :9010. Prefer fixed IPv4 — host-gateway
|
||||
# alone still loses to public AAAA and times out from the container.
|
||||
- "taler.hacktivism.ch:172.17.0.1"
|
||||
- "bank.hacktivism.ch:172.17.0.1"
|
||||
- "exchange.hacktivism.ch:172.17.0.1"
|
||||
- "taler.hacktivism.ch:host-gateway"
|
||||
- "bank.hacktivism.ch:host-gateway"
|
||||
- "exchange.hacktivism.ch:host-gateway"
|
||||
volumes:
|
||||
- ./conf/paivana.conf.template:/etc/paivana/paivana.conf.template:ro
|
||||
- ./entrypoint.sh:/usr/local/bin/paivana-entrypoint:ro
|
||||
|
|
|
|||
|
|
@ -24,8 +24,7 @@ check_url() {
|
|||
esac
|
||||
}
|
||||
|
||||
# Soft check: OK on expect, WARN on foreign stack if down, ERROR on local stack.
|
||||
# Always treats 301/302/303/307/308→200 (follow) as success when 200 is expected.
|
||||
# Soft check: OK on expect, WARN on foreign stack if down, ERROR on local stack
|
||||
check_url_soft() {
|
||||
local label="$1" expect="$2" url="$3"
|
||||
local code
|
||||
|
|
@ -33,15 +32,6 @@ check_url_soft() {
|
|||
case ",$expect," in
|
||||
*",$code,"*) ok "$label $url" ;;
|
||||
*)
|
||||
# Follow redirects (308 Permanent Redirect is common for trailing slash)
|
||||
case "$code" in
|
||||
301|302|303|307|308)
|
||||
code=$(curl -skS --max-redirs 5 -L -m "${TIMEOUT}" -o /dev/null -w '%{http_code}' "$url" 2>/dev/null || echo 000)
|
||||
case ",$expect," in
|
||||
*",$code,"*) ok "$label $url" "via redirect → HTTP $code"; return ;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
if [ "${LOCAL_STACK:-1}" = "0" ]; then
|
||||
warn "$label $url" "got $code (optional on remote domain)"
|
||||
else
|
||||
|
|
@ -845,12 +835,8 @@ if [ "${LOCAL_STACK:-1}" = "1" ] && [ "${E2E_PAIVANA:-1}" != "0" ]; then
|
|||
fi
|
||||
info "paivana Location" "${loc:0:140}"
|
||||
;;
|
||||
402)
|
||||
# Paywall may answer Payment Required with body (healthy, not 502)
|
||||
ok "paivana /" "HTTP 402 Payment Required (paywall up)"
|
||||
;;
|
||||
200)
|
||||
warn "paivana /" "HTTP 200 (expected paywall redirect/402 to template)"
|
||||
warn "paivana /" "HTTP 200 (expected paywall redirect to template)"
|
||||
;;
|
||||
*)
|
||||
warn "paivana /" "HTTP ${pcode:-000} — ${PAIVANA_PUBLIC}/ (e2e pay may still work via template)"
|
||||
|
|
@ -1028,30 +1014,30 @@ check_one_landing() {
|
|||
return
|
||||
fi
|
||||
|
||||
# Required static: qrcode.min.js. og-goa-shop.png only on GOA/local.
|
||||
# Required static: qrcode.min.js. GOA og image is soft off-GOA (stage has no og-goa-shop.png).
|
||||
if _landing_probe "${base}/intro/qrcode.min.js"; then
|
||||
a_ok=$((a_ok + 1))
|
||||
else
|
||||
a_fail=$((a_fail + 1))
|
||||
fail_sample="${fail_sample}${fail_sample:+; }HTTP ${_landing_code} ${base}/intro/qrcode.min.js"
|
||||
fi
|
||||
if [ "${EXPECT_CURRENCY:-}" = "GOA" ] || [ "${LOCAL_STACK:-0}" = "1" ]; then
|
||||
if _landing_probe "${base}/intro/og-goa-shop.png"; then
|
||||
a_ok=$((a_ok + 1))
|
||||
else
|
||||
a_fail=$((a_fail + 1))
|
||||
fail_sample="${fail_sample}${fail_sample:+; }HTTP ${_landing_code} ${base}/intro/og-goa-shop.png"
|
||||
fi
|
||||
fi
|
||||
# qr-logo: hard on GOA (wallet QR frame); soft elsewhere if missing
|
||||
if _landing_probe "${base}/intro/qr-logo.png"; then
|
||||
if _landing_probe "${base}/intro/og-goa-shop.png"; then
|
||||
a_ok=$((a_ok + 1))
|
||||
else
|
||||
if [ "${EXPECT_CURRENCY:-}" = "GOA" ] || [ "${LOCAL_STACK:-0}" = "1" ]; then
|
||||
a_fail=$((a_fail + 1))
|
||||
fail_sample="${fail_sample}${fail_sample:+; }HTTP ${_landing_code} ${base}/intro/og-goa-shop.png"
|
||||
else
|
||||
a_soft=$((a_soft + 1))
|
||||
soft_sample="${soft_sample}${soft_sample:+; }HTTP ${_landing_code} qr-logo.png"
|
||||
soft_sample="${soft_sample}${soft_sample:+; }HTTP ${_landing_code} og-goa-shop.png (GOA asset)"
|
||||
fi
|
||||
fi
|
||||
if _landing_probe "${base}/intro/qr-logo.png"; then
|
||||
a_ok=$((a_ok + 1))
|
||||
else
|
||||
a_soft=$((a_soft + 1))
|
||||
soft_sample="${soft_sample}${soft_sample:+; }HTTP ${_landing_code} qr-logo.png"
|
||||
fi
|
||||
|
||||
n=$(extract_landing_urls "$base" "$html" "$pref" 2>/dev/null || echo "own=0 ext=0")
|
||||
own_n=0
|
||||
|
|
@ -1080,14 +1066,11 @@ check_one_landing() {
|
|||
done < "${pref}.own"
|
||||
fi
|
||||
|
||||
# External: soft counts (stores can be slow — longer timeout + browser UA)
|
||||
# External: soft counts
|
||||
if [ -f "${pref}.ext" ]; then
|
||||
local _ext_to="${EXT_TIMEOUT:-25}"
|
||||
while IFS= read -r u; do
|
||||
[ -n "$u" ] || continue
|
||||
code=$(curl -skS --max-redirs 5 -L -m "${_ext_to}" \
|
||||
-A "Mozilla/5.0 (compatible; taler-monitoring/1.0)" \
|
||||
-o /dev/null -w '%{http_code}' "$u" 2>/dev/null || echo 000)
|
||||
code=$(curl -skS --max-redirs 5 -L -m "${TIMEOUT}" -o /dev/null -w '%{http_code}' "$u" 2>/dev/null || echo 000)
|
||||
case "$code" in
|
||||
200|204|301|302|303|307|308) ext_ok=$((ext_ok + 1)) ;;
|
||||
*)
|
||||
|
|
@ -1153,11 +1136,8 @@ if [ "${LOCAL_STACK:-1}" = "1" ] || [ -n "${BANK_PUBLIC:-}" ]; then
|
|||
_ba_ok=0
|
||||
_ba_soft=0
|
||||
_ba_msg=""
|
||||
# GOA landings ship shop-pay.*; stage TESTPAYSAN uses monnaies /assets/shop-ui.js
|
||||
if [ "${EXPECT_CURRENCY:-}" = "GOA" ] || [ "${LOCAL_STACK:-0}" = "1" ]; then
|
||||
if _landing_probe "$BANK_PUBLIC/intro/shop-pay.js"; then _ba_ok=$((_ba_ok + 1)); else _ba_soft=$((_ba_soft + 1)); _ba_msg="${_ba_msg}shop-pay.js; "; fi
|
||||
if _landing_probe "$BANK_PUBLIC/intro/shop-pay.css"; then _ba_ok=$((_ba_ok + 1)); else _ba_soft=$((_ba_soft + 1)); _ba_msg="${_ba_msg}shop-pay.css; "; fi
|
||||
fi
|
||||
if _landing_probe "$BANK_PUBLIC/intro/shop-pay.js"; then _ba_ok=$((_ba_ok + 1)); else _ba_soft=$((_ba_soft + 1)); _ba_msg="${_ba_msg}shop-pay.js; "; fi
|
||||
if _landing_probe "$BANK_PUBLIC/intro/shop-pay.css"; then _ba_ok=$((_ba_ok + 1)); else _ba_soft=$((_ba_soft + 1)); _ba_msg="${_ba_msg}shop-pay.css; "; fi
|
||||
dw_code=$(http_body "$BANK_PUBLIC/intro/demo-withdraw.json" "$tmp/dw.json")
|
||||
case "$dw_code" in
|
||||
200)
|
||||
|
|
@ -1203,31 +1183,14 @@ if [ "${LOCAL_STACK:-1}" = "1" ] || [ -n "${BANK_PUBLIC:-}" ]; then
|
|||
fi
|
||||
fi
|
||||
|
||||
# Merchant shop assets — GOA: shop-pay.*; stage TESTPAYSAN: /assets/shop-ui.js + shops.css
|
||||
# Merchant shop assets — one soft line
|
||||
_ma=0
|
||||
_ma_need=2
|
||||
_ma_label="shop-pay.js + .css"
|
||||
if [ "${EXPECT_CURRENCY:-}" = "GOA" ] || [ "${LOCAL_STACK:-0}" = "1" ]; then
|
||||
_landing_probe "$MERCHANT_PUBLIC/intro/shop-pay.js" && _ma=$((_ma + 1))
|
||||
_landing_probe "$MERCHANT_PUBLIC/intro/shop-pay.css" && _ma=$((_ma + 1))
|
||||
_landing_probe "$MERCHANT_PUBLIC/intro/shop-pay.js" && _ma=$((_ma + 1))
|
||||
_landing_probe "$MERCHANT_PUBLIC/intro/shop-pay.css" && _ma=$((_ma + 1))
|
||||
if [ "$_ma" -eq 2 ]; then
|
||||
ok "landing merchant shop assets" "shop-pay.js + .css"
|
||||
else
|
||||
_ma_label="shop-ui.js + shops.css"
|
||||
_landing_probe "$MERCHANT_PUBLIC/assets/shop-ui.js" && _ma=$((_ma + 1))
|
||||
_landing_probe "$MERCHANT_PUBLIC/assets/shops.css" && _ma=$((_ma + 1))
|
||||
fi
|
||||
if [ "$_ma" -eq "$_ma_need" ]; then
|
||||
ok "landing merchant shop assets" "${_ma_label}"
|
||||
else
|
||||
if [ "${EXPECT_CURRENCY:-}" = "GOA" ] || [ "${LOCAL_STACK:-0}" = "1" ]; then
|
||||
warn "landing merchant shop assets" "${_ma}/${_ma_need} present (soft) · want ${_ma_label}"
|
||||
else
|
||||
# stage: soft INFO if missing; WARN only if zero
|
||||
if [ "$_ma" -eq 0 ]; then
|
||||
warn "landing merchant shop assets" "0/${_ma_need} · want ${_ma_label}"
|
||||
else
|
||||
info "landing merchant shop assets" "${_ma}/${_ma_need} · ${_ma_label}"
|
||||
fi
|
||||
fi
|
||||
warn "landing merchant shop assets" "${_ma}/2 present (soft)"
|
||||
fi
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue