diff options
author | pmikus <peter.mikus@protonmail.ch> | 2023-02-20 10:26:38 +0000 |
---|---|---|
committer | Peter Mikus <peter.mikus@protonmail.ch> | 2023-02-20 11:14:00 +0000 |
commit | 67530f8b471514dabb5a69b3a157c0e941007746 (patch) | |
tree | e2c601fcf974c60b502c4d58875ff5f63896099b /resources/libraries | |
parent | c18a940c44f566b1bdaa91d9015c5730ffd57679 (diff) |
feat(telemetry): Data compress
Signed-off-by: pmikus <peter.mikus@protonmail.ch>
Change-Id: I652844e722e24cb49f09a3f30aabe3103e271079
(cherry picked from commit 28dc464d05d62c22ec6b3dee01fafffcd0ab754d)
(cherry picked from commit ad9bf8a4651edf37214865492f3127a89abd803c)
Diffstat (limited to 'resources/libraries')
-rw-r--r-- | resources/libraries/python/Constants.py | 2 | ||||
-rw-r--r-- | resources/libraries/python/model/ExportJson.py | 7 |
2 files changed, 8 insertions, 1 deletions
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"] |