Report: Download first from logs.fd.io
[csit.git] / resources / tools / presentation / input_data_parser.py
index e330b12..87989c5 100644 (file)
@@ -19,9 +19,8 @@
 - filter the data using tags,
 """
 
-import multiprocessing
-import os
 import re
+import resource
 import pandas as pd
 import logging
 
@@ -37,7 +36,6 @@ from json import loads
 from jumpavg.AvgStdevMetadataFactory import AvgStdevMetadataFactory
 
 from input_data_files import download_and_unzip_data_file
-from utils import Worker
 
 
 # Separator used in file names
@@ -282,8 +280,7 @@ class ExecutionChecker(ResultVisitor):
     REGEX_VERSION_VPP = re.compile(r"(return STDOUT Version:\s*|"
                                    r"VPP Version:\s*|VPP version:\s*)(.*)")
 
-    REGEX_VERSION_DPDK = re.compile(r"(return STDOUT testpmd)([\d\D\n]*)"
-                                    r"(RTE Version: 'DPDK )(.*)(')")
+    REGEX_VERSION_DPDK = re.compile(r"DPDK Version: (\d*.\d*)")
 
     REGEX_TCP = re.compile(r'Total\s(rps|cps|throughput):\s([0-9]*).*$')
 
@@ -389,14 +386,12 @@ class ExecutionChecker(ResultVisitor):
         :returns: Nothing.
         """
 
-        if msg.message.count("Arguments:"):
-            message = str(msg.message).replace(' ', '').replace('\n', '').\
-                replace("'", '"').replace('b"', '"').\
-                replace("honeycom", "honeycomb")
-            message = loads(message[11:-1])
+        if msg.message.count("Setup of TG node"):
+            reg_tg_ip = re.compile(
+                r'Setup of TG node (\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}) done')
             try:
-                self._testbed = message["TG"]["host"]
-            except (KeyError, ValueError):
+                self._testbed = str(re.search(reg_tg_ip, msg.message).group(1))
+            except (KeyError, ValueError, IndexError, AttributeError):
                 pass
             finally:
                 self._data["metadata"]["testbed"] = self._testbed
@@ -426,10 +421,10 @@ class ExecutionChecker(ResultVisitor):
         :returns: Nothing.
         """
 
-        if msg.message.count("return STDOUT testpmd"):
+        if msg.message.count("DPDK Version:"):
             try:
                 self._version = str(re.search(
-                    self.REGEX_VERSION_DPDK, msg.message). group(4))
+                    self.REGEX_VERSION_DPDK, msg.message). group(1))
                 self._data["metadata"]["version"] = self._version
             except IndexError:
                 pass
@@ -948,7 +943,7 @@ class ExecutionChecker(ResultVisitor):
             self._lookup_kw_nr += 1
             self._show_run_lookup_nr = 0
             self._msg_type = "test-show-runtime"
-        elif test_kw.name.count("Start The L2fwd Test") and not self._version:
+        elif test_kw.name.count("Install Dpdk Test") and not self._version:
             self._msg_type = "dpdk-version"
         else:
             return
@@ -1262,11 +1257,11 @@ class InputData(object):
                         file_name = self._cfg.input["file-name"]
                         full_name = join(
                             self._cfg.environment["paths"]["DIR[WORKING,DATA]"],
-                            "{job}{sep}{build}{sep}{name}".
-                                format(job=job,
-                                       sep=SEPARATOR,
-                                       build=build["build"],
-                                       name=file_name))
+                            "{job}{sep}{build}{sep}{name}".format(
+                                job=job,
+                                sep=SEPARATOR,
+                                build=build["build"],
+                                name=file_name))
                         try:
                             remove(full_name)
                             logs.append(("INFO",
@@ -1307,12 +1302,8 @@ class InputData(object):
             for build in builds:
 
                 result = self._download_and_parse_build(job, build, repeat)
-
-                job = result["job"]
                 build_nr = result["build"]["build"]
 
-                logging.info("  {job}-{build}".format(job=job,
-                                                      build=build_nr))
                 if result["data"]:
                     data = result["data"]
                     build_data = pd.Series({
@@ -1333,6 +1324,9 @@ class InputData(object):
 
                 self._cfg.set_input_state(job, build_nr, result["state"])
 
+                logging.info("Memory allocation: {0:,d}MB".format(
+                    resource.getrusage(resource.RUSAGE_SELF).ru_maxrss / 1000))
+
         logging.info("Done.")
 
     @staticmethod