blob: 19925f27988a4a166ef530bc6d8d81004d37cd5e [file] [log] [blame]
koder aka kdanilov23e6bdf2016-12-24 02:18:54 +02001import array
2from typing import Dict, List, Any, Tuple, Optional
koder aka kdanilov70227062016-11-26 23:23:21 +02003
4
koder aka kdanilov23e6bdf2016-12-24 02:18:54 +02005class TimeSerie:
6 name = None # type: str
7 start_at = None # type: int
8 step = None # type: int
9 data = None # type: List[int]
10 second_axis_size = None # type: int
11 raw = None # type: Optional[bytes]
koder aka kdanilov70227062016-11-26 23:23:21 +020012
koder aka kdanilov23e6bdf2016-12-24 02:18:54 +020013 def __init__(self, name: str, raw: Optional[bytes], second_axis_size: int,
14 start_at: int, step: int, data: array.array) -> None:
15 self.name = name
16 self.start_at = start_at
17 self.step = step
18 self.second_axis_size = second_axis_size
19 self.data = data # type: ignore
20 self.raw = raw
koder aka kdanilov70227062016-11-26 23:23:21 +020021
koder aka kdanilov23e6bdf2016-12-24 02:18:54 +020022 def meta(self) -> Dict[str, Any]:
23 return {
24 "start_at": self.start_at,
25 "step": self.step,
26 "second_axis_size": self.second_axis_size
27 }
koder aka kdanilov70227062016-11-26 23:23:21 +020028
29
30class SensorInfo:
31 """Holds information from a single sensor from a single node"""
32 node_id = None # type: str
33 source_id = None # type: str
34 sensor_name = None # type: str
35 begin_time = None # type: int
36 end_time = None # type: int
koder aka kdanilov23e6bdf2016-12-24 02:18:54 +020037 data = None # type: List[int]
koder aka kdanilov70227062016-11-26 23:23:21 +020038
39 def __init__(self, node_id: str, source_id: str, sensor_name: str) -> None:
40 self.node_id = node_id
41 self.source_id = source_id
42 self.sensor_name = sensor_name
43
44
45class TestInfo:
46 """Contains done test information"""
47 name = None # type: str
48 iteration_name = None # type: str
49 nodes = None # type: List[str]
50 start_time = None # type: int
51 stop_time = None # type: int
52 params = None # type: Dict[str, Any]
53 config = None # type: str
54 node_ids = None # type: List[str]
55
56
koder aka kdanilov23e6bdf2016-12-24 02:18:54 +020057class NodeTestResults:
58 name = None # type: str
59 node_id = None # type: str
60 summary = None # type: str
61
62 load_start_at = None # type: int
63 load_stop_at = None # type: int
64
65 series = None # type: Dict[str, TimeSerie]
66
67 def __init__(self, name: str, node_id: str, summary: str) -> None:
68 self.name = name
69 self.node_id = node_id
70 self.summary = summary
71 self.series = {}
72 self.extra_logs = {} # type: Dict[str, bytes]
73
74
koder aka kdanilov70227062016-11-26 23:23:21 +020075class FullTestResult:
76 test_info = None # type: TestInfo
77
78 # TODO(koder): array.array or numpy.array?
79 # {(node_id, perf_metrics_name): values}
koder aka kdanilov23e6bdf2016-12-24 02:18:54 +020080 performance_data = None # type: Dict[Tuple[str, str], List[int]]
koder aka kdanilov70227062016-11-26 23:23:21 +020081
82 # {(node_id, perf_metrics_name): values}
83 sensors_data = None # type: Dict[Tuple[str, str, str], SensorInfo]