#!/bin/bash
# Show status of the E2E test network.

PROJECT_NAME="${CELILO_E2E_PROJECT:-celilo-e2e-interactive}"

echo "=== Containers ==="
if ! docker compose -p "$PROJECT_NAME" ps 2>/dev/null | grep -q .; then
  echo "No E2E network running (project: $PROJECT_NAME)."
  echo ""
  echo "Start one with: cele2e up  or  cele2e run --keep"
  exit 0
fi
docker compose -p "$PROJECT_NAME" ps

echo ""
echo "=== DNS Check ==="
echo -n "  iamtheinternet.org NS: "
docker compose -p "$PROJECT_NAME" exec -T comcast-resolver dig @127.0.0.1 iamtheinternet.org NS +short +timeout=2 2>/dev/null || echo "(failed)"

echo -n "  www.iamtheinternet.org A: "
docker compose -p "$PROJECT_NAME" exec -T comcast-resolver dig @127.0.0.1 www.iamtheinternet.org A +short +timeout=2 2>/dev/null || echo "(not set)"

echo ""
echo "=== Connectivity (from management) ==="
for target in "fw-main:10.226.1.254" "fw-isp:10.226.1.1" "comcast-resolver:203.0.113.1" "root-dns:100.64.0.53" "namecheap-dns:100.64.0.55"; do
  name="${target%%:*}"
  ip="${target##*:}"
  echo -n "  $name ($ip): "
  docker compose -p "$PROJECT_NAME" exec -T management ping -c1 -W2 "$ip" >/dev/null 2>&1 && echo "OK" || echo "FAIL"
done

echo ""
echo "=== DDNS Simulator ==="
echo -n "  Status: "
docker compose -p "$PROJECT_NAME" exec -T namecheap-dns curl -s --cacert /etc/ssl/namecheap-sim/namecheap-ca.crt https://dynamicdns.park-your-domain.com/status --resolve dynamicdns.park-your-domain.com:443:127.0.0.1 2>/dev/null || echo "(not running)"
