test code working
diff --git a/wally/result_classes.py b/wally/result_classes.py
index 9b488b7..19925f2 100644
--- a/wally/result_classes.py
+++ b/wally/result_classes.py
@@ -1,19 +1,30 @@
-from typing import Union, Dict, List, Any, Tuple
-
-# Stores test result for integral value, which
-# can be expressed as a single value for given time period,
-# like IO, BW, etc.
-TimeSeriesIntegral = List[float]
+import array
+from typing import Dict, List, Any, Tuple, Optional
-# Stores test result for value, which
-# requires distribution to be stored for any time period,
-# like latency.
-TimeSeriesHistogram = List[List[float]]
+class TimeSerie:
+ name = None # type: str
+ start_at = None # type: int
+ step = None # type: int
+ data = None # type: List[int]
+ second_axis_size = None # type: int
+ raw = None # type: Optional[bytes]
+ def __init__(self, name: str, raw: Optional[bytes], second_axis_size: int,
+ start_at: int, step: int, data: array.array) -> None:
+ self.name = name
+ self.start_at = start_at
+ self.step = step
+ self.second_axis_size = second_axis_size
+ self.data = data # type: ignore
+ self.raw = raw
-TimeSeries = Union[TimeSeriesIntegral, TimeSeriesHistogram]
-RawTestResults = Dict[str, TimeSeries]
+ def meta(self) -> Dict[str, Any]:
+ return {
+ "start_at": self.start_at,
+ "step": self.step,
+ "second_axis_size": self.second_axis_size
+ }
class SensorInfo:
@@ -23,7 +34,7 @@
sensor_name = None # type: str
begin_time = None # type: int
end_time = None # type: int
- data = None # type: TimeSeries
+ data = None # type: List[int]
def __init__(self, node_id: str, source_id: str, sensor_name: str) -> None:
self.node_id = node_id
@@ -43,12 +54,30 @@
node_ids = None # type: List[str]
+class NodeTestResults:
+ name = None # type: str
+ node_id = None # type: str
+ summary = None # type: str
+
+ load_start_at = None # type: int
+ load_stop_at = None # type: int
+
+ series = None # type: Dict[str, TimeSerie]
+
+ def __init__(self, name: str, node_id: str, summary: str) -> None:
+ self.name = name
+ self.node_id = node_id
+ self.summary = summary
+ self.series = {}
+ self.extra_logs = {} # type: Dict[str, bytes]
+
+
class FullTestResult:
test_info = None # type: TestInfo
# TODO(koder): array.array or numpy.array?
# {(node_id, perf_metrics_name): values}
- performance_data = None # type: Dict[Tuple[str, str], TimeSeries]
+ performance_data = None # type: Dict[Tuple[str, str], List[int]]
# {(node_id, perf_metrics_name): values}
sensors_data = None # type: Dict[Tuple[str, str, str], SensorInfo]