Merge "Error when adding SR-IOV interfaces in SR-IOV context"
[yardstick.git] / yardstick / network_services / vnf_generic / vnf / tg_ixload.py
index 6be2b58..02e7803 100644 (file)
@@ -22,12 +22,10 @@ import shutil
 from collections import OrderedDict
 from subprocess import call
 
-import six
-
-from yardstick.common.utils import makedirs
+from yardstick.common import utils
 from yardstick.network_services.vnf_generic.vnf.sample_vnf import SampleVNFTrafficGen
 from yardstick.network_services.vnf_generic.vnf.sample_vnf import ClientResourceHelper
-from yardstick.benchmark.scenarios.networking.vnf_generic import find_relative_file
+
 
 LOG = logging.getLogger(__name__)
 
@@ -79,6 +77,7 @@ class IxLoadResourceHelper(ClientResourceHelper):
         super(IxLoadResourceHelper, self).__init__(setup_helper)
         self.result = OrderedDict((key, ResourceDataHelper()) for key in self.KPI_LIST)
         self.resource_file_name = ''
+        self.data = None
 
     def parse_csv_read(self, reader):
         for row in reader:
@@ -92,11 +91,12 @@ class IxLoadResourceHelper(ClientResourceHelper):
                     self.result[key].append(value)
 
     def setup(self):
-        # TODO: fixupt scenario_helper to hanlde ixia
+        # NOTE: fixup scenario_helper to hanlde ixia
         self.resource_file_name = \
-            find_relative_file(self.scenario_helper.scenario_cfg['ixia_profile'],
-                               self.scenario_helper.scenario_cfg["task_path"])
-        makedirs(self.RESULTS_MOUNT)
+            utils.find_relative_file(
+                self.scenario_helper.scenario_cfg['ixia_profile'],
+                self.scenario_helper.scenario_cfg["task_path"])
+        utils.makedirs(self.RESULTS_MOUNT)
         cmd = MOUNT_CMD.format(self.vnfd_helper.mgmt_interface, self)
         LOG.debug(cmd)
 
@@ -104,13 +104,19 @@ class IxLoadResourceHelper(ClientResourceHelper):
             call(cmd, shell=True)
 
         shutil.rmtree(self.RESULTS_MOUNT, ignore_errors=True)
-        makedirs(self.RESULTS_MOUNT)
+        utils.makedirs(self.RESULTS_MOUNT)
         shutil.copy(self.resource_file_name, self.RESULTS_MOUNT)
 
     def make_aggregates(self):
         return {key_right: self.result[key_left].get_aggregates()
                 for key_left, key_right in self.KPI_LIST.items()}
 
+    def collect_kpi(self):
+        if self.data:
+            self._result.update(self.data)
+        LOG.info("Collect %s KPIs %s", self.RESOURCE_WORD, self._result)
+        return self._result
+
     def log(self):
         for key in self.KPI_LIST:
             LOG.debug(self.result[key])
@@ -125,7 +131,6 @@ class IxLoadTrafficGen(SampleVNFTrafficGen):
         super(IxLoadTrafficGen, self).__init__(name, vnfd, setup_env_helper_type,
                                                resource_helper_type)
         self._result = {}
-        self.data = None
 
     def run_traffic(self, traffic_profile):
         ports = []
@@ -156,26 +161,15 @@ class IxLoadTrafficGen(SampleVNFTrafficGen):
 
         with open(self.ssh_helper.join_bin_path("ixLoad_HTTP_Client.csv")) as csv_file:
             lines = csv_file.readlines()[10:]
-
         with open(self.ssh_helper.join_bin_path("http_result.csv"), 'wb+') as result_file:
-            result_file.writelines(six.text_type(lines[:-1]))
+            result_file.writelines(lines[:-1])
             result_file.flush()
             result_file.seek(0)
             reader = csv.DictReader(result_file)
             self.resource_helper.parse_csv_read(reader)
 
         self.resource_helper.log()
-        self.data = self.resource_helper.make_aggregates()
-
-    def listen_traffic(self, traffic_profile):
-        pass
-
-    def instantiate(self, scenario_cfg, context_cfg):
-        super(IxLoadTrafficGen, self).instantiate(scenario_cfg, context_cfg)
-
-    def wait_for_instantiate(self):
-        # not needed for Ixload
-        pass
+        self.resource_helper.data = self.resource_helper.make_aggregates()
 
     def terminate(self):
         call(["pkill", "-9", "http_ixload.py"])