diff options
Diffstat (limited to 'testsuites/vstf/vstf_scripts/vstf/controller/database')
4 files changed, 0 insertions, 1094 deletions
diff --git a/testsuites/vstf/vstf_scripts/vstf/controller/database/__init__.py b/testsuites/vstf/vstf_scripts/vstf/controller/database/__init__.py deleted file mode 100644 index 83b8d15d..00000000 --- a/testsuites/vstf/vstf_scripts/vstf/controller/database/__init__.py +++ /dev/null @@ -1,8 +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 -############################################################################## diff --git a/testsuites/vstf/vstf_scripts/vstf/controller/database/constants.py b/testsuites/vstf/vstf_scripts/vstf/controller/database/constants.py deleted file mode 100644 index e5070122..00000000 --- a/testsuites/vstf/vstf_scripts/vstf/controller/database/constants.py +++ /dev/null @@ -1,63 +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 -############################################################################## - -SCENARIO_NAME_LEN = 16 -DESC_LEN = 256 -FIGURE_PATH_LEN = 128 - -CASE_TAG_LEN = 16 -CASE_NAME_LEN = 128 -DIRECTION_LEN = 128 -CONF_LEN = 256 - -HOST_NAME_LEN = 32 - -CPU_INFO_LEN = 1024 - -NORMAL_VAR_LEN = 32 -NORMAL_VAR_LEN1 = 64 - -SWITCH_LEN = 16 -PROTOCOL_LEN = 16 -PROVIDER_LEN = 16 - -TOOLS_LEN = 32 -TYPE_LEN = 16 - -EXT_INFO_LEN = 256 -DBPATH = "/opt/vstf/vstf.db" -# CaseTag, ScenarioName, CaseName, FigurePath, Description, Direction, Configure -CASE_INFO_LIST = [ - ['Ti-1', 'Ti', 'Ti_VM_RX_Tester-VM', 'res/', ' ', 'Tester->VM', 'tx', 'w/,wo VLAN'], - ['Ti-2', 'Ti', 'Ti_VM_TX_VM-Tester', 'res/', ' ', 'VM->Tester', 'rx', 'w/,wo VLAN'], - ['Ti-3', 'Ti', 'Ti_VM_RXTX_VM-Tester', 'res/', ' ', 'Tester<->VM', 'rxtx', 'w/,wo VLAN'], - ['Ti-4', 'Ti', 'Ti_VM_RX_Tester-VM_VXLAN', 'res/', ' ', 'Tester->VM', 'tx', 'VXLAN'], - ['Ti-5', 'Ti', 'Ti_VM_TX_VM-Tester_VXLAN', 'res/', ' ', 'VM->Tester', 'rx', 'VXLAN'], - ['Ti-6', 'Ti', 'Ti_VM_RXTX_VM-Tester_VXLAN', 'res/', ' ', 'Tester<->VM', 'rxtx', 'VXLAN'], - ['Tu-1', 'Tu', 'Tu_VM_RX_VM-VM', 'res/', ' ', 'Tester->VM', 'tx', 'w/,wo VLAN'], - ['Tu-2', 'Tu', 'Tu_VM_TX_VM-VM', 'res/', ' ', 'VM->Tester', 'rx', 'w/,wo VLAN'], - ['Tu-3', 'Tu', 'Tu_VM_RXTX_VM-VM', 'res/', ' ', 'Tester<->VM', 'rxtx', 'w/,wo VLAN'], - ['Tu-4', 'Tu', 'Tu_VM_RX_VM-VM_VXLAN', 'res/', ' ', 'Tester->VM', 'tx', 'VXLAN'], - ['Tu-5', 'Tu', 'Tu_VM_TX_VM-VM_VXLAN', 'res/', ' ', 'VM->Tester', 'rx', 'VXLAN'], - ['Tu-6', 'Tu', 'Tu_VM_RXTX_VM-VM_VXLAN', 'res/', ' ', 'VM<->Tester', 'rxtx', 'VXLAN'], - ['Tn-1', 'Tn', 'Tn_VSW_FWD_Tester-Tester', 'res/', ' ', 'Tester->Tester', 'tx', 'w/,wo VLAN'], - ['Tn-2', 'Tn', 'Tn_VSW_FWD-BI_Tester-Tester', 'res/', ' ', 'Tester<->Tester', 'rxtx', 'w/,wo VLAN'], - ['Tn-3', 'Tn', 'Tn_VSW_FWD_Tester-Tester_VXLAN', 'res/', ' ', 'Tester->Tester', 'tx', 'VXLAN'], - ['Tn-4', 'Tn', 'Tn_VSW_FWD-BI_Tester-Tester_VXLAN', 'res/', ' ', 'Tester<->Tester', 'rxtx', 'VXLAN'], - ['Tnv-1', 'Tnv', 'TnV_VSW_FWD_Tester-Tester', 'res/', ' ', 'Tester->Tester', 'tx', 'w/,wo VLAN'], - ['Tnv-2', 'Tnv', 'TnV_VSW_FWD-BI_Tester-Tester', 'res/', ' ', 'Tester<->Tester', 'rxtx', 'w/,wo VLAN'], - ['Tnv-3', 'Tnv', 'TnV_VSW_FWD_Tester-Tester_VXLAN', 'res/', ' ', 'Tester->Tester', 'tx', 'VXLAN'], - ['Tnv-4', 'Tnv', 'TnV_VSW_FWD-BI_Tester-Tester_VXLAN', 'res/', ' ', 'Tester<->Tester', 'rxtx', 'VXLAN'] -] -SCENARIO_INFO_LIST = [ - ['Ti', 'res/', ' '], - ['Tu', 'res/', ' '], - ['Tn', 'res/', ' '], - ['Tnv', 'res/', ' '], -] diff --git a/testsuites/vstf/vstf_scripts/vstf/controller/database/dbinterface.py b/testsuites/vstf/vstf_scripts/vstf/controller/database/dbinterface.py deleted file mode 100644 index a2aad9e8..00000000 --- a/testsuites/vstf/vstf_scripts/vstf/controller/database/dbinterface.py +++ /dev/null @@ -1,718 +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 -############################################################################## - -import os -import logging - -from sqlalchemy import create_engine -from sqlalchemy.orm import sessionmaker -from sqlalchemy import and_ -import vstf.controller.database.tables as table -from vstf.controller.database import constants as const - -LOG = logging.getLogger(__name__) - -""" -@event.listens_for(Engine, "before_cursor_execute") -def before_cursor_execute(conn, cursor, statement, - parameters, context, executemany): - conn.info.setdefault('query_start_time', []).append(time.time()) - logging.debug("Start Query: %s", statement) -@event.listens_for(Engine, "after_cursor_execute") -def after_cursor_execute(conn, cursor, statement, - parameters, context, executemany): - total = time.time() - conn.info['query_start_time'].pop(-1) - logging.debug("Query Complete!") - logging.debug("Total Time: %f", total)""" - - -class DbManage(object): - - def __init__(self, db_name=const.DBPATH): - db_exists = os.path.exists(db_name) - try: - self._engine = create_engine('sqlite:///%s' % db_name, echo=False) - db_session = sessionmaker(bind=self._engine) - self._session = db_session() - except Exception as e: - raise e - - # if the db is new , create all tables and init static tables - if not db_exists: - self.create_tables() - self.init_tables() - - def __delete__(self): - self._engine.close_all() - - def create_tables(self): - table.Base.metadata.create_all(self._engine) - self._session.commit() - - def drop_tables(self): - table.Base.metadata.drop_all(self._engine) - self._session.commit() - - def init_tables(self): - self.init_casetable() - self.init_scenario_table() - self._session.commit() - - def init_scenario_table(self): - items = [] - for values in const.SCENARIO_INFO_LIST: - item = table.TblScenarioInfo(ScenarioName=values[0], - FigurePath=values[1], - Description=values[2]) - items.append(item) - self._session.add_all(items) - - # Single TblCaseInfo API - def init_casetable(self): - items = [] - for values in const.CASE_INFO_LIST: - item = table.TblCaseInfo(CaseTag=values[0], - ScenarioName=values[1], - CaseName=values[2], - FigurePath=values[3], - Description=values[4], - Direction=values[5], - Directiontag=values[6], - Configure=values[7]) - items.append(item) - self._session.add_all(items) - - def query_caseinfo(self): - query = self._session.query(table.TblCaseInfo.ScenarioName, - table.TblCaseInfo.CaseTag, - table.TblCaseInfo.CaseName, - table.TblCaseInfo.Direction, - table.TblCaseInfo.Configure) - return query.all() - - def query_case(self, casetag): - query = self._session.query(table.TblCaseInfo.ScenarioName, - table.TblCaseInfo.Directiontag) - return query.first() - - # Single TblTaskList API - def get_last_taskid(self): - query = self._session.query(table.TblTaskList.TaskID) - if query: - return query.all()[-1][0] - else: - return 0 - - def query_tasklist(self): - query = self._session.query(table.TblTaskList) - return query.all() - - def query_taskdate(self, taskid): - query = self._session.query(table.TblTaskList.Date).filter(and_( - table.TblTaskList.TaskID == taskid)) - result = "" - if query: - result += query.first()[0] - return result - - def query_taskname(self, taskid): - query = self._session.query(table.TblTaskList.TaskName).filter(and_( - table.TblTaskList.TaskID == taskid)) - result = "" - if query: - result += query.first()[0] - return result - - def create_task(self, name, date, desc): - try: - item = table.TblTaskList(name, date, desc) - self._session.add(item) - self._session.commit() - except Exception: - return -1 - - return self.get_last_taskid() - - # Single TblHostInfo API - def add_host_2task(self, taskid, name, machine, cpu, men, nic, os): - """All var except task must be string""" - item = table.TblHostInfo(taskid, name, machine, cpu, men, nic, os) - - self._session.add(item) - self._session.commit() - - def query_task_host_list(self, taskid): - query = self._session.query(table.TblHostInfo.HostName, - table.TblHostInfo.Server, - table.TblHostInfo.CPU, - table.TblHostInfo.MEM, - table.TblHostInfo.NIC, - table.TblHostInfo.OS).filter( - table.TblHostInfo.TaskID == taskid) - return query.all() - - # Single TblTestList API - def get_last_testid(self): - query = self._session.query(table.TblTestList.TestID) - print query.all() - if query: - return query.all()[-1][0] - else: - return 0 - - def add_test_2task( - self, - task, - case, - protocol, - typ, - switch, - provider, - tool): - try: - item = table.TblTestList( - task, case, protocol, typ, switch, provider, tool) - self._session.add(item) - self._session.commit() - except Exception: - return -1 - - return self.get_last_testid() - - def get_test_type(self, testid): - query = self._session.query(table.TblTestList.Type).filter( - table.TblTestList.TestID == testid) - return query.first() - - def add_extent_2task(self, task, name, content, description): - item = table.TblEXTInfo(task, name, content, description) - self._session.add(item) - self._session.commit() - - def add_data_2test(self, testid, data): - """ - :data example {'64':{ - 'AvgFrameSize':0 - 'OfferedLoad':0 - 'PercentLoss':0 - 'Bandwidth':0 - 'MinimumLatency':0 - 'MaximumLatency':0 - 'AverageLatency':0 - 'TxFrameCount':0 - 'RxFrameCount':0 - 'Duration':0 - 'CPU':0 - 'MppspGhz':0 - }} - """ - ptype = self.get_test_type(testid) - instance_map = { - 'throughput': table.TblThroughput, - 'frameloss': table.TblFrameloss, - 'latency': table.TblLatency - } - - if ptype and ptype[0] not in instance_map: - print "cant find this test(id=%d)" % (testid) - return False - - test_table_instance = instance_map[ptype[0]] - for pktlen in data.iterkeys(): - args = data.get(pktlen) - query = self._session.query(test_table_instance).filter(and_( - test_table_instance.TestID == testid, - test_table_instance.AvgFrameSize == pktlen)) - if query.all(): - data_dict = {} - for key, value in data.items(): - if key in test_table_instance.__dict__: - data_dict[test_table_instance.__dict__[key]] = value - query.update(data_dict) - else: - print args - tester = test_table_instance(testid, pktlen, **args) - self._session.add(tester) - self._session.commit() - - def query_tasks(self): - result = [] - ret = self._session.query(table.TblTaskList) - if ret: - for tmp in ret.all(): - result.append( - [tmp.TaskID, tmp.TaskName, tmp.Date, tmp.EXTInfo]) - return result - - def query_all_task_id(self): - query = self._session.query(table.TblTaskList.TaskID) - if query: - return query.all() - else: - return [] - - def get_caseinfo(self): - query = self._session.query(table.TblCaseInfo.ScenarioName, - table.TblCaseInfo.CaseTag, - table.TblCaseInfo.CaseName, - table.TblCaseInfo.Direction, - table.TblCaseInfo.Configure) - return query.all() - - def query_scenario(self, casetag): - query = self._session.query( - table.TblCaseInfo.ScenarioName).filter( - table.TblCaseInfo.CaseTag == casetag) - ret = "" - if query and query.first(): - ret = query.first()[0] - return ret - - def query_casefigure(self, casetag, tools): - query = self._session.query(table.TblCaseInfo.FigurePath).filter(and_( - table.TblCaseInfo.CaseTag == casetag)) - result = "" - if query: - result += query.first()[0] - print tools, casetag - result += tools + '/' + casetag + '.jpg' - return result - - def query_casename(self, casetag): - query = self._session.query(table.TblCaseInfo.CaseName).filter(and_( - table.TblCaseInfo.CaseTag == casetag)) - result = "" - if query: - result += query.first()[0] - return result - - # Single TblTestList API - - def query_caselist(self, taskid, scenario): - query = self._session.query( - table.TblTestList.CaseTag).filter( - and_( - table.TblTestList.CaseTag == table.TblCaseInfo.CaseTag, - table.TblCaseInfo.ScenarioName == scenario, - table.TblTestList.TaskID == taskid)).group_by( - table.TblCaseInfo.CaseTag) - return query.all() - - def query_testlist(self, taskid, scenario): - """ - - :rtype : object - """ - query = self._session.query(table.TblTestList).filter(and_( - table.TblTestList.CaseTag == table.TblCaseInfo.CaseTag, - table.TblCaseInfo.ScenarioName == scenario, - table.TblTestList.TaskID == taskid)) - return query.all() - - def query_casetool(self, taskid, casetag, provider, ptype): - query = self._session.query(table.TblTestList.Tools).filter(and_( - table.TblTestList.TaskID == taskid, - table.TblTestList.CaseTag == casetag, - table.TblTestList.Provider == provider, - table.TblTestList.Type == ptype)) - return query.all() - - def query_casetools(self, taskid, casetag): - query = self._session.query( - table.TblTestList.Tools).filter( - and_( - table.TblTestList.CaseTag == casetag, - table.TblTestList.TaskID == taskid)).group_by( - table.TblTestList.Tools) - return query.all() - - def query_scenariolist(self, taskid): - query = self._session.query( - table.TblCaseInfo.ScenarioName).filter( - and_( - table.TblTestList.CaseTag == table.TblCaseInfo.CaseTag, - table.TblTestList.TaskID == taskid)).group_by( - table.TblCaseInfo.ScenarioName) - return query.all() - - def query_throughput_load(self, taskid, casetag, provider): - ptype = 'throughput' - query = self._session.query( - table.TblThroughput.AvgFrameSize, - table.TblThroughput.OfferedLoad).filter( - and_( - table.TblTestList.TaskID == taskid, - table.TblTestList.CaseTag == casetag, - table.TblTestList.Provider == provider, - table.TblTestList.Type == ptype, - table.TblTestList.TestID == table.TblThroughput.TestID)) - return query.all() - - def query_throughput_bandwidth(self, taskid, casetag, provider): - ptype = 'throughput' - query = self._session.query( - table.TblThroughput.AvgFrameSize, - table.TblThroughput.Bandwidth).filter( - and_( - table.TblTestList.TaskID == taskid, - table.TblTestList.CaseTag == casetag, - table.TblTestList.Provider == provider, - table.TblTestList.Type == ptype, - table.TblTestList.TestID == table.TblThroughput.TestID)) - return query.all() - - def query_throughput_table(self, taskid, casetag, provider): - ptype = 'throughput' - query = self._session.query( - table.TblThroughput.AvgFrameSize, - table.TblThroughput.Bandwidth, - table.TblThroughput.OfferedLoad, - table.TblThroughput.CPU, - table.TblThroughput.MppspGhz, - table.TblThroughput.MinimumLatency, - table.TblThroughput.MaximumLatency, - table.TblThroughput.AverageLatency, - ).filter( - and_( - table.TblTestList.TaskID == taskid, - table.TblTestList.CaseTag == casetag, - table.TblTestList.Provider == provider, - table.TblTestList.Type == ptype, - table.TblTestList.TestID == table.TblThroughput.TestID)) - return query.all() - - def query_throughput_simpletable(self, taskid, casetag, provider): - ptype = 'throughput' - query = self._session.query( - table.TblThroughput.AvgFrameSize, - table.TblThroughput.Bandwidth, - table.TblThroughput.OfferedLoad, - table.TblThroughput.CPU, - table.TblThroughput.MppspGhz, - table.TblThroughput.AverageLatency, - ).filter( - and_( - table.TblTestList.TaskID == taskid, - table.TblTestList.CaseTag == casetag, - table.TblTestList.Provider == provider, - table.TblTestList.Type == ptype, - table.TblTestList.TestID == table.TblThroughput.TestID)) - return query.all() - - def query_testdata(self, testid, ptype): - obj = getattr(table, "Tbl%s" % (ptype.title())) - query = self._session.query(obj).filter(obj.TestID == testid) - return query.all() - - def query_throughput_avg(self, taskid, casetag, provider): - ptype = 'throughput' - query = self._session.query( - table.TblThroughput.AvgFrameSize, - table.TblThroughput.AverageLatency).filter( - and_( - table.TblTestList.TaskID == taskid, - table.TblTestList.CaseTag == casetag, - table.TblTestList.Provider == provider, - table.TblTestList.Type == ptype, - table.TblTestList.TestID == table.TblThroughput.TestID)) - return query.all() - - def query_frameloss_bandwidth(self, taskid, casetag, provider): - ptype = 'frameloss' - query = self._session.query( - table.TblFrameloss.AvgFrameSize, - table.TblFrameloss.Bandwidth).filter( - and_( - table.TblTestList.TaskID == taskid, - table.TblTestList.CaseTag == casetag, - table.TblTestList.Provider == provider, - table.TblTestList.Type == ptype, - table.TblTestList.TestID == table.TblFrameloss.TestID)) - return query.all() - - def query_frameloss_load(self, taskid, casetag, provider): - ptype = 'frameloss' - query = self._session.query( - table.TblFrameloss.AvgFrameSize, - table.TblFrameloss.OfferedLoad).filter( - and_( - table.TblTestList.TaskID == taskid, - table.TblTestList.CaseTag == casetag, - table.TblTestList.Provider == provider, - table.TblTestList.Type == ptype, - table.TblTestList.TestID == table.TblFrameloss.TestID)) - return query.all() - - def query_frameloss_table(self, taskid, casetag, provider): - ptype = 'frameloss' - query = self._session.query( - table.TblFrameloss.AvgFrameSize, - table.TblFrameloss.Bandwidth, - table.TblFrameloss.OfferedLoad, - table.TblFrameloss.CPU, - table.TblFrameloss.MppspGhz, - table.TblFrameloss.MinimumLatency, - table.TblFrameloss.MaximumLatency, - table.TblFrameloss.AverageLatency).filter( - and_( - table.TblTestList.TaskID == taskid, - table.TblTestList.CaseTag == casetag, - table.TblTestList.Provider == provider, - table.TblTestList.Type == ptype, - table.TblTestList.TestID == table.TblFrameloss.TestID)) - return query.all() - - def query_frameloss_simpletable(self, taskid, casetag, provider): - ptype = 'frameloss' - query = self._session.query( - table.TblFrameloss.AvgFrameSize, - table.TblFrameloss.Bandwidth, - table.TblFrameloss.OfferedLoad, - table.TblFrameloss.CPU, - table.TblFrameloss.MppspGhz, - table.TblFrameloss.AverageLatency).filter( - and_( - table.TblTestList.TaskID == taskid, - table.TblTestList.CaseTag == casetag, - table.TblTestList.Provider == provider, - table.TblTestList.Type == ptype, - table.TblTestList.TestID == table.TblFrameloss.TestID)) - return query.all() - - def query_frameloss_avg(self, taskid, casetag, provider): - ptype = 'frameloss' - query = self._session.query( - table.TblFrameloss.AvgFrameSize, - table.TblFrameloss.AverageLatency).filter( - and_( - table.TblTestList.TaskID == taskid, - table.TblTestList.CaseTag == casetag, - table.TblTestList.Provider == provider, - table.TblTestList.Type == ptype, - table.TblTestList.TestID == table.TblFrameloss.TestID)) - return query.all() - - def query_latency_avg(self, taskid, casetag, provider): - ptype = 'latency' - query = self._session.query( - table.TblLatency.AvgFrameSize, - table.TblLatency.AverageLatency).filter( - and_( - table.TblTestList.TaskID == taskid, - table.TblTestList.CaseTag == casetag, - table.TblTestList.Provider == provider, - table.TblTestList.Type == ptype, - table.TblTestList.TestID == table.TblLatency.TestID)) - return query.all() - - def query_summary_table(self, taskid, casetag, provider, ptype): - if ptype in ['throughput', 'frameloss']: - qfunc = getattr(self, "query_%s_table" % (ptype)) - return qfunc(taskid, casetag, provider) - return [] - - def query_summary_simpletable(self, taskid, casetag, provider, ptype): - if ptype in ['throughput', 'frameloss']: - qfunc = getattr(self, "query_%s_simpletable" % (ptype)) - return qfunc(taskid, casetag, provider) - return [] - - def query_bandwidth(self, taskid, casetag, provider, ptype): - if ptype in ['throughput', 'frameloss']: - qfunc = getattr(self, "query_%s_bandwidth" % (ptype)) - return qfunc(taskid, casetag, provider) - return [] - - def query_load(self, taskid, casetag, provider, ptype): - if ptype in ['throughput', 'frameloss']: - qfunc = getattr(self, "query_%s_load" % (ptype)) - return qfunc(taskid, casetag, provider) - return [] - - def query_avglatency(self, taskid, casetag, provider, ptype): - if ptype in ['throughput', 'frameloss', 'latency']: - qfunc = getattr(self, "query_%s_avg" % (ptype)) - return qfunc(taskid, casetag, provider) - return [] - - def query_throughput_provider(self, taskid, casetag, provider): - query = self._session.query( - table.TblThroughput).filter( - and_( - table.TblTestList.CaseTag == casetag, - table.TblTestList.Provider == provider, - table.TblTestList.TaskID == taskid, - table.TblTestList.TestID == table.TblThroughput.TestID)) - return query.all() - - def query_frameloss_provider(self, taskid, casetag, provider): - query = self._session.query( - table.TblFrameloss).filter( - and_( - table.TblTestList.CaseTag == casetag, - table.TblTestList.Provider == provider, - table.TblTestList.TaskID == taskid, - table.TblTestList.TestID == table.TblFrameloss.TestID)) - return query.all() - - def query_latency_provider(self, taskid, casetag, provider): - query = self._session.query( - table.TblLatency).filter( - and_( - table.TblTestList.CaseTag == casetag, - table.TblTestList.Provider == provider, - table.TblTestList.TaskID == taskid, - table.TblTestList.TestID == table.TblLatency.TestID)) - return query.all() - - def query_case_type_count(self, taskid, casetag, ptype): - query = self._session.query( - table.TblTestList).filter( - and_( - table.TblTestList.CaseTag == casetag, - table.TblTestList.Type == ptype, - table.TblTestList.TaskID == taskid)) - - return query.count() - - def query_case_provider_count(self, taskid, casetag, provider): - query = self._session.query( - table.TblTestList).filter( - and_( - table.TblTestList.CaseTag == casetag, - table.TblTestList.Provider == provider, - table.TblTestList.TaskID == taskid)) - return query.count() - - def query_case_type_provider_count(self, taskid, casetag, provider, ptype): - query = self._session.query( - table.TblTestList).filter( - and_( - table.TblTestList.CaseTag == casetag, - table.TblTestList.Type == ptype, - table.TblTestList.Provider == provider, - table.TblTestList.TaskID == taskid)) - - return query.count() - - def query_exten_info(self, taskid): - query = self._session.query( - table.TblEXTInfo.EXTName, - table.TblEXTInfo.EXTContent, - table.TblEXTInfo.Description).filter( - table.TblEXTInfo.TaskID == taskid) - return query.all() - - -def unit_test(): - import time - dbase = DbManage() - - taskid = dbase.create_task("test", str( - time.ctime()), "this is a unit test") - dbase.add_host_2task( - taskid, - "hosta", - "hw82576", - "xxx", - "x", - "82599", - "ubuntu") - dbase.add_extent_2task(taskid, "CETH", "driver", "version 2.0") - dbase.add_extent_2task(taskid, "EVS", "switch", "version 3.0") - - testid = dbase.add_test_2task( - taskid, - "Tn-1", - 'udp', - "throughput", - "ovs", - None, - "netperf") - data = { - '64': { - 'OfferedLoad': 2, - 'PercentLoss': 3, - 'Bandwidth': 4, - 'MinimumLatency': 5, - 'MaximumLatency': 6, - 'AverageLatency': 7, - 'TxFrameCount': 8, - 'RxFrameCount': 9, - 'Duration': 10, - 'CPU': 11, - 'MppspGhz': 12, - } - } - dbase.add_data_2test(testid, data) - - testid = dbase.add_test_2task( - taskid, - "Tn-1", - 'udp', - "frameloss", - "ovs", - None, - "netperf") - data = { - '64': { - 'OfferedLoad': 2, - 'PercentLoss': 3, - 'Bandwidth': 4, - 'MinimumLatency': 5, - 'MaximumLatency': 6, - 'AverageLatency': 7, - 'TxFrameCount': 8, - 'RxFrameCount': 9, - 'Duration': 10, - 'CPU': 11, - 'MppspGhz': 12, - } - } - dbase.add_data_2test(testid, data) - - testid = dbase.add_test_2task( - taskid, - "Tn-1", - 'udp', - "latency", - "ovs", - None, - "netperf") - data = { - 64: { - 'MaximumLatency': 0.0, - 'AverageLatency': 0.0, - 'MinimumLatency': 0.0, - 'OfferedLoad': 0.0}, - 128: { - 'MaximumLatency': 0.0, - 'AverageLatency': 0.0, - 'MinimumLatency': 0.0, - 'OfferedLoad': 0.0}, - 512: { - 'MaximumLatency': 0.0, - 'AverageLatency': 0.0, - 'MinimumLatency': 0.0, - 'OfferedLoad': 0.0}, - 1024: { - 'MaximumLatency': 0.0, - 'AverageLatency': 0.0, - 'MinimumLatency': 0.0, - 'OfferedLoad': 0.0}} - dbase.add_data_2test(testid, data) - query = dbase.query_testlist(1, "Tn") - for item in query: - print item.Protocol - - query = dbase.query_testdata(1, "throughput") - print query - -if __name__ == '__main__': - unit_test() diff --git a/testsuites/vstf/vstf_scripts/vstf/controller/database/tables.py b/testsuites/vstf/vstf_scripts/vstf/controller/database/tables.py deleted file mode 100644 index 92f857a0..00000000 --- a/testsuites/vstf/vstf_scripts/vstf/controller/database/tables.py +++ /dev/null @@ -1,305 +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 sqlalchemy import Column, Integer, String, Float, ForeignKey -from sqlalchemy.ext.declarative import declarative_base -from vstf.controller.database import constants as const - -Base = declarative_base() - - -class TblScenarioInfo(Base): - __tablename__ = "TblScenarioInfo" - ScenarioID = Column(Integer, primary_key=True) - ScenarioName = Column(String(const.SCENARIO_NAME_LEN), unique=True) - FigurePath = Column(String(const.FIGURE_PATH_LEN)) - Description = Column(String(const.DESC_LEN)) - - def __init__(self, ScenarioName, FigurePath, Description, **kwargs): - """ - :param ScenarioName: name of the scenario, like Tn - :param FigurePath: ?? - :param Description: desc of scenario table - """ - self.ScenarioName = ScenarioName - self.FigurePath = FigurePath - self.Description = Description - - def __repr__(self): - return "<User(ScenarioName='%s', FigurePath='%s', Description='%s')>" % ( - self.ScenarioName, self.FigurePath, self.Description) - - -class TblCaseInfo(Base): - __tablename__ = "TblCaseInfo" - CaseID = Column(Integer, primary_key=True) - CaseTag = Column(String(const.CASE_TAG_LEN), unique=True) - CaseName = Column(String(const.CASE_NAME_LEN), unique=True) - ScenarioName = Column(String(const.SCENARIO_NAME_LEN)) - FigurePath = Column(String(const.FIGURE_PATH_LEN)) - Direction = Column(String(const.DIRECTION_LEN)) - Directiontag = Column(String(const.DIRECTION_LEN)) - Configure = Column(String(const.CONF_LEN)) - Description = Column(String(const.DESC_LEN)) - - def __init__(self, CaseTag, CaseName, - ScenarioName, FigurePath, Direction, Directiontag, - Configure, Description, **kwargs): - """ - :param CaseID: - :param CaseTag: ?? - :param CaseName: name of case, like tester-vm - :param ScenarioName: name of scenario, like Tn - :param FigurePath: - :param Direction: the test direction, Tx or Rx - :param Configure: - :param Description: desc of table case info - """ - # CaseID will auto builded by db - self.CaseTag = CaseTag - self.CaseName = CaseName - self.ScenarioName = ScenarioName - self.FigurePath = FigurePath - self.Direction = Direction - self.Directiontag = Directiontag - self.Configure = Configure - self.Description = Description - - def __repr__(self): - return "<User(CaseTag='%s', CaseName='%s',ScenarioName='%s',FigurePath='%s', Direction='%s', \ - Directiontag='%s', Configure='%s', Description='%s')>" % (self.CaseTag, self.CaseName, - self.ScenarioName, self.FigurePath, - self.Direction, self.Directiontag, self.Configure, - self.Description) - - -class TblHostInfo(Base): - __tablename__ = "TblHostInfo" - Index = Column(Integer, primary_key=True) - TaskID = Column(Integer, ForeignKey('TblTaskList.TaskID')) - HostName = Column(String(const.HOST_NAME_LEN)) - Server = Column(String(const.NORMAL_VAR_LEN1)) - CPU = Column(String(const.CPU_INFO_LEN)) - MEM = Column(String(const.NORMAL_VAR_LEN)) - NIC = Column(String(const.NORMAL_VAR_LEN)) - OS = Column(String(const.NORMAL_VAR_LEN)) - - def __init__(self, TaskID, HostName, Server, CPU, MEM, NIC, OS, **kwargs): - """table of host info - """ - self.TaskID = TaskID - self.HostName = HostName - self.Server = Server - self.CPU = CPU - self.MEM = MEM - self.NIC = NIC - self.OS = OS - - def __repr__(self): - return "<User(HostName='%s', Server='%s', CPU='%s', MEM='%s', NIC='%s',\ - OS='%s')>" % (self.HostName, self.Server, self.CPU, self.MEM, self.NIC, self.OS) - - -class TblTaskList(Base): - __tablename__ = "TblTaskList" - TaskID = Column(Integer, primary_key=True) - TaskName = Column(String(const.NORMAL_VAR_LEN1)) - Date = Column(String(const.NORMAL_VAR_LEN1)) - EXTInfo = Column(String(const.EXT_INFO_LEN)) - - def __init__(self, TaskName, Date, EXTInfo="", **kwargs): - """Table of task""" - self.TaskName = TaskName - self.Date = Date - self.EXTInfo = EXTInfo - - def __repr__(self): - return "<User(TaskID='%s', TaskName='%s', Date='%s', EXTInfo='%s')>" % ( - self.TaskID, self.TaskName, self.Date, self.EXTInfo) - - -class TblTestList(Base): - __tablename__ = "TblTestList" - TestID = Column(Integer, primary_key=True) - TaskID = Column(Integer, ForeignKey('TblTaskList.TaskID')) - CaseTag = Column(String(const.CASE_TAG_LEN)) - Protocol = Column(String(const.PROTOCOL_LEN)) - Type = Column(String(const.TYPE_LEN)) - Switch = Column(String(const.SWITCH_LEN)) - Provider = Column(String(const.PROVIDER_LEN)) - Tools = Column(String(const.TOOLS_LEN)) - - def __init__( - self, - taskid, - casetag, - protocol, - typ, - switch, - provider, - tools, - **kwargs): - """Table of test""" - self.TaskID = taskid - self.CaseTag = casetag - self.Protocol = protocol - self.Type = typ - self.Switch = switch - self.Provider = provider - self.Tools = tools - - def __repr__(self): - return "<User(TaskID='%d', CaseTag='%s', Protocol='%s', Type='%s', Switch=%s, Provider=%s, Tools='%s')>" % ( - self.TaskID, self.CaseTag, self.Protocol, self.Type, self.Switch, self.Provider, self.Tools) - - -class TblThroughput(Base): - __tablename__ = "TblThroughput" - Index = Column(Integer, primary_key=True) - TestID = Column(Integer, ForeignKey('TblTestList.TestID')) - AvgFrameSize = Column(Integer) - OfferedLoad = Column(Float) - PercentLoss = Column(Float) - Bandwidth = Column(Float) - MinimumLatency = Column(Float) - MaximumLatency = Column(Float) - AverageLatency = Column(Float) - TxFrameCount = Column(Float) - RxFrameCount = Column(Float) - Duration = Column(Float) - CPU = Column(Float) - MppspGhz = Column(Float) - - def __init__(self, TestID, AvgFrameSize, - OfferedLoad, PercentLoss, Bandwidth, - MinimumLatency, MaximumLatency, AverageLatency, - TxFrameCount, RxFrameCount, Duration, - CPU, MppspGhz, **kwargs): - """table of throughput""" - self.TestID = TestID - self.AvgFrameSize = AvgFrameSize - self.OfferedLoad = OfferedLoad - self.PercentLoss = PercentLoss - self.Bandwidth = Bandwidth - self.MinimumLatency = MinimumLatency - self.MaximumLatency = MaximumLatency - self.AverageLatency = AverageLatency - self.TxFrameCount = TxFrameCount - self.RxFrameCount = RxFrameCount - self.Duration = Duration - self.CPU = CPU - self.MppspGhz = MppspGhz - - def __repr__(self): - return "<User(TestID='%d', AvgFrameSize='%d', OfferedLoad='%f', \ - PercentLoss='%f', MinimumLatency='%f', AverageLatency='%f', MaximumLatency='%f',\ - TxFrameCount='%f', RxFrameCount='%f', Duration='%f', CPU='%f', MppspGhz='%f', \ - Bandwidth='%f')>" % (self.TestID, - self.AvgFrameSize, self.OfferedLoad, self.PercentLoss, - self.MinimumLatency, self.AverageLatency, self.MaximumLatency, - self.TxFrameCount, - self.RxFrameCount, self.Duration, self.CPU, self.MppspGhz, self.Bandwidth) - - -class TblFrameloss(Base): - __tablename__ = "TblFrameloss" - Index = Column(Integer, primary_key=True) - TestID = Column(Integer, ForeignKey('TblTestList.TestID')) - AvgFrameSize = Column(Integer) - OfferedLoad = Column(Float) - PercentLoss = Column(Float) - Bandwidth = Column(Float) - MinimumLatency = Column(Float) - MaximumLatency = Column(Float) - AverageLatency = Column(Float) - TxFrameCount = Column(Float) - RxFrameCount = Column(Float) - Duration = Column(Float) - CPU = Column(Float) - MppspGhz = Column(Float) - - def __init__(self, TestID, AvgFrameSize, - OfferedLoad, PercentLoss, Bandwidth, - MinimumLatency, MaximumLatency, AverageLatency, - TxFrameCount, RxFrameCount, Duration, - CPU, MppspGhz, **kwargs): - """table of frameloss""" - self.TestID = TestID - self.AvgFrameSize = AvgFrameSize - self.OfferedLoad = OfferedLoad - self.PercentLoss = PercentLoss - self.Bandwidth = Bandwidth - self.MinimumLatency = MinimumLatency - self.MaximumLatency = MaximumLatency - self.AverageLatency = AverageLatency - self.TxFrameCount = TxFrameCount - self.RxFrameCount = RxFrameCount - self.Duration = Duration - self.CPU = CPU - self.MppspGhz = MppspGhz - - def __repr__(self): - return "<User(TestID='%d', AvgFrameSize='%d', OfferedLoad='%f', \ - PercentLoss='%f', MinimumLatency='%f', AverageLatency='%f', MaximumLatency='%f',\ - TxFrameCount='%f', RxFrameCount='%f', Duration='%f', CPU='%f', MppspGhz='%f', \ - Bandwidth='%f')>" % (self.TestID, - self.AvgFrameSize, self.OfferedLoad, self.PercentLoss, - self.MinimumLatency, self.AverageLatency, self.MaximumLatency, - self.TxFrameCount, - self.RxFrameCount, self.Duration, self.CPU, self.MppspGhz, self.Bandwidth) - - -class TblLatency(Base): - __tablename__ = "TblLatency" - Index = Column(Integer, primary_key=True) - TestID = Column(Integer, ForeignKey('TblTestList.TestID')) - AvgFrameSize = Column(Integer) - OfferedLoad = Column(Float) - MinimumLatency = Column(Float) - MaximumLatency = Column(Float) - AverageLatency = Column(Float) - - def __init__(self, TestID, AvgFrameSize, OfferedLoad, - MinimumLatency, MaximumLatency, AverageLatency, **kwargs): - """table of latency""" - self.TestID = TestID - self.AvgFrameSize = AvgFrameSize - self.OfferedLoad = OfferedLoad - self.MinimumLatency = MinimumLatency - self.MaximumLatency = MaximumLatency - self.AverageLatency = AverageLatency - - def __repr__(self): - return "<User(TestID='%d', AvgFrameSize='%d', OfferedLoad='%f', \ - MinimumLatency='%f', AverageLatency='%f', MaximumLatency='%f')>" % (self.TestID, - self.AvgFrameSize, - self.OfferedLoad, - self.MinimumLatency, - self.AverageLatency, - self.MaximumLatency) - - -class TblEXTInfo(Base): - __tablename__ = "TblEXTInfo" - Index = Column(Integer, primary_key=True) - TaskID = Column(Integer) - EXTName = Column(String(const.NORMAL_VAR_LEN)) - EXTContent = Column(String(const.DESC_LEN)) - Description = Column(String(const.NORMAL_VAR_LEN1)) - - def __init__(self, TaskID, EXTName, EXTContent, Description, **kwargs): - """table extern info""" - self.TaskID = TaskID - self.EXTName = EXTName - self.EXTContent = EXTContent - self.Description = Description - - def __repr__(self): - return "<User(TaskID='%d', CodeType='%s', EXTContent='%s',Version='%s')>" % ( - self.TaskID, self.EXTName, self.EXTContent, self.Version) |