Delete testcase of rubbos and vstf.
[bottlenecks.git] / testsuites / vstf / vstf_scripts / vstf / controller / reporters / report / data_factory.py
diff --git a/testsuites/vstf/vstf_scripts/vstf/controller/reporters/report/data_factory.py b/testsuites/vstf/vstf_scripts/vstf/controller/reporters/report/data_factory.py
deleted file mode 100644 (file)
index ded94eb..0000000
+++ /dev/null
@@ -1,508 +0,0 @@
-##############################################################################
-# Copyright (c) 2015 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-from vstf.controller.database.dbinterface import DbManage
-import vstf.common.constants as cst
-
-
-class DataProvider(object):
-
-    def __init__(self, taskid, dbase):
-        self._dbase = dbase
-        self._taskid = taskid
-
-
-class CommonData(DataProvider):
-
-    def get_taskname(self):
-        return self._dbase.query_taskname(self._taskid)
-
-    def get_systeminfo(self):
-        systable = [
-            ['Host', 'Server', 'CPU', 'MEM', 'NIC', 'OS'],
-        ]
-        query = self._dbase.query_task_host_list(self._taskid)
-        query = map(lambda x: list(x), query)
-        #    rows = len(query)
-        #    cols = len(zip(*query))
-        #    for i in range(rows):
-        #        for j in range(cols):
-        #            query[i][j] = query[i][j].replace('\",','\"\n')
-        systable += query
-        systable = map(lambda x: list(x), zip(*systable))
-        return systable
-
-    def get_introduct_tabledata(self):
-        result = [
-            ["Type", "Case", "Name", "Direction", "Configure"]
-        ]
-        query = self._dbase.query_caseinfo()
-        result += map(lambda x: list(x), query)
-        return result
-
-    def get_scenariolist(self):
-        query = self._dbase.query_scenariolist(self._taskid)
-        result = map(lambda x: list(x), zip(*query))
-        if result:
-            return result[0]
-        else:
-            return result
-
-    def is_scenario_start(self):
-        scenarioList = self.get_scenariolist()
-        print "scenarioList: ", scenarioList
-        if scenarioList:
-            return True
-        return False
-
-    def get_casename(self, case):
-        return self._dbase.query_casename(case)
-
-    def get_casefigure(self, case, tools):
-        return self._dbase.query_casefigure(case, tools)
-
-
-class ScenarioData(DataProvider):
-
-    def __init__(self, taskid, dbase, scenario):
-        print "ScenarioData in"
-        DataProvider.__init__(self, taskid, dbase)
-        self._scenario = scenario
-
-    def get_test_tools(self, case):
-        query = self._dbase.query_casetools(self._taskid, case)
-        result = map(lambda x: list(x), query)
-        if result:
-            return result[0][0]
-        else:
-            return result
-
-    def get_caselist(self):
-        query = self._dbase.query_caselist(self._taskid, self._scenario)
-        result = map(lambda x: list(x), zip(*query))
-        if result:
-            return result[0]
-        else:
-            return result
-
-    def get_testlist(self):
-        query = self._dbase.query_testlist(self._taskid, self._scenario)
-        result = []
-        for item in query:
-            result.append(item.__dict__)
-        return query
-
-    def is_provider_start(self, case, provider):
-        count = self._dbase.query_case_provider_count(
-            self._taskid, case, provider)
-        if count:
-            return True
-        return False
-
-    def is_type_provider_start(self, case, provider, ptype):
-        count = self._dbase.query_case_type_provider_count(
-            self._taskid, case, provider, ptype)
-        if count:
-            return True
-        return False
-
-    def is_type_start(self, case, ptype):
-        count = self._dbase.query_case_type_count(self._taskid, case, ptype)
-        if count:
-            return True
-        return False
-
-    def is_throughput_start(self, case):
-        test_type = "throughput"
-        return self.is_type_start(case, test_type)
-
-    def is_frameloss_start(self, case):
-        test_type = "frameloss"
-        return self.is_type_start(case, test_type)
-
-    def is_latency_start(self, case):
-        test_type = "latency"
-        return self.is_type_start(case, test_type)
-
-    def get_summary_throughput_data(self, case, provider):
-        test_type = "throughput"
-        return self.get_summary_tabledata(case, provider, test_type)
-
-    def get_summary_frameLoss_data(self, case, provider):
-        test_type = "frameloss"
-        return self.get_summary_tabledata(case, provider, test_type)
-
-    def get_summary_tabledata(
-            self,
-            case,
-            provider,
-            test_type,
-            table_type='pdf'):
-        table_head = []
-        table_body = []
-        type_title = {
-            "frameloss": "Load",
-            "throughput": "Load"
-        }
-        tools = self.get_test_tools(case)
-        if "spirent" in tools:
-            table_body = self._dbase.query_summary_table(
-                self._taskid, case, provider, test_type)
-            if 'pdf' == table_type:
-                table_head = [["FrameSize (byte)",
-                               test_type,
-                               "",
-                               "",
-                               "",
-                               "Latency(uSec)",
-                               "",
-                               ""],
-                              ["",
-                               "    Mpps    ",
-                               "   " + type_title[test_type] + " (%)   ",
-                               "CPU Used (%)",
-                               " Mpps/Ghz ",
-                               " Min ",
-                               " Max ",
-                               " Avg "]]
-            else:
-                table_head = [["FrameSize (byte)",
-                               "    Mpps    ",
-                               "   " + type_title[test_type] + " (%)   ",
-                               "CPU Used (%)",
-                               " Mpps/Ghz ",
-                               "MinLatency(uSec)",
-                               "MaxLatency(uSec)",
-                               "AvgLatency(uSec)"],
-                              ]
-        else:
-            table_body = self._dbase.query_summary_simpletable(
-                self._taskid, case, provider, test_type)
-            if 'pdf' == table_type:
-                table_head = [["FrameSize (byte)",
-                               test_type,
-                               "",
-                               "",
-                               "",
-                               "Latency(uSec)"],
-                              ["",
-                               "    Mpps    ",
-                               "   " + type_title[test_type] + " (%)",
-                               "CPU Used (%)",
-                               " Mpps/Ghz ",
-                               "  Avg  "]]
-            else:
-                table_head = [["FrameSize (byte)",
-                               "    Mpps    ",
-                               "   " + type_title[test_type] + " (%)   ",
-                               "CPU Used (%)",
-                               " Mpps/Ghz ",
-                               "AvgLatency(uSec)"],
-                              ]
-        return table_head + table_body
-
-    def get_ratedata(self, testid, test_type):
-        table_head = [["FrameSize (bytes)",
-                       "Bandwidth(Mpps)",
-                       "Load (%)",
-                       "CPU Usage(%)",
-                       "Mpps/Ghz",
-                       "AvgLatency(uSec)"],
-                      ]
-        query = self._dbase.query_testdata(testid, test_type)
-        table_body = []
-        for item in query:
-            table_body.append([item.AvgFrameSize,
-                               item.Bandwidth,
-                               item.OfferedLoad,
-                               item.CPU,
-                               item.MppspGhz,
-                               item.AverageLatency])
-        result = []
-        if table_body:
-            result = table_head + table_body
-        return result
-
-    def get_tabledata(self, case, test_type, item):
-        type_dict = {
-            "FrameSize": "FrameSize (byte)",
-            "fastlink": "fastlink",
-            "l2switch": "l2switch",
-            "rdp": "kernel rdp",
-            None: "ovs",
-            "line": "line speed"
-        }
-        item_dict = {
-            "Percent": "  ",
-            "Mpps": "   ",
-            "Avg": "   ",
-        }
-        table = []
-        line_speed = 20.0 if case in ["Tn-2v", "Tn-2"] else 10.0
-
-        for provider in cst.PROVIDERS:
-            if self.is_provider_start(case, provider):
-                if item == 'Percent':
-                    query = self._dbase.query_load(
-                        self._taskid, case, provider, test_type)
-                elif item == 'Mpps':
-                    query = self._dbase.query_bandwidth(
-                        self._taskid, case, provider, test_type)
-                else:
-                    query = self._dbase.query_avglatency(
-                        self._taskid, case, provider, test_type)
-                query = map(lambda x: list(x), zip(*query))
-                if query:
-                    table_head = [[type_dict["FrameSize"]] +
-                                  map(lambda x: "  %4d  " % (x), query[0])]
-                    if item == "Avg":
-                        data = map(
-                            lambda x: item_dict[item] + "%.1f" %
-                            x + item_dict[item], query[1])
-                    else:
-                        data = map(
-                            lambda x: item_dict[item] + "%.2f" %
-                            x + item_dict[item], query[1])
-                    if item == "Mpps":
-                        line_table = map(lambda x: "%.2f" % (
-                            line_speed * 1000 / (8 * (x + 20))), query[0])
-                    table.append([type_dict[provider]] + data)
-        if table:
-            if item == "Mpps":
-                table.append([type_dict["line"]] + line_table)
-            table = table_head + table
-        return table
-
-    def get_frameloss_tabledata(self, case, test_type):
-        item = "Percent"
-        table = self.get_tabledata(case, test_type, item)
-        return table
-
-    def get_frameloss_chartdata(self, case, test_type):
-        result = self.get_frameloss_tabledata(case, test_type)
-        result = map(list, zip(*result))
-        return result
-
-    def get_framerate_tabledata(self, case, test_type):
-        item = "Mpps"
-        table = self.get_tabledata(case, test_type, item)
-        return table
-
-    def get_framerate_chartdata(self, case, test_type):
-        result = self.get_framerate_tabledata(case, test_type)
-        result = map(list, zip(*result))
-        return result
-
-    def get_latency_tabledata(self, case):
-        test_type = "latency"
-        item = "Avg"
-        table = self.get_tabledata(case, test_type, item)
-        return table
-
-    def get_latency_chartdata(self, case):
-        result = self.get_latency_tabledata(case)
-        result = map(list, zip(*result))
-        return result
-
-    def get_latency_bardata(self, case):
-        table_data = self.get_latency_tabledata(case)
-        result = []
-        if table_data:
-            ytitle = "Average Latency (uSec)"
-            category_names = map(lambda x: "FS:%4d" %
-                                 int(float(x)) + "LOAD:50", table_data[0][1:])
-            bar_ = map(lambda x: x[0], table_data[1:])
-            data = map(lambda x: x[1:], table_data[1:])
-            result = [ytitle, category_names, bar_, data]
-        return result
-
-    def get_bardata(self, case, provider, test_type):
-        if test_type == "latency":
-            query = self._dbase.query_avglatency(
-                self._taskid, case, provider, test_type)
-            item = "Avg"
-        else:
-            query = self._dbase.query_load(
-                self._taskid, case, provider, test_type)
-            item = "Percent"
-
-        title_dict = {
-            "Avg": "Latency (uSec)",
-            "Percent": test_type + " (%)"
-        }
-        name_dict = {
-            "Avg": " LOAD:50",
-            "Percent": " OF:100 "
-        }
-        color_dict = {
-            "Avg": "latency",
-            "Percent": "loss"
-        }
-        ytitle = title_dict[item]
-        query = map(lambda x: list(x), zip(*query))
-        result = []
-        if query:
-            category_names = map(
-                lambda x: "FS:%4d" %
-                x + name_dict[item], query[0])
-            data = query[1:]
-            bar_ = [color_dict[item]]
-            result = [ytitle, category_names, bar_, data]
-        return result
-
-
-class TaskData(object):
-
-    def __init__(self, taskid, dbase):
-        self.__common = CommonData(taskid, dbase)
-        scenario_list = self.__common.get_scenariolist()
-        scenario_dic = {}
-        for scenario in scenario_list:
-            scenario_dic[scenario] = ScenarioData(taskid, dbase, scenario)
-        self.__dict__.update(scenario_dic)
-
-    @property
-    def common(self):
-        return self.__common
-
-
-class HistoryData(DataProvider):
-
-    def get_data(self, task_list, case, provider, ttype, item):
-        """
-        @provider  in ["fastlink", "rdp", "l2switch", ""]
-        @ttype in ["throughput", "frameloss", "latency"]
-        @item in ["avg", "ratep", "load"]
-        """
-        table = []
-        table_head = []
-        datas = []
-        sizes = []
-        for taskid in task_list:
-            if item == 'ratep':
-                query = self._dbase.query_bandwidth(
-                    taskid, case, provider, ttype)
-            else:
-                query = self._dbase.query_avglatency(
-                    taskid, case, provider, ttype)
-
-            if query:
-                data = {}
-                for size, value in query:
-                    data[size] = value
-                sizes.extend(data.keys())
-                sizes = sorted({}.fromkeys(sizes).keys())
-                datas.append({taskid: data})
-
-        result = []
-        for data in datas:
-            print data
-            taskid = data.keys()[0]
-            data_th = self._dbase.query_taskdate(taskid)
-            testdata = data[taskid]
-            item = [data_th]
-            for size in sizes:
-                item.append(str(testdata.get(size, '')))
-            result.append(item)
-
-        if result:
-            head_th = "FrameSize (byte)"
-            table_head = [[head_th] + map(lambda x: "  %4d  " % (x), sizes)]
-            table = table_head + result
-
-        return table
-
-    def get_tasklist(self, count=5):
-        task_list = []
-        query = self._dbase.query_tasklist()
-        if query:
-            for item in query:
-                if item.TaskID <= self._taskid:
-                    task_list.append(item.TaskID)
-
-        task_list = task_list[-count:]
-        return task_list
-
-    def get_history_info(self, case):
-        provider_dict = {
-            "fastlink": "Fast Link ",
-            "l2switch": "L2Switch ",
-            "rdp": "Kernel RDP "}
-        ttype_dict = {
-            "throughput": "Throughput Testing ",
-            "frameloss": "Frame Loss Testing ",
-            "latency": "Latency Testing "
-        }
-
-        items_dict = {
-            "ratep": "RX Frame Rate(Mpps) ",
-            "avg": "Average Latency (uSec) "
-        }
-
-        task_list = self.get_tasklist()
-        result = []
-
-        for ttype in cst.TTYPES:
-            content = {}
-            if ttype == "latency":
-                item = "avg"
-            else:
-                item = "ratep"
-
-            for provider in cst.PROVIDERS:
-                table_data = self.get_data(
-                    task_list, case, provider, ttype, item)
-                if table_data:
-                    data = {
-                        "title": provider_dict[provider] + items_dict[item],
-                        "data": table_data
-                    }
-                    content["title"] = ttype_dict[ttype]
-                    content.setdefault("data", [])
-                    content["data"].append(data)
-            if content:
-                result.append(content)
-        print result
-        return result
-
-
-def unit_test():
-    dbase = DbManage()
-    taskid = dbase.get_last_taskid()
-    hdata = HistoryData(taskid, dbase)
-    task_list = hdata.get_tasklist()
-
-    cdata = CommonData(taskid, dbase)
-    scenario_list = cdata.get_scenariolist()
-    print scenario_list
-
-    scenario = "Tn"
-    sdata = ScenarioData(taskid, dbase, scenario)
-
-    case_list = sdata.get_caselist()
-    print case_list
-
-    case = "Tn-1"
-
-    ttypes = ["throughput", "frameloss"]
-    items = ["ratep", "load"]
-
-    for provider in cst.PROVIDERS:
-        for ttype in ttypes:
-            for item in items:
-                print provider
-                print ttype
-                print item
-                print hdata.get_data(task_list, case, provider, ttype, item)
-
-    hdata.get_history_info(case)
-
-
-if __name__ == '__main__':
-    unit_test()