summaryrefslogtreecommitdiffstats
path: root/testsuites/vstf/vstf_scripts/vstf/controller/database
diff options
context:
space:
mode:
Diffstat (limited to 'testsuites/vstf/vstf_scripts/vstf/controller/database')
-rw-r--r--testsuites/vstf/vstf_scripts/vstf/controller/database/__init__.py8
-rw-r--r--testsuites/vstf/vstf_scripts/vstf/controller/database/constants.py63
-rw-r--r--testsuites/vstf/vstf_scripts/vstf/controller/database/dbinterface.py718
-rw-r--r--testsuites/vstf/vstf_scripts/vstf/controller/database/tables.py305
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)