summaryrefslogtreecommitdiffstats
path: root/core/component_factory.py
diff options
context:
space:
mode:
authorMartin Klozik <martinx.klozik@intel.com>2015-08-18 15:33:14 +0100
committerMaryam Tahhan <maryam.tahhan@intel.com>2015-08-26 08:15:53 +0000
commitbf378f2973e129527f2abde54094799303db0d07 (patch)
tree3805cd5eabe242fbf9d0065583a6e91dd4e55c7a /core/component_factory.py
parentfcdbebe21c7ce590bb6e321506dcd722ad9f9863 (diff)
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 <martinx.klozik@intel.com> Reviewed-by: Billy O Mahony <billy.o.mahony@intel.com> Reviewed-by: Maryam Tahhan <maryam.tahhan@intel.com> Reviewed-by: Al Morton <acmorton@att.com>
Diffstat (limited to 'core/component_factory.py')
-rw-r--r--core/component_factory.py22
1 files changed, 22 insertions, 0 deletions
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)
+
+