30 lines
1.0 KiB
Bash
Executable File
30 lines
1.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
source "$(dirname "$0")/lib.sh"
|
|
timeout_seconds=${E2E_WAIT_SECONDS:-360}
|
|
deadline=$((SECONDS + timeout_seconds))
|
|
|
|
while (( SECONDS < deadline )); do
|
|
payload=$(compose_control run --rm --no-deps \
|
|
--entrypoint /bin/sh curl -c \
|
|
'curl --max-time 5 -fsS http://127.0.0.1:18081/test/v1/clients; printf "\n"; curl --max-time 5 -fsS http://127.0.0.1:18081/test/v1/routes' \
|
|
2>/dev/null || true)
|
|
clients=${payload%%$'\n'*}
|
|
routes=${payload#*$'\n'}
|
|
client_count=$(grep -o '"client_id"' <<<"$clients" | wc -l || true)
|
|
ready_count=$(grep -o '"state":"ready"' <<<"$routes" | wc -l || true)
|
|
if [[ "$client_count" -eq 4 && "$ready_count" -eq 4 ]]; then
|
|
printf '2x2 route mesh ready: clients=%s ready_routes=%s\n' \
|
|
"$client_count" "$ready_count"
|
|
printf '%s\n' "$routes"
|
|
exit 0
|
|
fi
|
|
sleep 2
|
|
done
|
|
|
|
printf 'timed out waiting for 2x2 route mesh after %ss\n' \
|
|
"$timeout_seconds" >&2
|
|
"$E2E_ROOT/scripts/logs.sh" >&2
|
|
exit 1
|