trending: shorten error messages
[csit.git] / resources / tools / presentation / generator_alerts.py
index 9a0a03a..c3bf81d 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -279,6 +279,38 @@ class Alerting:
                         line, error_msg = line[:-1].split(u'###', maxsplit=1)
                         test = line.split(u'-')
                         name = u'-'.join(test[3:-1])
+                        if len(error_msg) > 128:
+                            if u";" in error_msg[128:256]:
+                                error_msg = \
+                                    f"{error_msg[:128]}" \
+                                    f"{error_msg[128:].split(u';', 1)[0]}..."
+                            elif u":" in error_msg[128:256]:
+                                error_msg = \
+                                    f"{error_msg[:128]}" \
+                                    f"{error_msg[128:].split(u':', 1)[0]}..."
+                            elif u"." in error_msg[128:256]:
+                                error_msg = \
+                                    f"{error_msg[:128]}" \
+                                    f"{error_msg[128:].split(u'.', 1)[0]}..."
+                            elif u"?" in error_msg[128:256]:
+                                error_msg = \
+                                    f"{error_msg[:128]}" \
+                                    f"{error_msg[128:].split(u'?', 1)[0]}..."
+                            elif u"!" in error_msg[128:256]:
+                                error_msg = \
+                                    f"{error_msg[:128]}" \
+                                    f"{error_msg[128:].split(u'!', 1)[0]}..."
+                            elif u"," in error_msg[128:256]:
+                                error_msg = \
+                                    f"{error_msg[:128]}" \
+                                    f"{error_msg[128:].split(u',', 1)[0]}..."
+                            elif u" " in error_msg[128:256]:
+                                error_msg = \
+                                    f"{error_msg[:128]}" \
+                                    f"{error_msg[128:].split(u' ', 1)[0]}..."
+                            else:
+                                error_msg = error_msg[:128]
+
                     except ValueError:
                         continue
 
@@ -375,6 +407,30 @@ class Alerting:
             )
 
         text = u""
+
+        legend = (f"Legend:\n[ Last trend in Mpps | number of runs for "
+                  f"last trend |")
+
+        out_file = (
+            f"{self.configs[alert[u'way']][u'output-dir']}/"
+            f"trending-regressions.txt"
+        )
+        try:
+            with open(out_file, u'w') as reg_file:
+                reg_file.write(f"{legend} regressions ]")
+        except IOError:
+            logging.error(f"Not possible to write the file {out_file}.txt.")
+
+        out_file = (
+            f"{self.configs[alert[u'way']][u'output-dir']}/"
+            f"trending-progressions.txt"
+        )
+        try:
+            with open(out_file, u'w') as reg_file:
+                reg_file.write(f"{legend} progressions ]")
+        except IOError:
+            logging.error(f"Not possible to write the file {out_file}.txt.")
+
         for idx, test_set in enumerate(alert.get(u"include", list())):
             test_set_short = u""
             device = u""