Explorer
/opt/struktur/admin/reset-server.py
← Zurück ↓ Download
#!/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()