test: add temporary semantic verifier

This commit is contained in:
sascha 2026-09-09 07:58:18 +02:00
parent ac308b45a8
commit 5de89f22d4

View file

@ -19,3 +19,34 @@ services:
timeout: 5s timeout: 5s
start_period: 15s start_period: 15s
retries: 3 retries: 3
beszel-verifier:
image: python:3.11-alpine
container_name: beszel-verifier
restart: "no"
depends_on:
beszel:
condition: service_healthy
environment:
BESZEL_EMAIL: ${BESZEL_ADMIN_EMAIL}
BESZEL_PASSWORD: ${BESZEL_ADMIN_PASSWORD}
command:
- python
- -c
- |
import json, os, time, urllib.request
base = "http://beszel:8090"
body = json.dumps({"identity": os.environ["BESZEL_EMAIL"], "password": os.environ["BESZEL_PASSWORD"]}).encode()
req = urllib.request.Request(base + "/api/collections/users/auth-with-password", data=body, headers={"Content-Type": "application/json"})
with urllib.request.urlopen(req, timeout=10) as response:
token = json.load(response)["token"]
result = []
for _ in range(12):
req = urllib.request.Request(base + "/api/collections/systems/records?perPage=50", headers={"Authorization": token})
with urllib.request.urlopen(req, timeout=10) as response:
items = json.load(response)["items"]
result = [{"name": item["name"], "status": item["status"]} for item in items]
if result and all(item["status"] == "up" for item in result):
break
time.sleep(5)
print(json.dumps({"verified_systems": result}, sort_keys=True), flush=True)