aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Weth <git@jonathanweth.de>2020-07-22 15:41:01 +0200
committerJonathan Weth <git@jonathanweth.de>2020-07-22 15:41:01 +0200
commitcdc79e2722a5b6718e21a3b1523deb7795b9385a (patch)
tree1b44df9b13aaec396fdbb921f51faa8a97202568
parent743492297d911bb296127cc0e95c16b0b0b4ce9f (diff)
downloadRWA.Support.SessionService-cdc79e2722a5b6718e21a3b1523deb7795b9385a.tar.gz
RWA.Support.SessionService-cdc79e2722a5b6718e21a3b1523deb7795b9385a.tar.bz2
RWA.Support.SessionService-cdc79e2722a5b6718e21a3b1523deb7795b9385a.zip
Send stop request to RWA if VNC isn't running anymore
-rw-r--r--session.py15
1 files changed, 13 insertions, 2 deletions
diff --git a/session.py b/session.py
index f7ca9fe..ae9f874 100644
--- a/session.py
+++ b/session.py
@@ -11,7 +11,9 @@ from flask import Flask, abort, request
from vnc import run_vnc, save_password
API_SERVER = "http://127.0.0.1:8000"
-REGISTER_URL = API_SERVER + "/app/rwa/api/register/"
+BASE_URL = API_SERVER + "/app/rwa/api/"
+REGISTER_URL = BASE_URL + "register/"
+STOP_URL = BASE_URL + "stop/"
class Session:
@@ -35,6 +37,10 @@ class Session:
def port(self) -> int:
return self.ws_port
+ @property
+ def _api_headers(self) -> dict:
+ return {"Authorization": f"Token {self.api_token}"}
+
def _generate_password(self):
"""Generate password for x11vnc and save it."""
self.password = secrets.token_urlsafe(20)
@@ -101,7 +107,7 @@ class Session:
"""Update status: Push status to Django."""
pass
- def stop(self):
+ def stop(self, triggered: bool =False):
"""Stop session and clean up."""
# Kill VNC
if self.vnc_pid in psutil.pids():
@@ -124,6 +130,11 @@ class Session:
self.push()
+ if not triggered:
+ requests.post(
+ STOP_URL, json={"id": self.session_id}, headers=self._api_headers
+ )
+
# Delete self
del self