Trending: Fix ipsec
[csit.git] / resources / tools / presentation / generator_tables.py
index 887ee72..5c4452d 100644 (file)
@@ -27,7 +27,7 @@ from datetime import datetime as dt
 from datetime import timedelta
 
 from utils import mean, stdev, relative_change, classify_anomalies, \
-    convert_csv_to_pretty_txt
+    convert_csv_to_pretty_txt, relative_change_stdev
 
 
 REGEX_NIC = re.compile(r'\d*ge\dp\d\D*\d*')
@@ -551,7 +551,7 @@ def table_soak_vs_ndr(table, input_data):
             "{0} Stdev [Mpps]".format(table["reference"]["title"]),
             "{0} Throughput [Mpps]".format(table["compare"]["title"]),
             "{0} Stdev [Mpps]".format(table["compare"]["title"]),
-            "Delta [%]"]
+            "Delta [%]", "Stdev of delta [%]"]
         header_str = ",".join(header) + "\n"
     except (AttributeError, KeyError) as err:
         logging.error("The model is invalid, missing parameter: {0}".
@@ -608,21 +608,31 @@ def table_soak_vs_ndr(table, input_data):
     tbl_lst = list()
     for tst_name in tbl_dict.keys():
         item = [tbl_dict[tst_name]["name"], ]
-        data_t = tbl_dict[tst_name]["ref-data"]
-        if data_t:
-            item.append(round(mean(data_t) / 1000000, 2))
-            item.append(round(stdev(data_t) / 1000000, 2))
+        data_r = tbl_dict[tst_name]["ref-data"]
+        if data_r:
+            data_r_mean = mean(data_r)
+            item.append(round(data_r_mean / 1000000, 2))
+            data_r_stdev = stdev(data_r)
+            item.append(round(data_r_stdev / 1000000, 2))
         else:
+            data_r_mean = None
+            data_r_stdev = None
             item.extend([None, None])
-        data_t = tbl_dict[tst_name]["cmp-data"]
-        if data_t:
-            item.append(round(mean(data_t) / 1000000, 2))
-            item.append(round(stdev(data_t) / 1000000, 2))
+        data_c = tbl_dict[tst_name]["cmp-data"]
+        if data_c:
+            data_c_mean = mean(data_c)
+            item.append(round(data_c_mean / 1000000, 2))
+            data_c_stdev = stdev(data_c)
+            item.append(round(data_c_stdev / 1000000, 2))
         else:
+            data_c_mean = None
+            data_c_stdev = None
             item.extend([None, None])
-        if item[-4] is not None and item[-2] is not None and item[-4] != 0:
-            item.append(int(relative_change(float(item[-4]), float(item[-2]))))
-        if len(item) == len(header):
+        if data_r_mean and data_c_mean:
+            delta, d_stdev = relative_change_stdev(
+                data_r_mean, data_c_mean, data_r_stdev, data_c_stdev)
+            item.append(round(delta, 2))
+            item.append(round(d_stdev, 2))
             tbl_lst.append(item)
 
     # Sort the table according to the relative change
@@ -672,7 +682,7 @@ def table_performance_trending_dashboard(table, input_data):
     for job, builds in table["data"].items():
         for build in builds:
             for tst_name, tst_data in data[job][str(build)].iteritems():
-                if tst_name.lower() in table["ignore-list"]:
+                if tst_name.lower() in table.get("ignore-list", list()):
                     continue
                 if tbl_dict.get(tst_name, None) is None:
                     groups = re.search(REGEX_NIC, tst_data["parent"])
@@ -808,9 +818,17 @@ def _generate_url(base, testbed, test_name):
             file_name = "vm_vhost_ip4"
             feature = "-base"
 
+    elif "ipsecbasetnlsw" in test_name:
+        file_name = "ipsecsw"
+        feature = "-base-scale"
+
     elif "ipsec" in test_name:
         file_name = "ipsec"
         feature = "-base-scale"
+        if "hw-" in test_name:
+            file_name = "ipsechw"
+        elif "sw-" in test_name:
+            file_name = "ipsecsw"
 
     elif "ethip4lispip" in test_name or "ethip4vxlan" in test_name:
         file_name = "ip4_tunnels"
@@ -891,8 +909,8 @@ def _generate_url(base, testbed, test_name):
     elif "8t4c" in test_name:
         anchor += "8t4c"
 
-    return url + file_name + '-' + testbed + '-' + nic + framesize + feature + \
-           anchor + feature
+    return url + file_name + '-' + testbed + '-' + nic + framesize + \
+        feature.replace("-int", "").replace("-tnl", "") + anchor + feature
 
 
 def table_performance_trending_dashboard_html(table, input_data):
@@ -1060,7 +1078,7 @@ def table_failed_tests(table, input_data):
         for build in builds:
             build = str(build)
             for tst_name, tst_data in data[job][build].iteritems():
-                if tst_name.lower() in table["ignore-list"]:
+                if tst_name.lower() in table.get("ignore-list", list()):
                     continue
                 if tbl_dict.get(tst_name, None) is None:
                     groups = re.search(REGEX_NIC, tst_data["parent"])