Initial import with GitLab CI/CD and registry deploy flow
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import asyncio
|
||||
import sys
|
||||
|
||||
import httpx
|
||||
|
||||
|
||||
REQUIRED_SERVICES = [
|
||||
"auth",
|
||||
"audit",
|
||||
"customer",
|
||||
"interaction",
|
||||
"routing",
|
||||
"voice",
|
||||
"telegram",
|
||||
"kb",
|
||||
"reporting",
|
||||
"supervisor",
|
||||
]
|
||||
|
||||
|
||||
async def check_gateway(base_url: str) -> bool:
|
||||
async with httpx.AsyncClient(base_url=base_url, timeout=5) as client:
|
||||
try:
|
||||
health = await client.get("/health")
|
||||
if health.status_code != 200:
|
||||
print(f"[FAIL] gateway /health status={health.status_code}")
|
||||
return False
|
||||
|
||||
registry = await client.get("/registry")
|
||||
if registry.status_code != 200:
|
||||
print(f"[FAIL] gateway /registry status={registry.status_code}")
|
||||
return False
|
||||
data = registry.json()
|
||||
services = data.get("services", {})
|
||||
missing = [s for s in REQUIRED_SERVICES if s not in services]
|
||||
if missing:
|
||||
print(f"[FAIL] registry missing services: {missing}")
|
||||
return False
|
||||
|
||||
login = await client.post(
|
||||
"/proxy/auth/auth/login",
|
||||
json={"username": "admin", "password": "admin123"},
|
||||
)
|
||||
if login.status_code != 200:
|
||||
print(f"[FAIL] auth login status={login.status_code}")
|
||||
return False
|
||||
|
||||
print("[PASS] Stage 1 gateway/auth health checks passed")
|
||||
return True
|
||||
except Exception as exc:
|
||||
print(f"[FAIL] exception: {exc}")
|
||||
return False
|
||||
|
||||
|
||||
async def main() -> None:
|
||||
base_url = "http://localhost:8080"
|
||||
ok = await check_gateway(base_url)
|
||||
sys.exit(0 if ok else 1)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
asyncio.run(main())
|
||||
Reference in New Issue
Block a user