import http.server import json import os import threading class Handler(http.server.BaseHTTPRequestHandler): def do_GET(self) -> None: if self.path == "/health": self.send_response(200) self.end_headers() return self.send_response(404) self.end_headers() def do_POST(self) -> None: self.send_response(500) self.send_header("Content-Type", "application/json") if os.environ.get("WOV_FAIL_INVALID_JSON") == "1": body = b"not-json" else: body = json.dumps({"status": "failed", "error": "boom"}).encode("utf-8") self.send_header("Content-Length", str(len(body))) self.end_headers() self.wfile.write(body) def log_message(self, format, *args) -> None: return server = http.server.ThreadingHTTPServer(("127.0.0.1", 0), Handler) print(f"WOV_NODE_READY port={server.server_address[1]}", flush=True) threading.Thread(target=server.serve_forever, daemon=True).start() threading.Event().wait()