aboutsummaryrefslogtreecommitdiff
path: root/service.py
diff options
context:
space:
mode:
authorJonathan Weth <git@jonathanweth.de>2020-07-31 16:07:38 +0200
committerJonathan Weth <git@jonathanweth.de>2020-07-31 16:07:38 +0200
commitbb5a7fcf30e11c7b955f46572de1ef4a3b773c97 (patch)
treea78f6971f5a01bf5e58676091abbe25234343b43 /service.py
parent8bdd82f633e2904959327cb90c39901e9499bfa9 (diff)
downloadRWA.Support.SessionService-bb5a7fcf30e11c7b955f46572de1ef4a3b773c97.tar.gz
RWA.Support.SessionService-bb5a7fcf30e11c7b955f46572de1ef4a3b773c97.tar.bz2
RWA.Support.SessionService-bb5a7fcf30e11c7b955f46572de1ef4a3b773c97.zip
Return error status if connection to RWA wasn't successful
Close #10
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: