diff options
author | Jonathan Weth <git@jonathanweth.de> | 2020-07-27 11:43:43 +0200 |
---|---|---|
committer | Jonathan Weth <git@jonathanweth.de> | 2020-07-27 11:43:43 +0200 |
commit | a6115f21a121e954fa2714753b16c81bfcc05989 (patch) | |
tree | edb33c3c03589e4a1591df5cec165d2886c25687 | |
parent | df32d50ab72d35c2a727fe46ef704fd6729b0c5c (diff) | |
download | RWA.Support.SessionService-a6115f21a121e954fa2714753b16c81bfcc05989.tar.gz RWA.Support.SessionService-a6115f21a121e954fa2714753b16c81bfcc05989.tar.bz2 RWA.Support.SessionService-a6115f21a121e954fa2714753b16c81bfcc05989.zip |
Ensure that only one just can run
Close #6
-rw-r--r-- | API.rst | 10 | ||||
-rwxr-xr-x | service.py | 10 |
2 files changed, 16 insertions, 4 deletions
@@ -19,11 +19,17 @@ Start a new remote session and register it in RWA **Return type:** string (JSON) -**Structure of returned JSON:** +**Structure of returned JSON (success):** + +:: + + {"status": "success", "id": <pid>, "url": "<url>", "pin": <pin>} + +**Structure of returned JSON (error):** :: - {"id": <pid>, "url": "<url>", "pin": <pin>} + {"status": "error"} status @@ -13,7 +13,7 @@ from session import Session from trigger import TriggerServerThread ONE_TIME_SERVICE = False - +ALLOW_ONLY_ONE_SESSION = True class RWAService(dbus.service.Object): def __init__(self, loop, mockup_mode: bool = False): @@ -33,6 +33,9 @@ class RWAService(dbus.service.Object): @dbus.service.method("org.ArcticaProject.RWA", out_signature="s") def start(self): """Start a new remote session.""" + if ALLOW_ONLY_ONE_SESSION and len(self.sessions.values()) > 0: + return json.dumps({"status": "error"}) + # Start session session = Session(self.trigger_service.port, mockup_mode) @@ -42,7 +45,10 @@ class RWAService(dbus.service.Object): # Start session update service self._ensure_update_service() - return json.dumps(session.client_meta) + return_json = session.client_meta + return_json["status"] = "success" + + return json.dumps(return_json) @dbus.service.method("org.ArcticaProject.RWA", in_signature="i", out_signature="s") def status(self, pid: int) -> str: |