diff options
author | Jonathan Weth <mail@jonathanweth.de> | 2020-07-27 11:26:05 +0200 |
---|---|---|
committer | Jonathan Weth <mail@jonathanweth.de> | 2020-07-27 11:26:05 +0200 |
commit | c8c3a75c6b78d1d955cd9de43538b8bee73a3609 (patch) | |
tree | 8f22c458ef4e48c3da9ea5fa5c53c3aff4dfd71d /session.py | |
parent | 4db238a1395b33e76711d310f92090f803af41d4 (diff) | |
parent | 7c8f259f9b7523f5fc79d22c0eeab5226b3e1076 (diff) | |
download | RWA.Support.SessionService-c8c3a75c6b78d1d955cd9de43538b8bee73a3609.tar.gz RWA.Support.SessionService-c8c3a75c6b78d1d955cd9de43538b8bee73a3609.tar.bz2 RWA.Support.SessionService-c8c3a75c6b78d1d955cd9de43538b8bee73a3609.zip |
Merge branch '4-provide-global-trigger-service-for-all-sessions' into 'master'
Resolve "Provide global trigger service (for all sessions)"
Closes #4
See merge request remotewebapp/session-service!4
Diffstat (limited to 'session.py')
-rw-r--r-- | session.py | 40 |
1 files changed, 5 insertions, 35 deletions
@@ -36,20 +36,6 @@ def get_desktop_dir(): ) -class ServerThread(threading.Thread): - def __init__(self, app, port: int): - super().__init__() - self.srv = make_server("127.0.0.1", port, app) - self.ctx = app.app_context() - self.ctx.push() - - def run(self): - self.srv.serve_forever() - - def shutdown(self): - self.srv.shutdown() - - class Session: #: Session is running STATUS_RUNNING = "running" @@ -57,13 +43,15 @@ class Session: #: Remote has joined the session STATUS_JOINED = "active" - def __init__(self, mockup_session: bool): + def __init__(self, trigger_port: int, mockup_session: bool = False): + self.trigger_token = secrets.token_urlsafe(20) + self.trigger_port = trigger_port self.done_jobs = [] self.mockup_session = mockup_session self.desktop_dir = get_desktop_dir() + self.desktop_dir = get_desktop_dir() self._generate_password() self._start_vnc() - self._start_trigger_service() self._register_session() self.status_text = self.STATUS_RUNNING @@ -135,25 +123,7 @@ class Session: self.api_token = secrets.token_urlsafe(10) self.pin = int(random_digits(5)) - def _start_trigger_service(self): - self.trigger_port = port_for.select_random() - self.trigger_token = secrets.token_urlsafe(20) - - app = Flask(__name__) - - @app.route("/", methods=["POST"]) - def trigger(): - json = request.json - if json.get("token", "") == self.trigger_token: - self._trigger() - return "Successful triggered" - else: - return abort(403) - - self.trigger_thread = ServerThread(app=app, port=self.trigger_port) - self.trigger_thread.start() - - def _trigger(self): + def trigger(self): """Event triggered by Django.""" print("Triggered") self.pull() |