Report: Add data, graphs, remove oper data
[csit.git] / resources / tools / presentation / input_data_parser.py
index 1f175bc..9e61c09 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 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:
@@ -89,10 +89,10 @@ class ExecutionChecker(ResultVisitor):
     REGEX_VSAP_MSG_INFO = re.compile(
         r'Transfer Rate: (\d*.\d*).*\n'
         r'Latency: (\d*.\d*).*\n'
-        r'Completed requests: (\d*).*\n'
-        r'Failed requests: (\d*).*\n'
+        r'Connection [c|r]ps rate: (\d*).*\n'
         r'Total data transferred: (\d*).*\n'
-        r'Connection [cr]ps rate:\s*(\d*.\d*)'
+        r'Completed requests: (\d*).*\n'
+        r'Failed requests:\s*(\d*.\d*)'
     )
 
     # Needed for CPS and PPS tests
@@ -159,10 +159,6 @@ class ExecutionChecker(ResultVisitor):
         :type process_oper: bool
         """
 
-        # Save the provided metadata
-        for key, val in metadata.items():
-            self._data["metadata"][key] = val
-
         # Mapping of TCs long names
         self._mapping = mapping
 
@@ -205,6 +201,10 @@ class ExecutionChecker(ResultVisitor):
             "tests": dict()
         }
 
+        # Save the provided metadata
+        for key, val in metadata.items():
+            self._data["metadata"][key] = val
+
     @property
     def data(self):
         """Getter - Data parsed from the XML file.
@@ -822,19 +822,18 @@ class ExecutionChecker(ResultVisitor):
             try:
                 result["transfer-rate"] = float(groups.group(1)) * 1e3
                 result["latency"] = float(groups.group(2))
-                result["completed-requests"] = int(groups.group(3))
-                result["failed-requests"] = int(groups.group(4))
-                result["bytes-transferred"] = int(groups.group(5))
-                if "TCP_CPS"in tags:
-                    result["cps"] = float(groups.group(6))
+                result["completed-requests"] = int(groups.group(5))
+                result["failed-requests"] = int(groups.group(6))
+                result["bytes-transferred"] = int(groups.group(4))
+                if "TCP_CPS" in tags:
+                    result["cps"] = float(groups.group(3))
                 elif "TCP_RPS" in tags:
-                    result["rps"] = float(groups.group(6))
+                    result["rps"] = float(groups.group(3))
                 else:
                     return result, status
                 status = "PASS"
-            except (IndexError, ValueError):
-                pass
-
+            except (IndexError, ValueError) as err:
+                logging.warning(err)
         return result, status
 
     def visit_suite(self, suite):
@@ -1098,11 +1097,13 @@ class ExecutionChecker(ResultVisitor):
         if self._kw_name is None:
             return
         elif self._kw_name.count("Run Telemetry On All Duts"):
-            self._telemetry_kw_counter += 1
-            self._get_telemetry(msg)
+            if self._process_oper:
+                self._telemetry_kw_counter += 1
+                self._get_telemetry(msg)
         elif self._kw_name.count("Show Runtime On All Duts"):
-            self._sh_run_counter += 1
-            self._get_show_run(msg)
+            if self._process_oper:
+                self._sh_run_counter += 1
+                self._get_show_run(msg)
         elif self._kw_name.count("Show Vpp Version On All Duts"):
             if not self._version:
                 self._get_vpp_version(msg)