# See the License for the specific language governing permissions and
# limitations under the License.
-from __future__ import print_function, absolute_import
-
import logging
+import copy
-
-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__)
class ProxTrafficGen(SampleVNFTrafficGen):
+ APP_NAME = 'ProxTG'
PROX_MODE = "Traffic Gen"
LUA_PARAMETER_NAME = "gen"
-
- @staticmethod
- def _sort_vpci(vnfd):
- """
-
- :param vnfd: vnfd.yaml
- :return: trex_cfg.yaml file
- """
-
- def key_func(interface):
- return interface["virtual-interface"]["vpci"], interface["name"]
-
- ext_intf = vnfd["vdu"][0]["external-interface"]
- 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
-
- super(ProxTrafficGen, self).__init__(name, vnfd, setup_env_helper_type,
- resource_helper_type)
- self._result = {}
- # for some reason
- self.vpci_if_name_ascending = self._sort_vpci(vnfd)
+ WAIT_TIME = 1
+
+ def __init__(self, name, vnfd, task_id, setup_env_helper_type=None,
+ resource_helper_type=None):
+ vnfd_cpy = copy.deepcopy(vnfd)
+ super(ProxTrafficGen, self).__init__(name, vnfd_cpy, task_id)
+
+ self._vnf_wrapper = ProxApproxVnf(
+ name, vnfd, task_id, 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
- 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()