X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=resources%2Ftools%2Fpresentation%2Finput_data_parser.py;h=6da428e1bbe0f1e2e829189c83ffd7570d9eea7e;hb=52ebb67e52800f4240001d117d56d08d78a84d6a;hp=31d6d52fd11a46e2b02f537d6c901ec42322aee9;hpb=264c4a1cedb82b69ba0a5f36387341a58bce9977;p=csit.git diff --git a/resources/tools/presentation/input_data_parser.py b/resources/tools/presentation/input_data_parser.py index 31d6d52fd1..6da428e1bb 100644 --- a/resources/tools/presentation/input_data_parser.py +++ b/resources/tools/presentation/input_data_parser.py @@ -500,7 +500,7 @@ class ExecutionChecker(ResultVisitor): :type msg: Message :returns: Nothing. """ - if msg.message.count("return STDOUT Thread "): + if msg.message.count("Thread 0 vpp_main"): self._show_run_lookup_nr += 1 if self._lookup_kw_nr == 1 and self._show_run_lookup_nr == 1: self._data["tests"][self._test_ID]["show-run"] = str() @@ -987,8 +987,7 @@ class ExecutionChecker(ResultVisitor): if setup_kw.name.count("Show Vpp Version On All Duts") \ and not self._version: self._msg_type = "vpp-version" - - elif setup_kw.name.count("Setup performance global Variables") \ + elif setup_kw.name.count("Set Global Variable") \ and not self._timestamp: self._msg_type = "timestamp" elif setup_kw.name.count("Setup Framework") and not self._testbed: @@ -1210,9 +1209,6 @@ class InputData(object): logs = list() - logging.info(" Processing the job/build: {0}: {1}". - format(job, build["build"])) - logs.append(("INFO", " Processing the job/build: {0}: {1}". format(job, build["build"]))) @@ -1232,7 +1228,7 @@ class InputData(object): "'{build}', or it is damaged. Skipped.". format(job=job, build=build["build"]))) if success: - logs.append(("INFO", " Processing data from the build '{0}' ...". + logs.append(("INFO", " Processing data from the build '{0}' ...". format(build["build"]))) data = self._parse_tests(job, build, logs) if data is None: @@ -1284,15 +1280,25 @@ class InputData(object): logs.append(("ERROR", "Cannot remove the file '{0}': {1}". format(full_name, repr(err)))) - logs.append(("INFO", " Done.")) + for level, line in logs: + if level == "INFO": + logging.info(line) + elif level == "ERROR": + logging.error(line) + elif level == "DEBUG": + logging.debug(line) + elif level == "CRITICAL": + logging.critical(line) + elif level == "WARNING": + logging.warning(line) + result = { "data": data, "state": state, "job": job, - "build": build, - "logs": logs + "build": build } data_queue.put(result) @@ -1331,42 +1337,41 @@ class InputData(object): logging.info("Done.") + logging.info("Collecting data:") + while not data_queue.empty(): - result = data_queue.get() - - job = result["job"] - build_nr = result["build"]["build"] - - if result["data"]: - data = result["data"] - build_data = pd.Series({ - "metadata": pd.Series(data["metadata"].values(), - index=data["metadata"].keys()), - "suites": pd.Series(data["suites"].values(), - index=data["suites"].keys()), - "tests": pd.Series(data["tests"].values(), - index=data["tests"].keys())}) - - if self._input_data.get(job, None) is None: - self._input_data[job] = pd.Series() - self._input_data[job][str(build_nr)] = build_data - - self._cfg.set_input_file_name(job, build_nr, - result["build"]["file-name"]) - - self._cfg.set_input_state(job, build_nr, result["state"]) - - for item in result["logs"]: - if item[0] == "INFO": - logging.info(item[1]) - elif item[0] == "ERROR": - logging.error(item[1]) - elif item[0] == "DEBUG": - logging.debug(item[1]) - elif item[0] == "CRITICAL": - logging.critical(item[1]) - elif item[0] == "WARNING": - logging.warning(item[1]) + + try: + result = data_queue.get() + + 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({ + "metadata": pd.Series(data["metadata"].values(), + index=data["metadata"].keys()), + "suites": pd.Series(data["suites"].values(), + index=data["suites"].keys()), + "tests": pd.Series(data["tests"].values(), + index=data["tests"].keys())}) + + if self._input_data.get(job, None) is None: + self._input_data[job] = pd.Series() + self._input_data[job][str(build_nr)] = build_data + + self._cfg.set_input_file_name(job, build_nr, + result["build"]["file-name"]) + + self._cfg.set_input_state(job, build_nr, result["state"]) + + except (MemoryError, EOFError) as err: + logging.error(repr(err)) + raise + del data_queue