25 lines
762 B
Python
25 lines
762 B
Python
import os
|
|
import time
|
|
import urllib.request
|
|
|
|
|
|
base_url = os.getenv("E2E_BASE_URL", "http://web").rstrip("/")
|
|
health_url = os.getenv("E2E_HEALTH_URL", f"{base_url}/")
|
|
deadline = time.time() + int(os.getenv("E2E_WEB_TIMEOUT_SECONDS", "120"))
|
|
last_error = None
|
|
|
|
while time.time() < deadline:
|
|
try:
|
|
with urllib.request.urlopen(health_url, timeout=5) as response:
|
|
if response.status < 500:
|
|
break
|
|
except Exception as exc:
|
|
last_error = exc
|
|
time.sleep(2)
|
|
else:
|
|
raise SystemExit(f"Timed out waiting for {health_url}: {last_error}")
|
|
|
|
with urllib.request.urlopen(f"{base_url}/", timeout=5) as response:
|
|
if response.status >= 500:
|
|
raise SystemExit(f"Web returned HTTP {response.status} at {base_url}/")
|