From 67530f8b471514dabb5a69b3a157c0e941007746 Mon Sep 17 00:00:00 2001 From: pmikus Date: Mon, 20 Feb 2023 10:26:38 +0000 Subject: feat(telemetry): Data compress Signed-off-by: pmikus Change-Id: I652844e722e24cb49f09a3f30aabe3103e271079 (cherry picked from commit 28dc464d05d62c22ec6b3dee01fafffcd0ab754d) (cherry picked from commit ad9bf8a4651edf37214865492f3127a89abd803c) --- resources/libraries/python/Constants.py | 2 +- resources/libraries/python/model/ExportJson.py | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) (limited to 'resources/libraries/python') diff --git a/resources/libraries/python/Constants.py b/resources/libraries/python/Constants.py index 4cf6681324..01e3a0154a 100644 --- a/resources/libraries/python/Constants.py +++ b/resources/libraries/python/Constants.py @@ -120,7 +120,7 @@ class Constants: """Constants used in CSIT.""" # Version for CSIT data model. See docs/model/. - MODEL_VERSION = u"1.3.0" + MODEL_VERSION = u"1.4.0" # Global off-switch in case JSON export is large or slow. EXPORT_JSON = get_optimistic_bool_from_env(u"EXPORT_JSON") diff --git a/resources/libraries/python/model/ExportJson.py b/resources/libraries/python/model/ExportJson.py index bd457c00f6..478b3abb60 100644 --- a/resources/libraries/python/model/ExportJson.py +++ b/resources/libraries/python/model/ExportJson.py @@ -23,9 +23,11 @@ as serialization might have introduced subtle errors. import datetime import os.path +from binascii import b2a_base64 from dateutil.parser import parse from robot.api import logger from robot.libraries.BuiltIn import BuiltIn +from zlib import compress from resources.libraries.python.Constants import Constants from resources.libraries.python.jumpavg.AvgStdevStats import AvgStdevStats @@ -357,6 +359,11 @@ class ExportJson(): Results are used to avoid future post processing, making it more efficient to consume. """ + if self.data["telemetry"]: + telemetry_encode = "\n".join(self.data["telemetry"]).encode() + telemetry_compress = compress(telemetry_encode, level=9) + telemetry_base64 = b2a_base64(telemetry_compress, newline=False) + self.data["telemetry"] = [telemetry_base64.decode()] if u"result" not in self.data: return result_node = self.data[u"result"] -- cgit 1.2.3-korg