Add /admin/run-ingest endpoint for fallout retry

This commit is contained in:
Corback
2026-06-15 16:07:41 +00:00
parent d9bf4b7d28
commit 25b46ff146
+21
View File
@@ -108,6 +108,17 @@ def docker_reboot_host():
docker_call("POST", "/containers/host-reboot/start", {}) docker_call("POST", "/containers/host-reboot/start", {})
return status in (201, 409) return status in (201, 409)
def docker_run_host_cmd(name, cmd_list):
"""Run a command on the Ampère host via privileged nsenter container."""
docker_call("DELETE", f"/containers/{name}?force=1")
full_cmd = ["nsenter","-t","1","-m","-u","-i","-n","-p","--"] + cmd_list
config = {"Image": "alpine", "Cmd": full_cmd,
"HostConfig": {"Privileged": True, "PidMode": "host", "AutoRemove": True}}
status, body = docker_call("POST", f"/containers/create?name={name}", config)
if status in (201, 409):
docker_call("POST", f"/containers/{name}/start", {})
return status in (201, 409)
# ── SSH helpers (Guardian / Vigile) ─────────────────────────────────────── # ── SSH helpers (Guardian / Vigile) ───────────────────────────────────────
SSH_KEYS = { SSH_KEYS = {
"guardian": {"key": "/ssh/guardian.key", "host": "82.70.226.48"}, "guardian": {"key": "/ssh/guardian.key", "host": "82.70.226.48"},
@@ -358,6 +369,16 @@ class Handler(BaseHTTPRequestHandler):
ok = ssh_reboot(vm) ok = ssh_reboot(vm)
self.send_json({"ok":ok,"vm":vm}) self.send_json({"ok":ok,"vm":vm})
elif p == "/admin/run-ingest":
body = self.read_body()
script = body.get("script","fallout")
if script == "fallout":
cmd = ["sh","-c","PYTHONUNBUFFERED=1 python3 -u /home/ubuntu/fallout/ingest.py >> /home/ubuntu/fallout/ingest.log 2>&1 &"]
else:
self.send_json({"ok":False,"error":"unknown script"}); return
ok = docker_run_host_cmd("host-ingest", cmd)
self.send_json({"ok":ok,"script":script})
else: else:
self.send_response(404); self.end_headers() self.send_response(404); self.end_headers()