From bb5a7fcf30e11c7b955f46572de1ef4a3b773c97 Mon Sep 17 00:00:00 2001 From: Jonathan Weth Date: Fri, 31 Jul 2020 16:07:38 +0200 Subject: Return error status if connection to RWA wasn't successful Close #10 --- service.py | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) (limited to 'service.py') diff --git a/service.py b/service.py index f1d1f4f..a8e999f 100755 --- a/service.py +++ b/service.py @@ -70,30 +70,39 @@ class RWAService(dbus.service.Object): :: - {"status": "error"} + {"status": "error", "type": ""} + + **Possible choices for error types:** ``multiple``, ``connection`` """ if ALLOW_ONLY_ONE_SESSION and len(self.sessions.values()) > 0: logging.warning( "There is already one session running and the service is configured to allow only one " "session, so this session won't be started." ) - return json.dumps({"status": "error"}) + return json.dumps({"status": "error", "type": "multiple"}) # Start session - session = Session(self.trigger_service.port, mockup_mode) + try: + session = Session(self.trigger_service.port, mockup_mode) - # Add session to sessions list - self.sessions[session.pid] = session + # Add session to sessions list + self.sessions[session.pid] = session - # Start session update service - self._ensure_update_service() + # Start session update service + self._ensure_update_service() - return_json = session.client_meta - return_json["status"] = "success" + return_json = session.client_meta + return_json["status"] = "success" - logging.info(f"New session #{session.pid} was started with meta {return_json}.") + logging.info( + f"New session #{session.pid} was started with meta {return_json}." + ) + + return json.dumps(return_json) + except ConnectionError: + pass - return json.dumps(return_json) + return json.dumps({"status": "error", "type": "connection"}) @dbus.service.method("org.ArcticaProject.RWA", in_signature="i", out_signature="s") def status(self, pid: int) -> str: -- cgit v1.2.3