From 2fa444a26c08dd7e9365d6be5b6f4f9ec3cd79dc Mon Sep 17 00:00:00 2001 From: Taha Yassine Kraiem Date: Mon, 7 Feb 2022 14:25:06 +0100 Subject: [PATCH] feat(api): get live sessions directly from websocket --- api/.env.default | 4 ++-- api/chalicelib/core/assist.py | 17 +++++++++++++---- api/routers/core.py | 4 ++-- ee/api/.env.default | 4 ++-- 4 files changed, 19 insertions(+), 10 deletions(-) diff --git a/api/.env.default b/api/.env.default index efc9dc038..53ad735de 100644 --- a/api/.env.default +++ b/api/.env.default @@ -28,8 +28,8 @@ jwt_algorithm=HS512 jwt_exp_delta_seconds=2592000 jwt_issuer=openreplay-default-foss jwt_secret="SET A RANDOM STRING HERE" -Opeers=http://utilities-openreplay.app.svc.cluster.local:9000/assist/%s/peers -peers=http://utilities-openreplay.app.svc.cluster.local:9000/assist/%s/sockets-list +Opeers=http://utilities-openreplay.app.svc.cluster.local:9000/assist/%s/sockets-list +peers=http://utilities-openreplay.app.svc.cluster.local:9001/assist/%s/sockets-live pg_dbname=postgres pg_host=postgresql.db.svc.cluster.local pg_password=asayerPostgres diff --git a/api/chalicelib/core/assist.py b/api/chalicelib/core/assist.py index cd76d0be4..d60d8c366 100644 --- a/api/chalicelib/core/assist.py +++ b/api/chalicelib/core/assist.py @@ -1,10 +1,8 @@ -import schemas -from chalicelib.utils import pg_client, helper -from chalicelib.core import projects, sessions, sessions_metas import requests from decouple import config -from chalicelib.core import projects, sessions, sessions_metas +import schemas +from chalicelib.core import projects, sessions from chalicelib.utils import pg_client, helper SESSION_PROJECTION_COLS = """s.project_id, @@ -66,6 +64,17 @@ def get_live_sessions(project_id, filters=None): return helper.list_to_camel_case(results) +def get_live_sessions_ws(project_id): + project_key = projects.get_project_key(project_id) + connected_peers = requests.get(config("peers") % config("S3_KEY") + f"/{project_key}") + if connected_peers.status_code != 200: + print("!! issue with the peer-server") + print(connected_peers.text) + return [] + live_peers = connected_peers.json().get("data", []) + return {"data": live_peers} + + def is_live(project_id, session_id, project_key=None): if project_key is None: project_key = projects.get_project_key(project_id) diff --git a/api/routers/core.py b/api/routers/core.py index 3dfecbe3d..41cc522ba 100644 --- a/api/routers/core.py +++ b/api/routers/core.py @@ -830,14 +830,14 @@ def all_issue_types(context: schemas.CurrentContext = Depends(OR_context)): @app.get('/{projectId}/assist/sessions', tags=["assist"]) def sessions_live(projectId: int, context: schemas.CurrentContext = Depends(OR_context)): - data = assist.get_live_sessions(projectId) + data = assist.get_live_sessions_ws(projectId) return {'data': data} @app.post('/{projectId}/assist/sessions', tags=["assist"]) def sessions_live_search(projectId: int, data: schemas.AssistSearchPayloadSchema = Body(...), context: schemas.CurrentContext = Depends(OR_context)): - data = assist.get_live_sessions(projectId, filters=data.filters) + data = assist.get_live_sessions_ws(projectId) return {'data': data} diff --git a/ee/api/.env.default b/ee/api/.env.default index 8c22230be..96089f860 100644 --- a/ee/api/.env.default +++ b/ee/api/.env.default @@ -37,8 +37,8 @@ jwt_algorithm=HS512 jwt_exp_delta_seconds=2592000 jwt_issuer=openreplay-default-ee jwt_secret="SET A RANDOM STRING HERE" -Opeers=http://utilities-openreplay.app.svc.cluster.local:9000/assist/%s/peers -peers=http://utilities-openreplay.app.svc.cluster.local:9000/assist/%s/sockets-list +Opeers=http://utilities-openreplay.app.svc.cluster.local:9000/assist/%s/sockets-list +peers=http://utilities-openreplay.app.svc.cluster.local:9001/assist/%s/sockets-live pg_dbname=postgres pg_host=postgresql.db.svc.cluster.local pg_password=asayerPostgres