monitoring: resolve ladder explorer secret without laptop-hardcoded path
Ladder used /Users/newkamek/… for bank-explorer password and wallet-cli. Use SECRETS_ROOT/read_secret, EXP_PW/EXP_PW_FILE overrides, and find_wallet_cli. Document Android automation prereqs; stage shop assets also require qrcode.min.js.
This commit is contained in:
parent
08c55e71a7
commit
8c38fbaf59
7 changed files with 174 additions and 14 deletions
|
|
@ -21,13 +21,17 @@
|
|||
# LADDER_TIMEOUT_S default 3600
|
||||
# LADDER_LOAD=0 skip host load snapshots
|
||||
# LADDER_SETTLE_ROUNDS / LADDER_SETTLE_SLEEP — balance poll only (no shepherd)
|
||||
# EXP_PW_FILE, LADDER_REPORT_DIR, MERCHANT_INSTANCE, …
|
||||
# EXP_PW / EXP_PW_FILE / EXP_USER — explorer pool (default: secrets tree)
|
||||
# CLI_JS / WALLET_CLI — wallet-cli .mjs (default: find_wallet_cli)
|
||||
# LADDER_REPORT_DIR, MERCHANT_INSTANCE, …
|
||||
#
|
||||
# Phase: ./taler-monitoring.sh ladder
|
||||
set -euo pipefail
|
||||
ROOT=$(cd "$(dirname "$0")" && pwd)
|
||||
# shellcheck source=lib.sh
|
||||
source "$ROOT/lib.sh"
|
||||
# When invoked standalone (not via taler-monitoring.sh), still load secrets.env
|
||||
load_monitoring_secrets_env 2>/dev/null || true
|
||||
|
||||
# Area ladder.* — GOA withdraw/pay ladder
|
||||
# Groups: ladder.plan / ladder.load / ladder.withdraw / ladder.pay / ladder.report
|
||||
|
|
@ -44,8 +48,10 @@ elapsed_ms() {
|
|||
: "${LADDER_SETTLE_ROUNDS:=18}"
|
||||
: "${LADDER_SETTLE_SLEEP:=2}"
|
||||
: "${EXP_USER:=explorer}"
|
||||
: "${EXP_PW_FILE:=/Users/newkamek/src/koopa/koopa-admin-secrets/koopa/host-root/taler-bank/bank-explorer-password.txt}"
|
||||
: "${CLI_JS:=/Users/newkamek/src/taler-typescript-core/packages/taler-wallet-cli/bin/taler-wallet-cli.mjs}"
|
||||
# EXP_PW_FILE / EXP_PW optional overrides; otherwise read_secret + SECRETS_ROOT
|
||||
: "${EXP_PW_FILE:=}"
|
||||
: "${EXP_PW:=}"
|
||||
: "${CLI_JS:=}"
|
||||
: "${LADDER_MAX_AMOUNT:=4503599627370496}"
|
||||
: "${LADDER_STEPS:=23}"
|
||||
: "${LADDER_LOAD:=1}"
|
||||
|
|
@ -58,6 +64,15 @@ elapsed_ms() {
|
|||
: "${LADDER_PAY_SETTLE_ROUNDS:=6}"
|
||||
: "${MERCHANT_INSTANCE:=goa-demo-cp4zqk}"
|
||||
|
||||
# Resolve wallet-cli .mjs (no hardcoded laptop path)
|
||||
if [ -z "${CLI_JS}" ] || [ ! -f "${CLI_JS}" ]; then
|
||||
CLI_JS=$(find_wallet_cli 2>/dev/null || true)
|
||||
fi
|
||||
if [ -z "${CLI_JS}" ] || [ ! -f "${CLI_JS}" ]; then
|
||||
# allow PATH wrapper as last resort (wcli falls back to taler-wallet-cli)
|
||||
CLI_JS=""
|
||||
fi
|
||||
|
||||
CUR="${EXPECT_CURRENCY:-GOA}"
|
||||
BANK="${BANK_PUBLIC%/}"
|
||||
EX="${EXCHANGE_PUBLIC%/}/"
|
||||
|
|
@ -82,13 +97,42 @@ ladder_over() {
|
|||
}
|
||||
|
||||
wcli() {
|
||||
if [ -f "$CLI_JS" ]; then
|
||||
if [ -n "${CLI_JS:-}" ] && [ -f "$CLI_JS" ]; then
|
||||
node "$CLI_JS" --wallet-db="$WDB" --no-throttle "$@"
|
||||
else
|
||||
taler-wallet-cli --wallet-db="$WDB" --no-throttle "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
# Explorer pool password: env → file override → secrets tree → SSH koopa
|
||||
resolve_explorer_pw() {
|
||||
local pw="" f=""
|
||||
if [ -n "${EXP_PW:-}" ]; then
|
||||
printf '%s' "$EXP_PW"
|
||||
return 0
|
||||
fi
|
||||
if [ -n "${EXP_PW_FILE:-}" ] && [ -f "$EXP_PW_FILE" ]; then
|
||||
tr -d '\n\r' <"$EXP_PW_FILE"
|
||||
return 0
|
||||
fi
|
||||
# Prefer shared read_secret (SECRETS_ROOT / ~/.config / koopa SSH)
|
||||
if pw=$(read_secret "taler-bank/bank-explorer-password.txt" 2>/dev/null) && [ -n "$pw" ]; then
|
||||
printf '%s' "$pw"
|
||||
return 0
|
||||
fi
|
||||
# Extra local candidates (sibling of admin-log, taler-landing config)
|
||||
for f in \
|
||||
"${SECRETS_ROOT:+${SECRETS_ROOT}/taler-bank/bank-explorer-password.txt}" \
|
||||
"${HOME}/src/koopa/koopa-admin-secrets/koopa/host-root/taler-bank/bank-explorer-password.txt" \
|
||||
"${HOME}/.config/taler-landing/bank-explorer-password.txt"
|
||||
do
|
||||
[ -n "$f" ] && [ -f "$f" ] || continue
|
||||
tr -d '\n\r' <"$f"
|
||||
return 0
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
wallet_avail() {
|
||||
wcli balance 2>/dev/null | python3 -c '
|
||||
import json,sys
|
||||
|
|
@ -270,11 +314,18 @@ metrics_report_load "$LOAD_BEFORE" "ladder-start" || true
|
|||
# Fresh wallet per rung — baseline empty (or last-rung DB if re-used later)
|
||||
metrics_report_coins "ladder-start" || true
|
||||
|
||||
if [ ! -f "$EXP_PW_FILE" ]; then
|
||||
err bank "explorer password missing" "$EXP_PW_FILE"
|
||||
if ! EXP_PW=$(resolve_explorer_pw); then
|
||||
err bank "explorer password missing" \
|
||||
"set EXP_PW / EXP_PW_FILE or SECRETS_ROOT=…/koopa/host-root (taler-bank/bank-explorer-password.txt)${SECRETS_ROOT:+ · SECRETS_ROOT=${SECRETS_ROOT}}"
|
||||
secrets_hint 2>/dev/null || true
|
||||
exit 1
|
||||
fi
|
||||
EXP_PW=$(tr -d '\n' <"$EXP_PW_FILE")
|
||||
info "explorer secret" "${SECRETS_ROOT:+SECRETS_ROOT=${SECRETS_ROOT}}${SECRETS_ROOT:-via EXP_PW/EXP_PW_FILE/SSH}"
|
||||
if [ -n "${CLI_JS:-}" ] && [ -f "${CLI_JS}" ]; then
|
||||
info "wallet-cli" "$CLI_JS"
|
||||
else
|
||||
info "wallet-cli" "PATH taler-wallet-cli ($(command -v taler-wallet-cli 2>/dev/null || echo missing))"
|
||||
fi
|
||||
|
||||
# --- auto-account ---
|
||||
t0=$(now_ms)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue