@@ -31,6 +31,47 @@ REGISTRY_URL="http://${REGISTRY_IP}:${REGISTRY_PORT}"
3131ROUTER_URL=" http://${REGISTRY_IP} :${ROUTER_PORT} "
3232BABYSITTER_URL=" http://${REGISTRY_IP} :${BABYSITTER_HEALTH_PORT} "
3333
34+ # Wait for server to be ready: (1) registry, then (2) model loaded (/models has 9g_8b_thinking)
35+ VALIDATE_WAIT_TIMEOUT_SEC=" ${VALIDATE_WAIT_TIMEOUT_SEC:- 300} "
36+ VALIDATE_WAIT_INTERVAL_SEC=" ${VALIDATE_WAIT_INTERVAL_SEC:- 5} "
37+ WAIT_START=$( date +%s)
38+ echo " Waiting for server to be ready (timeout: ${VALIDATE_WAIT_TIMEOUT_SEC} s, interval: ${VALIDATE_WAIT_INTERVAL_SEC} s)..."
39+
40+ # Phase 1: wait for registry
41+ while true ; do
42+ if curl -s --connect-timeout 3 " ${REGISTRY_URL} /health" > /dev/null 2>&1 ; then
43+ ELAPSED=$(( $(date +% s) - WAIT_START))
44+ echo " -> Registry ready after ${ELAPSED} s"
45+ break
46+ fi
47+ ELAPSED=$(( $(date +% s) - WAIT_START))
48+ if [ " ${ELAPSED} " -ge " ${VALIDATE_WAIT_TIMEOUT_SEC} " ]; then
49+ echo " -> Timeout after ${ELAPSED} s (registry not responding)"
50+ break
51+ fi
52+ echo " -> Waiting for registry... (${ELAPSED} s elapsed)"
53+ sleep " ${VALIDATE_WAIT_INTERVAL_SEC} "
54+ done
55+
56+ # Phase 2: wait for model loaded (router /models returns 9g_8b_thinking)
57+ echo " -> Waiting for model (9g_8b_thinking) to load..."
58+ while true ; do
59+ MODELS=$( curl -s --connect-timeout 5 " ${ROUTER_URL} /models" 2> /dev/null || echo " {}" )
60+ if echo " ${MODELS} " | grep -q " 9g_8b_thinking" ; then
61+ ELAPSED=$(( $(date +% s) - WAIT_START))
62+ echo " -> Model ready after ${ELAPSED} s"
63+ break
64+ fi
65+ ELAPSED=$(( $(date +% s) - WAIT_START))
66+ if [ " ${ELAPSED} " -ge " ${VALIDATE_WAIT_TIMEOUT_SEC} " ]; then
67+ echo " -> Timeout after ${ELAPSED} s (model not loaded)"
68+ break
69+ fi
70+ echo " -> Waiting for model... (${ELAPSED} s elapsed)"
71+ sleep " ${VALIDATE_WAIT_INTERVAL_SEC} "
72+ done
73+ echo " "
74+
3475FAILED=0
3576
3677echo " =========================================="
0 commit comments