diff options
author | Martin Klozik <martinx.klozik@intel.com> | 2017-11-07 09:10:43 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@opnfv.org> | 2017-11-07 09:10:43 +0000 |
commit | 1653f5d6a12febed50f138076dcf8c191d9f24e6 (patch) | |
tree | 522d94038ac6eaa262a8b3ca2c6fa4704db12d79 /core | |
parent | 1cfdb4bfbdd1ee02e6ab8bce691084d5319d5410 (diff) | |
parent | 485ac777fd9cded7c145917bfcbe701276f3c855 (diff) |
Merge "load_gen: Supporting loading of load_gen via loader."
Diffstat (limited to 'core')
-rw-r--r-- | core/component_factory.py | 22 | ||||
-rwxr-xr-x | core/loader/loader.py | 32 |
2 files changed, 38 insertions, 16 deletions
diff --git a/core/component_factory.py b/core/component_factory.py index 0256b85c..bd9a1019 100644 --- a/core/component_factory.py +++ b/core/component_factory.py @@ -24,9 +24,6 @@ from core.vswitch_controller_op2p import VswitchControllerOP2P from core.vswitch_controller_ptunp import VswitchControllerPtunP from core.vnf_controller import VnfController from core.pktfwd_controller import PktFwdController -from tools.load_gen.stress.stress import Stress -from tools.load_gen.stress_ng.stress_ng import StressNg -from tools.load_gen.dummy.dummy import DummyLoadGen def __init__(): @@ -115,24 +112,17 @@ def create_collector(collector_class, result_dir, test_name): """ return collector_class(result_dir, test_name) -def create_loadgen(loadgen_type, loadgen_cfg): - """Return a new ILoadGenerator for the loadgen type. +def create_loadgen(loadgen_class, loadgen_cfg): + """Return a new ILoadGenerator for the loadgen class. - The returned load generator has the given loadgen type and loadgen - generator class. + The returned load generator is of given loadgen generator class. - :param loadgen_type: Name of loadgen type - :param loadgen_class: Reference to load generator class to be used. + :param loadgen_class: Name to load generator class to be used. + :param loadgen_cfg: Configuration for the loadgen :return: A new ILoadGenerator class """ # pylint: disable=too-many-function-args - loadgen_type = loadgen_type.lower() - if loadgen_type.find("dummy") >= 0: - return DummyLoadGen(loadgen_cfg) - elif loadgen_type.find("stress-ng") >= 0: - return StressNg(loadgen_cfg) - elif loadgen_type.find("stress") >= 0: - return Stress(loadgen_cfg) + return loadgen_class(loadgen_cfg) def create_pktfwd(deployment, pktfwd_class): """Return a new packet forwarder controller diff --git a/core/loader/loader.py b/core/loader/loader.py index b0990fa7..dcd77ced 100755 --- a/core/loader/loader.py +++ b/core/loader/loader.py @@ -18,11 +18,13 @@ from conf import settings from core.loader.loader_servant import LoaderServant from tools.collectors.collector import ICollector +from tools.load_gen.load_gen import ILoadGenerator from tools.pkt_fwd.pkt_fwd import IPktFwd from tools.pkt_gen.trafficgen import ITrafficGenerator from vswitches.vswitch import IVSwitch from vnfs.vnf.vnf import IVnf +# pylint: disable=too-many-public-methods class Loader(object): """Loader class - main object context holder. """ @@ -30,6 +32,7 @@ class Loader(object): _metrics_loader = None _vswitch_loader = None _vnf_loader = None + _loadgen_loader = None def __init__(self): """Loader ctor - initialization method. @@ -48,6 +51,11 @@ class Loader(object): settings.getValue('COLLECTOR'), ICollector) + self._loadgen_loader = LoaderServant( + settings.getValue('LOADGEN_DIR'), + settings.getValue('LOADGEN'), + ILoadGenerator) + self._vswitch_loader = LoaderServant( settings.getValue('VSWITCH_DIR'), settings.getValue('VSWITCH'), @@ -126,6 +134,30 @@ class Loader(object): """ return self._metrics_loader.get_classes_printable() + def get_loadgen_class(self): + """Returns type of currently configured loadgen implementation. + + :return: Type of ILoadGenerator implementation if available. + None otherwise. + """ + return self._loadgen_loader.get_class() + + def get_loadgens(self): + """Returns dictionary of all available loadgens + + :return: Dictionary of loadgens + - key: name of the class which implements ILoadGenerator + - value: Type of class which implements ILoadGenerator + """ + return self._loadgen_loader.get_classes() + + def get_loadgens_printable(self): + """Returns all available loadgens in printable format + + :return: String containing printable list of loadgens + """ + return self._loadgen_loader.get_classes_printable() + def get_vswitch(self): """Returns instance of currently configured vswitch implementation. |