#!/usr/bin/env bash # Run RPC node health suite on all Proxmox hosts (storage + heap + remediation per host, then full RPC test). # Usage: ./scripts/run-rpc-node-suite-all-hosts.sh [--apply] [--restart-besu] set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" source "${PROJECT_ROOT}/config/ip-addresses.conf" 2>/dev/null || true PROXMOX_SSH_USER="${PROXMOX_SSH_USER:-${PROXMOX_USER:-root}}" [[ "$PROXMOX_SSH_USER" == *"@"* ]] && PROXMOX_SSH_USER="root" ML110="${PROXMOX_HOST_ML110:-192.168.11.10}" R630_01="${PROXMOX_HOST_R630_01:-192.168.11.11}" R630_02="${PROXMOX_HOST_R630_02:-192.168.11.12}" HOSTS=("$ML110" "$R630_01" "$R630_02") APPLY_ARGS=() while [[ $# -gt 0 ]]; do case "$1" in --apply) APPLY_ARGS+=("--apply"); shift ;; --restart-besu) APPLY_ARGS+=("--restart-besu"); shift ;; *) shift ;; esac done echo "=== RPC Node Health Suite (all hosts) ===" echo "Remediation: ${APPLY_ARGS[*]:-(dry-run)}" echo "" echo "== 1) Storage audit (all hosts) ===" ./scripts/audit-proxmox-rpc-storage.sh echo "" echo "== 2) Besu heap audit (per host) ===" for h in "${HOSTS[@]}"; do echo "--- Host $h ---" PROXMOX_HOST="$h" ./scripts/audit-proxmox-rpc-besu-heap.sh 2>/dev/null || true echo "" done echo "== 3) Remediation (per host) ===" for h in "${HOSTS[@]}"; do echo "--- Host $h ---" PROXMOX_HOST="$h" ./scripts/remediate-proxmox-rpc-stability.sh "${APPLY_ARGS[@]}" 2>/dev/null || true echo "" done echo "== 4) Full RPC matrix test (writes reports/*) ===" python3 ./scripts/test-all-rpc-nodes.py --timeout 4 --threads 12 echo "" echo "Done."