From b394ea3c655ac304bf05a6dae88aa642ad8b78e5 Mon Sep 17 00:00:00 2001 From: Taha Yassine Kraiem Date: Thu, 28 Mar 2024 17:04:23 +0100 Subject: [PATCH] chore(buil): Cherrypicking build script --- ee/api/chalicelib/core/sessions_exp.py | 30 ++++++++++++++++++++++++-- frontend/build.sh | 11 ++++++++++ 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/ee/api/chalicelib/core/sessions_exp.py b/ee/api/chalicelib/core/sessions_exp.py index 7c498142c..482148d71 100644 --- a/ee/api/chalicelib/core/sessions_exp.py +++ b/ee/api/chalicelib/core/sessions_exp.py @@ -3,7 +3,7 @@ import logging from typing import List, Union import schemas -from chalicelib.core import events, metadata, projects, performance_event, metrics +from chalicelib.core import events, metadata, projects, performance_event, metrics, sessions_legacy from chalicelib.utils import pg_client, helper, metrics_helper, ch_client, exp_ch_helper logger = logging.getLogger(__name__) @@ -1462,7 +1462,7 @@ def search_query_parts_ch(data: schemas.SessionsSearchPayloadSchema, error_statu AND events.issue_type = %(issue_type)s AND events.datetime >= toDateTime(%(startDate)s/1000) AND events.datetime <= toDateTime(%(endDate)s/1000) - ) AS issues ON (s.session_id = issues.session_id) + ) AS issues ON (f.session_id = issues.session_id) """ full_args["issue_contextString"] = issue["contextString"] full_args["issue_type"] = issue["type"] @@ -1679,3 +1679,29 @@ def check_recording_status(project_id: int) -> dict: "recordingStatus": row["recording_status"], "sessionsCount": row["sessions_count"] } + + +# TODO: rewrite this function to use ClickHouse +def search_sessions_by_ids(project_id: int, session_ids: list, sort_by: str = 'session_id', + ascending: bool = False) -> dict: + if session_ids is None or len(session_ids) == 0: + return {"total": 0, "sessions": []} + with pg_client.PostgresClient() as cur: + meta_keys = metadata.get(project_id=project_id) + params = {"project_id": project_id, "session_ids": tuple(session_ids)} + order_direction = 'ASC' if ascending else 'DESC' + main_query = cur.mogrify(f"""SELECT {sessions_legacy.SESSION_PROJECTION_BASE_COLS} + {"," if len(meta_keys) > 0 else ""}{",".join([f'metadata_{m["index"]}' for m in meta_keys])} + FROM public.sessions AS s + WHERE project_id=%(project_id)s + AND session_id IN %(session_ids)s + ORDER BY {sort_by} {order_direction};""", params) + + cur.execute(main_query) + rows = cur.fetchall() + if len(meta_keys) > 0: + for s in rows: + s["metadata"] = {} + for m in meta_keys: + s["metadata"][m["key"]] = s.pop(f'metadata_{m["index"]}') + return {"total": len(rows), "sessions": helper.list_to_camel_case(rows)} diff --git a/frontend/build.sh b/frontend/build.sh index 21c6c02c0..cea9019bd 100644 --- a/frontend/build.sh +++ b/frontend/build.sh @@ -10,6 +10,9 @@ ARCH=${ARCH:-amd64} +GIT_ROOT=$(git rev-parse --show-toplevel) +source $GIT_ROOT/scripts/lib/_docker.sh + git_sha=$(git rev-parse --short HEAD) image_tag=${IMAGE_TAG:-$git_sha} check_prereq() { @@ -19,6 +22,14 @@ check_prereq() { } } +# Sourcing init scripts +for file in ./build_init_*; do + if [ -f "$file" ]; then + echo "Sourcing $file" + source "$file" + fi +done + chart=frontend [[ $1 == ee ]] && ee=true [[ $PATCH -eq 1 ]] && {