From db5711a3d6e7621a502ab6d01b88969b25b7c9b2 Mon Sep 17 00:00:00 2001 From: SemvdH Date: Tue, 18 Nov 2025 00:12:55 +0100 Subject: [PATCH] restart server after changing cars --- ac-server-scripts-api.py | 41 +++++++++++++++++++++++++++------------- 1 file changed, 28 insertions(+), 13 deletions(-) diff --git a/ac-server-scripts-api.py b/ac-server-scripts-api.py index a379399..0eee436 100644 --- a/ac-server-scripts-api.py +++ b/ac-server-scripts-api.py @@ -130,17 +130,9 @@ class Handler(BaseHTTPRequestHandler): success, message = change_track(track, config) if success: - sysbus = dbus.SystemBus() - systemd1 = sysbus.get_object('org.freedesktop.systemd1', '/org/freedesktop/systemd1') - manager = dbus.Interface(systemd1, 'org.freedesktop.systemd1.Manager') - job = manager.RestartUnit('assetto-corsa-server.service', 'replace') - if job: - print("Successfully restarted assetto-corsa-server.service") - else: - print("Failed to restart assetto-corsa-server.service") - success = False - message = "Failed to restart assetto-corsa-server.service" - print(message) + success, message = restart_ac_server() + print(f"restart succeeded: {success}, {message}") + if success: self.send_response(200) self.send_header("Content-type", "application/json") @@ -168,6 +160,22 @@ class Handler(BaseHTTPRequestHandler): data = json.loads(body) print("Received cars:", data) success, message = update_cars(data.get("cars", [])) + if success: + success, message = restart_ac_server() + print(f"restart succeeded: {success}, {message}") + + if success: + self.send_response(200) + self.send_header("Content-type", "application/json") + self.end_headers() + response = {"status": "success", "message": message} + self.wfile.write(json.dumps(response).encode()) + else: + self.send_response(400) + self.send_header("Content-type", "application/json") + self.end_headers() + response = {"status": "error", "message": message} + self.wfile.write(json.dumps(response).encode()) return True except json.JSONDecodeError: self.send_response(400) @@ -195,8 +203,15 @@ class Handler(BaseHTTPRequestHandler): return track, config - - +def restart_ac_server() -> tuple[bool, str]: + sysbus = dbus.SystemBus() + systemd1 = sysbus.get_object('org.freedesktop.systemd1', '/org/freedesktop/systemd1') + manager = dbus.Interface(systemd1, 'org.freedesktop.systemd1.Manager') + job = manager.RestartUnit('assetto-corsa-server.service', 'replace') + if job: + return True, "Successfully restarted assetto-corsa-server.service" + else: + return False, "Failed to restart assetto-corsa-server.service" server = HTTPServer(("0.0.0.0", 10303), Handler) print("Server running on port 10303")