Merge "Change PTL informatin in INFO"
[bottlenecks.git] / testsuites / vstf / vstf_scripts / vstf / controller / database / tables.py
1 ##############################################################################
2 # Copyright (c) 2015 Huawei Technologies Co.,Ltd and others.
3 #
4 # All rights reserved. This program and the accompanying materials
5 # are made available under the terms of the Apache License, Version 2.0
6 # which accompanies this distribution, and is available at
7 # http://www.apache.org/licenses/LICENSE-2.0
8 ##############################################################################
9
10 from sqlalchemy import Column, Integer, String, Float, ForeignKey
11 from sqlalchemy.ext.declarative import declarative_base
12 from vstf.controller.database import constants as const
13
14 Base = declarative_base()
15
16
17 class TblScenarioInfo(Base):
18     __tablename__ = "TblScenarioInfo"
19     ScenarioID = Column(Integer, primary_key=True)
20     ScenarioName = Column(String(const.SCENARIO_NAME_LEN), unique=True)
21     FigurePath = Column(String(const.FIGURE_PATH_LEN))
22     Description = Column(String(const.DESC_LEN))
23
24     def __init__(self, ScenarioName, FigurePath, Description, **kwargs):
25         """
26         :param ScenarioName: name of the scenario, like Tn
27         :param FigurePath: ??
28         :param Description: desc of scenario table
29         """
30         self.ScenarioName = ScenarioName
31         self.FigurePath = FigurePath
32         self.Description = Description
33
34     def __repr__(self):
35         return "<User(ScenarioName='%s', FigurePath='%s', Description='%s')>" % (
36             self.ScenarioName, self.FigurePath, self.Description)
37
38
39 class TblCaseInfo(Base):
40     __tablename__ = "TblCaseInfo"
41     CaseID = Column(Integer, primary_key=True)
42     CaseTag = Column(String(const.CASE_TAG_LEN), unique=True)
43     CaseName = Column(String(const.CASE_NAME_LEN), unique=True)
44     ScenarioName = Column(String(const.SCENARIO_NAME_LEN))
45     FigurePath = Column(String(const.FIGURE_PATH_LEN))
46     Direction = Column(String(const.DIRECTION_LEN))
47     Directiontag = Column(String(const.DIRECTION_LEN))
48     Configure = Column(String(const.CONF_LEN))
49     Description = Column(String(const.DESC_LEN))
50
51     def __init__(self, CaseTag, CaseName,
52                  ScenarioName, FigurePath, Direction, Directiontag,
53                  Configure, Description, **kwargs):
54         """
55         :param CaseID:
56         :param CaseTag: ??
57         :param CaseName: name of case, like tester-vm
58         :param ScenarioName: name of scenario, like Tn
59         :param FigurePath:
60         :param Direction: the test direction, Tx or Rx
61         :param Configure:
62         :param Description: desc of table case info
63         """
64         # CaseID will auto builded by db
65         self.CaseTag = CaseTag
66         self.CaseName = CaseName
67         self.ScenarioName = ScenarioName
68         self.FigurePath = FigurePath
69         self.Direction = Direction
70         self.Directiontag = Directiontag
71         self.Configure = Configure
72         self.Description = Description
73
74     def __repr__(self):
75         return "<User(CaseTag='%s', CaseName='%s',ScenarioName='%s',FigurePath='%s', Direction='%s', \
76             Directiontag='%s', Configure='%s', Description='%s')>" % (self.CaseTag, self.CaseName,
77                                                                       self.ScenarioName, self.FigurePath,
78                                                                       self.Direction, self.Directiontag, self.Configure,
79                                                                       self.Description)
80
81
82 class TblHostInfo(Base):
83     __tablename__ = "TblHostInfo"
84     Index = Column(Integer, primary_key=True)
85     TaskID = Column(Integer, ForeignKey('TblTaskList.TaskID'))
86     HostName = Column(String(const.HOST_NAME_LEN))
87     Server = Column(String(const.NORMAL_VAR_LEN1))
88     CPU = Column(String(const.CPU_INFO_LEN))
89     MEM = Column(String(const.NORMAL_VAR_LEN))
90     NIC = Column(String(const.NORMAL_VAR_LEN))
91     OS = Column(String(const.NORMAL_VAR_LEN))
92
93     def __init__(self, TaskID, HostName, Server, CPU, MEM, NIC, OS, **kwargs):
94         """table of host info
95         """
96         self.TaskID = TaskID
97         self.HostName = HostName
98         self.Server = Server
99         self.CPU = CPU
100         self.MEM = MEM
101         self.NIC = NIC
102         self.OS = OS
103
104     def __repr__(self):
105         return "<User(HostName='%s',  Server='%s', CPU='%s', MEM='%s', NIC='%s',\
106          OS='%s')>" % (self.HostName, self.Server, self.CPU, self.MEM, self.NIC, self.OS)
107
108
109 class TblTaskList(Base):
110     __tablename__ = "TblTaskList"
111     TaskID = Column(Integer, primary_key=True)
112     TaskName = Column(String(const.NORMAL_VAR_LEN1))
113     Date = Column(String(const.NORMAL_VAR_LEN1))
114     EXTInfo = Column(String(const.EXT_INFO_LEN))
115
116     def __init__(self, TaskName, Date, EXTInfo="", **kwargs):
117         """Table of task"""
118         self.TaskName = TaskName
119         self.Date = Date
120         self.EXTInfo = EXTInfo
121
122     def __repr__(self):
123         return "<User(TaskID='%s', TaskName='%s', Date='%s', EXTInfo='%s')>" % (
124             self.TaskID, self.TaskName, self.Date, self.EXTInfo)
125
126
127 class TblTestList(Base):
128     __tablename__ = "TblTestList"
129     TestID = Column(Integer, primary_key=True)
130     TaskID = Column(Integer, ForeignKey('TblTaskList.TaskID'))
131     CaseTag = Column(String(const.CASE_TAG_LEN))
132     Protocol = Column(String(const.PROTOCOL_LEN))
133     Type = Column(String(const.TYPE_LEN))
134     Switch = Column(String(const.SWITCH_LEN))
135     Provider = Column(String(const.PROVIDER_LEN))
136     Tools = Column(String(const.TOOLS_LEN))
137
138     def __init__(
139             self,
140             taskid,
141             casetag,
142             protocol,
143             typ,
144             switch,
145             provider,
146             tools,
147             **kwargs):
148         """Table of test"""
149         self.TaskID = taskid
150         self.CaseTag = casetag
151         self.Protocol = protocol
152         self.Type = typ
153         self.Switch = switch
154         self.Provider = provider
155         self.Tools = tools
156
157     def __repr__(self):
158         return "<User(TaskID='%d', CaseTag='%s', Protocol='%s', Type='%s', Switch=%s, Provider=%s, Tools='%s')>" % (
159             self.TaskID, self.CaseTag, self.Protocol, self.Type, self.Switch, self.Provider, self.Tools)
160
161
162 class TblThroughput(Base):
163     __tablename__ = "TblThroughput"
164     Index = Column(Integer, primary_key=True)
165     TestID = Column(Integer, ForeignKey('TblTestList.TestID'))
166     AvgFrameSize = Column(Integer)
167     OfferedLoad = Column(Float)
168     PercentLoss = Column(Float)
169     Bandwidth = Column(Float)
170     MinimumLatency = Column(Float)
171     MaximumLatency = Column(Float)
172     AverageLatency = Column(Float)
173     TxFrameCount = Column(Float)
174     RxFrameCount = Column(Float)
175     Duration = Column(Float)
176     CPU = Column(Float)
177     MppspGhz = Column(Float)
178
179     def __init__(self, TestID, AvgFrameSize,
180                  OfferedLoad, PercentLoss, Bandwidth,
181                  MinimumLatency, MaximumLatency, AverageLatency,
182                  TxFrameCount, RxFrameCount, Duration,
183                  CPU, MppspGhz, **kwargs):
184         """table of throughput"""
185         self.TestID = TestID
186         self.AvgFrameSize = AvgFrameSize
187         self.OfferedLoad = OfferedLoad
188         self.PercentLoss = PercentLoss
189         self.Bandwidth = Bandwidth
190         self.MinimumLatency = MinimumLatency
191         self.MaximumLatency = MaximumLatency
192         self.AverageLatency = AverageLatency
193         self.TxFrameCount = TxFrameCount
194         self.RxFrameCount = RxFrameCount
195         self.Duration = Duration
196         self.CPU = CPU
197         self.MppspGhz = MppspGhz
198
199     def __repr__(self):
200         return "<User(TestID='%d', AvgFrameSize='%d', OfferedLoad='%f', \
201                       PercentLoss='%f', MinimumLatency='%f', AverageLatency='%f', MaximumLatency='%f',\
202                       TxFrameCount='%f', RxFrameCount='%f', Duration='%f', CPU='%f', MppspGhz='%f', \
203                       Bandwidth='%f')>" % (self.TestID,
204                                            self.AvgFrameSize, self.OfferedLoad, self.PercentLoss,
205                                            self.MinimumLatency, self.AverageLatency, self.MaximumLatency,
206                                            self.TxFrameCount,
207                                            self.RxFrameCount, self.Duration, self.CPU, self.MppspGhz, self.Bandwidth)
208
209
210 class TblFrameloss(Base):
211     __tablename__ = "TblFrameloss"
212     Index = Column(Integer, primary_key=True)
213     TestID = Column(Integer, ForeignKey('TblTestList.TestID'))
214     AvgFrameSize = Column(Integer)
215     OfferedLoad = Column(Float)
216     PercentLoss = Column(Float)
217     Bandwidth = Column(Float)
218     MinimumLatency = Column(Float)
219     MaximumLatency = Column(Float)
220     AverageLatency = Column(Float)
221     TxFrameCount = Column(Float)
222     RxFrameCount = Column(Float)
223     Duration = Column(Float)
224     CPU = Column(Float)
225     MppspGhz = Column(Float)
226
227     def __init__(self, TestID, AvgFrameSize,
228                  OfferedLoad, PercentLoss, Bandwidth,
229                  MinimumLatency, MaximumLatency, AverageLatency,
230                  TxFrameCount, RxFrameCount, Duration,
231                  CPU, MppspGhz, **kwargs):
232         """table of frameloss"""
233         self.TestID = TestID
234         self.AvgFrameSize = AvgFrameSize
235         self.OfferedLoad = OfferedLoad
236         self.PercentLoss = PercentLoss
237         self.Bandwidth = Bandwidth
238         self.MinimumLatency = MinimumLatency
239         self.MaximumLatency = MaximumLatency
240         self.AverageLatency = AverageLatency
241         self.TxFrameCount = TxFrameCount
242         self.RxFrameCount = RxFrameCount
243         self.Duration = Duration
244         self.CPU = CPU
245         self.MppspGhz = MppspGhz
246
247     def __repr__(self):
248         return "<User(TestID='%d', AvgFrameSize='%d', OfferedLoad='%f', \
249                       PercentLoss='%f', MinimumLatency='%f', AverageLatency='%f', MaximumLatency='%f',\
250                       TxFrameCount='%f', RxFrameCount='%f', Duration='%f', CPU='%f', MppspGhz='%f', \
251                       Bandwidth='%f')>" % (self.TestID,
252                                            self.AvgFrameSize, self.OfferedLoad, self.PercentLoss,
253                                            self.MinimumLatency, self.AverageLatency, self.MaximumLatency,
254                                            self.TxFrameCount,
255                                            self.RxFrameCount, self.Duration, self.CPU, self.MppspGhz, self.Bandwidth)
256
257
258 class TblLatency(Base):
259     __tablename__ = "TblLatency"
260     Index = Column(Integer, primary_key=True)
261     TestID = Column(Integer, ForeignKey('TblTestList.TestID'))
262     AvgFrameSize = Column(Integer)
263     OfferedLoad = Column(Float)
264     MinimumLatency = Column(Float)
265     MaximumLatency = Column(Float)
266     AverageLatency = Column(Float)
267
268     def __init__(self, TestID, AvgFrameSize, OfferedLoad,
269                  MinimumLatency, MaximumLatency, AverageLatency, **kwargs):
270         """table of latency"""
271         self.TestID = TestID
272         self.AvgFrameSize = AvgFrameSize
273         self.OfferedLoad = OfferedLoad
274         self.MinimumLatency = MinimumLatency
275         self.MaximumLatency = MaximumLatency
276         self.AverageLatency = AverageLatency
277
278     def __repr__(self):
279         return "<User(TestID='%d', AvgFrameSize='%d', OfferedLoad='%f', \
280                       MinimumLatency='%f', AverageLatency='%f', MaximumLatency='%f')>" % (self.TestID,
281                                                                                           self.AvgFrameSize,
282                                                                                           self.OfferedLoad,
283                                                                                           self.MinimumLatency,
284                                                                                           self.AverageLatency,
285                                                                                           self.MaximumLatency)
286
287
288 class TblEXTInfo(Base):
289     __tablename__ = "TblEXTInfo"
290     Index = Column(Integer, primary_key=True)
291     TaskID = Column(Integer)
292     EXTName = Column(String(const.NORMAL_VAR_LEN))
293     EXTContent = Column(String(const.DESC_LEN))
294     Description = Column(String(const.NORMAL_VAR_LEN1))
295
296     def __init__(self, TaskID, EXTName, EXTContent, Description, **kwargs):
297         """table extern info"""
298         self.TaskID = TaskID
299         self.EXTName = EXTName
300         self.EXTContent = EXTContent
301         self.Description = Description
302
303     def __repr__(self):
304         return "<User(TaskID='%d', CodeType='%s', EXTContent='%s',Version='%s')>" % (
305             self.TaskID, self.EXTName, self.EXTContent, self.Version)