From bf378f2973e129527f2abde54094799303db0d07 Mon Sep 17 00:00:00 2001 From: Martin Klozik Date: Tue, 18 Aug 2015 15:33:14 +0100 Subject: Support of configurable background load and implementation of LTD.CPU.RFC2544.0PacketLoss and LTD.Memory.RFC2544.0PacketLoss Every testcase can be configured to run background load on the DUT. Load is generated by chosen command line tool, which must be installed according to the installation.md. Currently 'stress' and 'stress-ng' tools are supported, but support for new tool can be easily added. Load can be configured by testcase configuration option 'load'. Details about supported load generator options can be found in conf/01_testcases.conf. JIRA: VSPERF-23 JIRA: VSPERF-24 Change-Id: I3e1aebc0d41357f5a2764015c41ffc7e50fdbf8b Signed-off-by: Martin Klozik Reviewed-by: Billy O Mahony Reviewed-by: Maryam Tahhan Reviewed-by: Al Morton --- core/component_factory.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'core/component_factory.py') diff --git a/core/component_factory.py b/core/component_factory.py index 1fe0964e..f92de204 100644 --- a/core/component_factory.py +++ b/core/component_factory.py @@ -21,6 +21,9 @@ from core.vswitch_controller_pvp import VswitchControllerPVP from core.vnf_controller_p2p import VnfControllerP2P from core.vnf_controller_pvp import VnfControllerPVP from core.collector_controller import CollectorController +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__(): @@ -98,3 +101,22 @@ def create_collector(collector, collector_class): if "cpu" in collector or "memory" in collector: return CollectorController(collector_class) +def create_loadgen(loadgen_type, loadgen_cfg): + """Return a new ILoadGenerator for the loadgen type. + + The returned load generator has the given loadgen type and loadgen + generator class. + + :param loadgen_type: Name of loadgen type + :param loadgen_class: Reference to load generator class to be used. + :return: A new ILoadGenerator class + """ + 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) + + -- cgit 1.2.3-korg