Trending: Fix ipsec
[csit.git] / resources / tools / presentation / generator_tables.py
index acd3024..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}".
@@ -612,20 +612,27 @@ def table_soak_vs_ndr(table, input_data):
         if data_r:
             data_r_mean = mean(data_r)
             item.append(round(data_r_mean / 1000000, 2))
-            item.append(round(stdev(data_r) / 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_c = tbl_dict[tst_name]["cmp-data"]
         if data_c:
             data_c_mean = mean(data_c)
             item.append(round(data_c_mean / 1000000, 2))
-            item.append(round(stdev(data_c) / 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 data_r_mean and data_c_mean is not None:
-            item.append(round(relative_change(data_r_mean, data_c_mean), 2))
+        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
@@ -675,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"])
@@ -818,6 +825,10 @@ def _generate_url(base, testbed, test_name):
     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"
@@ -898,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):
@@ -1067,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"])