PAL Trending: Add build date to csv and txt tables 18/11618/1
authorTibor Frank <tifrank@cisco.com>
Mon, 9 Apr 2018 14:13:14 +0000 (16:13 +0200)
committerTibor Frank <tifrank@cisco.com>
Mon, 9 Apr 2018 14:13:14 +0000 (16:13 +0200)
Change-Id: I75e614b45bcf1b38709b551ba13bc6e54d2c978d
Signed-off-by: Tibor Frank <tifrank@cisco.com>
resources/tools/presentation/generator_CPTA.py
resources/tools/presentation/input_data_parser.py

index 9cce8ed..967eb60 100644 (file)
@@ -362,13 +362,25 @@ def _generate_all_charts(spec, input_data):
     :type input_data: InputData
     """
 
     :type input_data: InputData
     """
 
-    csv_table = list()
-    # Create the header:
     builds = spec.cpta["data"].values()[0]
     job_name = spec.cpta["data"].keys()[0]
     builds_lst = [str(build) for build in range(builds[0], builds[-1] + 1)]
     builds = spec.cpta["data"].values()[0]
     job_name = spec.cpta["data"].keys()[0]
     builds_lst = [str(build) for build in range(builds[0], builds[-1] + 1)]
+
+    # Get "build ID": "date" dict:
+    build_dates = dict()
+    for build in builds_lst:
+        try:
+            build_dates[build] = \
+                input_data.metadata(job_name, build)["generated"][:14]
+        except KeyError:
+            pass
+
+    # Create the header:
+    csv_table = list()
     header = "Build Number:," + ",".join(builds_lst) + '\n'
     csv_table.append(header)
     header = "Build Number:," + ",".join(builds_lst) + '\n'
     csv_table.append(header)
+    header = "Build Date:," + ",".join(build_dates.values()) + '\n'
+    csv_table.append(header)
 
     results = list()
     for chart in spec.cpta["plots"]:
 
     results = list()
     for chart in spec.cpta["plots"]:
@@ -445,19 +457,19 @@ def _generate_all_charts(spec, input_data):
     txt_table = None
     with open("{0}.csv".format(file_name), 'rb') as csv_file:
         csv_content = csv.reader(csv_file, delimiter=',', quotechar='"')
     txt_table = None
     with open("{0}.csv".format(file_name), 'rb') as csv_file:
         csv_content = csv.reader(csv_file, delimiter=',', quotechar='"')
-        header = True
+        line_nr = 0
         for row in csv_content:
             if txt_table is None:
                 txt_table = prettytable.PrettyTable(row)
         for row in csv_content:
             if txt_table is None:
                 txt_table = prettytable.PrettyTable(row)
-                header = False
             else:
             else:
-                if not header:
+                if line_nr > 1:
                     for idx, item in enumerate(row):
                         try:
                             row[idx] = str(round(float(item) / 1000000, 2))
                         except ValueError:
                             pass
                 txt_table.add_row(row)
                     for idx, item in enumerate(row):
                         try:
                             row[idx] = str(round(float(item) / 1000000, 2))
                         except ValueError:
                             pass
                 txt_table.add_row(row)
+            line_nr += 1
         txt_table.align["Build Number:"] = "l"
     with open("{0}.txt".format(file_name), "w") as txt_file:
         txt_file.write(str(txt_table))
         txt_table.align["Build Number:"] = "l"
     with open("{0}.txt".format(file_name), "w") as txt_file:
         txt_file.write(str(txt_table))
index 87d822f..7adc9c0 100644 (file)
@@ -21,6 +21,7 @@
 import re
 import pandas as pd
 import logging
 import re
 import pandas as pd
 import logging
+import xml.etree.ElementTree as ET
 
 from robot.api import ExecutionResult, ResultVisitor
 from robot import errors
 
 from robot.api import ExecutionResult, ResultVisitor
 from robot import errors
@@ -758,6 +759,10 @@ class InputData(object):
         :rtype: dict
         """
 
         :rtype: dict
         """
 
+        tree = ET.parse(build["file-name"])
+        root = tree.getroot()
+        generated = root.attrib["generated"]
+
         with open(build["file-name"], 'r') as data_file:
             try:
                 result = ExecutionResult(data_file)
         with open(build["file-name"], 'r') as data_file:
             try:
                 result = ExecutionResult(data_file)
@@ -765,7 +770,7 @@ class InputData(object):
                 logging.error("Error occurred while parsing output.xml: {0}".
                               format(err))
                 return None
                 logging.error("Error occurred while parsing output.xml: {0}".
                               format(err))
                 return None
-        checker = ExecutionChecker(job=job, build=build)
+        checker = ExecutionChecker(job=job, build=build, generated=generated)
         result.visit(checker)
 
         return checker.data
         result.visit(checker)
 
         return checker.data