diff options
author | Jonathan Weth <git@jonathanweth.de> | 2020-07-22 15:41:01 +0200 |
---|---|---|
committer | Jonathan Weth <git@jonathanweth.de> | 2020-07-22 15:41:01 +0200 |
commit | cdc79e2722a5b6718e21a3b1523deb7795b9385a (patch) | |
tree | 1b44df9b13aaec396fdbb921f51faa8a97202568 | |
parent | 743492297d911bb296127cc0e95c16b0b0b4ce9f (diff) | |
download | RWA.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.py | 15 |
1 files changed, 13 insertions, 2 deletions
@@ -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 |