#!/usr/bin/env python3
from http.server import HTTPServer, BaseHTTPRequestHandler
import subprocess, logging
logging.basicConfig(level=logging.INFO)
class Handler(BaseHTTPRequestHandler):
def log_message(self, format, *args):
logging.info(format % args)
def do_POST(self):
if self.path == "/reset":
try:
result = subprocess.run(
["/bin/bash", "/opt/struktur/admin/reset-hermes-jobs.sh"],
capture_output=True, text=True, timeout=60
)
logging.info("Reset ausgefuehrt: %s", result.stdout.strip())
self.send_response(200)
self.send_header("Content-Type", "application/json")
self.send_header("Access-Control-Allow-Origin", "*")
self.end_headers()
self.wfile.write(b'{\status\:\ok\}')
except Exception as e:
logging.error("Reset Fehler: %s", e)
self.send_response(500)
self.end_headers()
self.wfile.write(str(e).encode())
else:
self.send_response(404)
self.end_headers()
def do_OPTIONS(self):
self.send_response(200)
self.send_header("Access-Control-Allow-Origin", "*")
self.send_header("Access-Control-Allow-Methods", "POST")
self.end_headers()
if __name__ == "__main__":
server = HTTPServer(("127.0.0.1", 9099), Handler)
logging.info("Hermes Admin Server laeuft auf Port 9099")
server.serve_forever()