Merge "BugFix: Negative dropped packets in Prox tests"
[yardstick.git] / yardstick / network_services / vnf_generic / vnf / tg_prox.py
index b4568bf..40eda75 100644 (file)
@@ -16,9 +16,8 @@ from __future__ import print_function, absolute_import
 
 import logging
 
-
-from yardstick.network_services.vnf_generic.vnf.prox_helpers import ProxDpdkVnfSetupEnvHelper
-from yardstick.network_services.vnf_generic.vnf.prox_helpers import ProxResourceHelper
+from yardstick.network_services.utils import get_nsb_option
+from yardstick.network_services.vnf_generic.vnf.prox_vnf import ProxApproxVnf
 from yardstick.network_services.vnf_generic.vnf.sample_vnf import SampleVNFTrafficGen
 
 LOG = logging.getLogger(__name__)
@@ -26,8 +25,10 @@ LOG = logging.getLogger(__name__)
 
 class ProxTrafficGen(SampleVNFTrafficGen):
 
+    APP_NAME = 'ProxTG'
     PROX_MODE = "Traffic Gen"
     LUA_PARAMETER_NAME = "gen"
+    WAIT_TIME = 1
 
     @staticmethod
     def _sort_vpci(vnfd):
@@ -44,26 +45,34 @@ class ProxTrafficGen(SampleVNFTrafficGen):
         return sorted(ext_intf, key=key_func)
 
     def __init__(self, name, vnfd, setup_env_helper_type=None, resource_helper_type=None):
-        if setup_env_helper_type is None:
-            setup_env_helper_type = ProxDpdkVnfSetupEnvHelper
-
-        if resource_helper_type is None:
-            resource_helper_type = ProxResourceHelper
+        # don't call superclass, use custom wrapper of ProxApproxVnf
+        self._vnf_wrapper = ProxApproxVnf(name, vnfd, setup_env_helper_type, resource_helper_type)
+        self.bin_path = get_nsb_option('bin_path', '')
+        self.name = self._vnf_wrapper.name
+        self.ssh_helper = self._vnf_wrapper.ssh_helper
+        self.setup_helper = self._vnf_wrapper.setup_helper
+        self.resource_helper = self._vnf_wrapper.resource_helper
+        self.scenario_helper = self._vnf_wrapper.scenario_helper
+
+        self.runs_traffic = True
+        self.traffic_finished = False
+        self._tg_process = None
+        self._traffic_process = None
 
-        super(ProxTrafficGen, self).__init__(name, vnfd, setup_env_helper_type,
-                                             resource_helper_type)
-        self._result = {}
-        # for some reason
+        # used for generating stats
         self.vpci_if_name_ascending = self._sort_vpci(vnfd)
-        self._traffic_process = None
+        self.resource_helper.vpci_if_name_ascending = self._sort_vpci(vnfd)
 
     def listen_traffic(self, traffic_profile):
         pass
 
     def terminate(self):
+        self._vnf_wrapper.terminate()
         super(ProxTrafficGen, self).terminate()
-        self.resource_helper.terminate()
-        if self._traffic_process:
-            self._traffic_process.terminate()
-        self.ssh_helper.execute("pkill prox")
-        self.resource_helper.rebind_drivers()
+
+    def instantiate(self, scenario_cfg, context_cfg):
+        self._vnf_wrapper.instantiate(scenario_cfg, context_cfg)
+        self._tg_process = self._vnf_wrapper._vnf_process
+
+    def wait_for_instantiate(self):
+        self._vnf_wrapper.wait_for_instantiate()