Report: Add 3n-skx NDR
[csit.git] / resources / tools / presentation / generator_tables.py
index 7a7db5d..2a366b9 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2020 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:
@@ -98,10 +98,10 @@ def table_oper_data_html(table, input_data):
     data = input_data.merge_data(data)
 
     sort_tests = table.get(u"sort", None)
-    if sort_tests and sort_tests in (u"ascending", u"descending"):
+    if sort_tests:
         args = dict(
             inplace=True,
-            ascending=True if sort_tests == u"ascending" else False
+            ascending=(sort_tests == u"ascending")
         )
         data.sort_index(**args)
 
@@ -173,7 +173,7 @@ def table_oper_data_html(table, input_data):
             u"Average Vector Size"
         )
 
-        for dut_name, dut_data in tst_data[u"show-run"].items():
+        for dut_data in tst_data[u"show-run"].values():
             trow = ET.SubElement(
                 tbl, u"tr", attrib=dict(bgcolor=colors[u"header"])
             )
@@ -183,15 +183,7 @@ def table_oper_data_html(table, input_data):
             if dut_data.get(u"threads", None) is None:
                 tcol.text = u"No Data"
                 continue
-            # bold = ET.SubElement(tcol, u"b")
-            # bold.text = dut_name
-            #
-            # trow = ET.SubElement(
-            #     tbl, u"tr", attrib=dict(bgcolor=colors[u"body"][0])
-            # )
-            # tcol = ET.SubElement(
-            #     trow, u"td", attrib=dict(align=u"left", colspan=u"6")
-            # )
+
             bold = ET.SubElement(tcol, u"b")
             bold.text = (
                 f"Host IP: {dut_data.get(u'host', '')}, "
@@ -272,7 +264,7 @@ def table_oper_data_html(table, input_data):
         if not html_table:
             continue
         try:
-            file_name = f"{table[u'output-file']}_{suite[u'name']}.rst"
+            file_name = f"{table[u'output-file']}{suite[u'name']}.rst"
             with open(f"{file_name}", u'w') as html_file:
                 logging.info(f"    Writing file: {file_name}")
                 html_file.write(u".. raw:: html\n\n\t")
@@ -295,6 +287,7 @@ def table_merged_details(table, input_data):
     """
 
     logging.info(f"  Generating the table {table.get(u'title', u'')} ...")
+
     # Transform the data
     logging.info(
         f"    Creating the data set for the {table.get(u'type', u'')} "
@@ -304,10 +297,10 @@ def table_merged_details(table, input_data):
     data = input_data.merge_data(data)
 
     sort_tests = table.get(u"sort", None)
-    if sort_tests and sort_tests in (u"ascending", u"descending"):
+    if sort_tests:
         args = dict(
             inplace=True,
-            ascending=True if sort_tests == u"ascending" else False
+            ascending=(sort_tests == u"ascending")
         )
         data.sort_index(**args)
 
@@ -349,9 +342,15 @@ def table_merged_details(table, input_data):
                                        f"{u'-'.join(col_data_lst[half:])}"
                         col_data = f" |prein| {col_data} |preout| "
                     elif column[u"data"].split(u" ")[1] in (u"msg", ):
+                        # Temporary solution: remove NDR results from message:
+                        if bool(table.get(u'remove-ndr', False)):
+                            try:
+                                col_data = col_data.split(u" |br| ", 1)[1]
+                            except IndexError:
+                                pass
                         col_data = f" |prein| {col_data} |preout| "
                     elif column[u"data"].split(u" ")[1] in \
-                        (u"conf-history", u"show-run"):
+                            (u"conf-history", u"show-run"):
                         col_data = col_data.replace(u" |br| ", u"", 1)
                         col_data = f" |prein| {col_data[:-5]} |preout| "
                     row_lst.append(f'"{col_data}"')
@@ -362,7 +361,8 @@ def table_merged_details(table, input_data):
 
         # Write the data to file
         if table_lst:
-            file_name = f"{table[u'output-file']}_{suite_name}.csv"
+            separator = u"" if table[u'output-file'].endswith(u"/") else u"_"
+            file_name = f"{table[u'output-file']}{separator}{suite_name}.csv"
             logging.info(f"      Writing file: {file_name}")
             with open(file_name, u"wt") as file_handler:
                 file_handler.write(u",".join(header) + u"\n")
@@ -628,8 +628,8 @@ def table_perf_comparison(table, input_data):
             for tst_name, tst_data in data[job][str(build)].items():
                 tst_name_mod = _tpc_modify_test_name(tst_name)
                 if (u"across topologies" in table[u"title"].lower() or
-                    (u" 3n-" in table[u"title"].lower() and
-                     u" 2n-" in table[u"title"].lower())):
+                        (u" 3n-" in table[u"title"].lower() and
+                         u" 2n-" in table[u"title"].lower())):
                     tst_name_mod = tst_name_mod.replace(u"2n1l-", u"")
                 if tbl_dict.get(tst_name_mod, None) is None:
                     groups = re.search(REGEX_NIC, tst_data[u"parent"])
@@ -658,8 +658,8 @@ def table_perf_comparison(table, input_data):
                 for tst_name, tst_data in rpl_data[job][str(build)].items():
                     tst_name_mod = _tpc_modify_test_name(tst_name)
                     if (u"across topologies" in table[u"title"].lower() or
-                        (u" 3n-" in table[u"title"].lower() and
-                         u" 2n-" in table[u"title"].lower())):
+                            (u" 3n-" in table[u"title"].lower() and
+                             u" 2n-" in table[u"title"].lower())):
                         tst_name_mod = tst_name_mod.replace(u"2n1l-", u"")
                     if tbl_dict.get(tst_name_mod, None) is None:
                         name = \
@@ -687,8 +687,8 @@ def table_perf_comparison(table, input_data):
             for tst_name, tst_data in data[job][str(build)].items():
                 tst_name_mod = _tpc_modify_test_name(tst_name)
                 if (u"across topologies" in table[u"title"].lower() or
-                    (u" 3n-" in table[u"title"].lower() and
-                     u" 2n-" in table[u"title"].lower())):
+                        (u" 3n-" in table[u"title"].lower() and
+                         u" 2n-" in table[u"title"].lower())):
                     tst_name_mod = tst_name_mod.replace(u"2n1l-", u"")
                 if tbl_dict.get(tst_name_mod, None) is None:
                     groups = re.search(REGEX_NIC, tst_data[u"parent"])
@@ -719,8 +719,8 @@ def table_perf_comparison(table, input_data):
                 for tst_name, tst_data in rpl_data[job][str(build)].items():
                     tst_name_mod = _tpc_modify_test_name(tst_name)
                     if (u"across topologies" in table[u"title"].lower() or
-                        (u" 3n-" in table[u"title"].lower() and
-                         u" 2n-" in table[u"title"].lower())):
+                            (u" 3n-" in table[u"title"].lower() and
+                             u" 2n-" in table[u"title"].lower())):
                         tst_name_mod = tst_name_mod.replace(u"2n1l-", u"")
                     if tbl_dict.get(tst_name_mod, None) is None:
                         name = \
@@ -749,8 +749,8 @@ def table_perf_comparison(table, input_data):
                 for tst_name, tst_data in data[job][str(build)].items():
                     tst_name_mod = _tpc_modify_test_name(tst_name)
                     if (u"across topologies" in table[u"title"].lower() or
-                        (u" 3n-" in table[u"title"].lower() and
-                         u" 2n-" in table[u"title"].lower())):
+                            (u" 3n-" in table[u"title"].lower() and
+                             u" 2n-" in table[u"title"].lower())):
                         tst_name_mod = tst_name_mod.replace(u"2n1l-", u"")
                     if tbl_dict.get(tst_name_mod, None) is None:
                         continue
@@ -903,8 +903,8 @@ def table_perf_comparison_nic(table, input_data):
                     continue
                 tst_name_mod = _tpc_modify_test_name(tst_name)
                 if (u"across topologies" in table[u"title"].lower() or
-                    (u" 3n-" in table[u"title"].lower() and
-                     u" 2n-" in table[u"title"].lower())):
+                        (u" 3n-" in table[u"title"].lower() and
+                         u" 2n-" in table[u"title"].lower())):
                     tst_name_mod = tst_name_mod.replace(u"2n1l-", u"")
                 if tbl_dict.get(tst_name_mod, None) is None:
                     name = f"{u'-'.join(tst_data[u'name'].split(u'-')[:-1])}"
@@ -934,8 +934,8 @@ def table_perf_comparison_nic(table, input_data):
                         continue
                     tst_name_mod = _tpc_modify_test_name(tst_name)
                     if (u"across topologies" in table[u"title"].lower() or
-                        (u" 3n-" in table[u"title"].lower() and
-                         u" 2n-" in table[u"title"].lower())):
+                            (u" 3n-" in table[u"title"].lower() and
+                             u" 2n-" in table[u"title"].lower())):
                         tst_name_mod = tst_name_mod.replace(u"2n1l-", u"")
                     if tbl_dict.get(tst_name_mod, None) is None:
                         name = \
@@ -965,8 +965,8 @@ def table_perf_comparison_nic(table, input_data):
                     continue
                 tst_name_mod = _tpc_modify_test_name(tst_name)
                 if (u"across topologies" in table[u"title"].lower() or
-                    (u" 3n-" in table[u"title"].lower() and
-                     u" 2n-" in table[u"title"].lower())):
+                        (u" 3n-" in table[u"title"].lower() and
+                         u" 2n-" in table[u"title"].lower())):
                     tst_name_mod = tst_name_mod.replace(u"2n1l-", u"")
                 if tbl_dict.get(tst_name_mod, None) is None:
                     name = f"{u'-'.join(tst_data[u'name'].split(u'-')[:-1])}"
@@ -996,8 +996,8 @@ def table_perf_comparison_nic(table, input_data):
                         continue
                     tst_name_mod = _tpc_modify_test_name(tst_name)
                     if (u"across topologies" in table[u"title"].lower() or
-                        (u" 3n-" in table[u"title"].lower() and
-                         u" 2n-" in table[u"title"].lower())):
+                            (u" 3n-" in table[u"title"].lower() and
+                             u" 2n-" in table[u"title"].lower())):
                         tst_name_mod = tst_name_mod.replace(u"2n1l-", u"")
                     if tbl_dict.get(tst_name_mod, None) is None:
                         name = \
@@ -1028,8 +1028,8 @@ def table_perf_comparison_nic(table, input_data):
                         continue
                     tst_name_mod = _tpc_modify_test_name(tst_name)
                     if (u"across topologies" in table[u"title"].lower() or
-                        (u" 3n-" in table[u"title"].lower() and
-                         u" 2n-" in table[u"title"].lower())):
+                            (u" 3n-" in table[u"title"].lower() and
+                             u" 2n-" in table[u"title"].lower())):
                         tst_name_mod = tst_name_mod.replace(u"2n1l-", u"")
                     if tbl_dict.get(tst_name_mod, None) is None:
                         continue