aboutsummaryrefslogtreecommitdiff
path: root/service.py
diff options
context:
space:
mode:
Diffstat (limited to 'service.py')
-rwxr-xr-xservice.py31
1 files changed, 20 insertions, 11 deletions
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": "<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: