diff --git a/src/containernet/data_analyzer/analyzer.py b/src/containernet/data_analyzer/analyzer.py index e09cd80..ff66b40 100644 --- a/src/containernet/data_analyzer/analyzer.py +++ b/src/containernet/data_analyzer/analyzer.py @@ -1,11 +1,19 @@ from abc import ABC, abstractmethod +class AnalyzerConfig: + input: str # The input file + output: str # The output file + + class IDataAnalyzer(ABC): + def __init__(self) -> None: + self.config = None + @abstractmethod - def analyze(self, log_file: str): + def analyze(self, config: AnalyzerConfig): pass @abstractmethod - def visualize(self, log_file: str): + def visualize(self, config: AnalyzerConfig): pass diff --git a/src/containernet/data_analyzer/analyzer_factory.py b/src/containernet/data_analyzer/analyzer_factory.py index c551603..952af4a 100644 --- a/src/containernet/data_analyzer/analyzer_factory.py +++ b/src/containernet/data_analyzer/analyzer_factory.py @@ -1,7 +1,7 @@ from .iperf3_analyzer import Iperf3Analyzer -class LogAnalyzerFactory: +class AnalyzerFactory: @staticmethod def get_analyzer(log_type: str): if log_type == "iperf3": diff --git a/src/containernet/data_analyzer/iperf3_analyzer.py b/src/containernet/data_analyzer/iperf3_analyzer.py index d4c1182..7ce5538 100644 --- a/src/containernet/data_analyzer/iperf3_analyzer.py +++ b/src/containernet/data_analyzer/iperf3_analyzer.py @@ -1,11 +1,11 @@ -from .analyzer import IDataAnalyzer +from .analyzer import (IDataAnalyzer, AnalyzerConfig) class Iperf3Analyzer(IDataAnalyzer): - def analyze(self, log_file: str): + def analyze(self, config: AnalyzerConfig): pass - def visualize(self, log_file: str): + def visualize(self, config: AnalyzerConfig): # Implement visualization logic for iperf3 logs # ... (visualization code) pass diff --git a/src/containernet/test_suites/test.py b/src/containernet/test_suites/test.py index 7284441..5f86bd7 100644 --- a/src/containernet/test_suites/test.py +++ b/src/containernet/test_suites/test.py @@ -11,6 +11,7 @@ class TestType(IntEnum): class ITestSuite(ABC): def __init__(self) -> None: self.is_success = False + self.log_file = None @abstractmethod def post_process(self): diff --git a/src/containernet/test_suites/test_iperf.py b/src/containernet/test_suites/test_iperf.py index 51d3737..8775fff 100644 --- a/src/containernet/test_suites/test_iperf.py +++ b/src/containernet/test_suites/test_iperf.py @@ -1,6 +1,8 @@ import logging from containernet.network import Network +from containernet.data_analyzer.analyzer import AnalyzerConfig +from containernet.data_analyzer.analyzer_factory import AnalyzerFactory from .test import (ITestSuite, TestType) @@ -10,10 +12,15 @@ def __init__(self, type: TestType) -> None: self.type = type def post_process(self): - pass + analyzer = AnalyzerFactory.get_analyzer("iperf3") + config = AnalyzerConfig() + config.input = self.log_file + config.output = "iperf3_result.svg" + analyzer.analyze(config) + analyzer.visualize(config) def pre_process(self): - pass + self.log_file = "iperf3_log.txt" def _run_test(self, network: Network): logging.info(