PAL: Get DPDK Version 71/21271/1
authorTibor Frank <tifrank@cisco.com>
Tue, 13 Aug 2019 12:18:32 +0000 (14:18 +0200)
committerTibor Frank <tifrank@cisco.com>
Tue, 13 Aug 2019 12:36:08 +0000 (12:36 +0000)
- Needed for trending

Change-Id: I3d576e39d6e3b91821050fbd4a8a95380275797b
Signed-off-by: Tibor Frank <tifrank@cisco.com>
(cherry picked from commit 9e1bb28404a23f6d4c62fb945a3ee6dba42f1c47)

resources/libraries/python/DPDK/DPDKTools.py
resources/tools/presentation/input_data_parser.py

index 25d2217..b6c351f 100644 (file)
@@ -14,7 +14,9 @@
 
 """This module implements initialization and cleanup of DPDK environment."""
 
-from resources.libraries.python.ssh import SSH
+from robot.api import logger
+
+from resources.libraries.python.ssh import SSH, exec_cmd_no_error
 from resources.libraries.python.Constants import Constants
 from resources.libraries.python.topology import NodeType, Topology
 
@@ -104,15 +106,17 @@ class DPDKTools(object):
         """
         arch = Topology.get_node_arch(node)
 
-        ssh = SSH()
-        ssh.connect(node)
+        command = ('{fwdir}/tests/dpdk/dpdk_scripts/install_dpdk.sh {arch}'.
+                   format(fwdir=Constants.REMOTE_FW_DIR, arch=arch))
+        message = 'Install the DPDK failed!'
+        exec_cmd_no_error(node, command, timeout=600, message=message)
 
-        ret_code, _, _ = ssh.exec_command(
-            '{fwdir}/tests/dpdk/dpdk_scripts/install_dpdk.sh {arch}'.
-            format(fwdir=Constants.REMOTE_FW_DIR, arch=arch), timeout=600)
+        command = ('cat {fwdir}/download_dir/dpdk*/VERSION'.
+                   format(fwdir=Constants.REMOTE_FW_DIR))
+        message = 'Get DPDK version failed!'
+        stdout, _ = exec_cmd_no_error(node, command, message=message)
 
-        if ret_code != 0:
-            raise RuntimeError('Install the DPDK failed')
+        logger.info('DPDK Version: {version}'.format(version=stdout))
 
     @staticmethod
     def install_dpdk_test_on_all_duts(nodes):
index bae7b5e..87989c5 100644 (file)
@@ -280,8 +280,7 @@ class ExecutionChecker(ResultVisitor):
     REGEX_VERSION_VPP = re.compile(r"(return STDOUT Version:\s*|"
                                    r"VPP Version:\s*|VPP version:\s*)(.*)")
 
-    REGEX_VERSION_DPDK = re.compile(r"(return STDOUT testpmd)([\d\D\n]*)"
-                                    r"(RTE Version: 'DPDK )(.*)(')")
+    REGEX_VERSION_DPDK = re.compile(r"DPDK Version: (\d*.\d*)")
 
     REGEX_TCP = re.compile(r'Total\s(rps|cps|throughput):\s([0-9]*).*$')
 
@@ -422,10 +421,10 @@ class ExecutionChecker(ResultVisitor):
         :returns: Nothing.
         """
 
-        if msg.message.count("return STDOUT testpmd"):
+        if msg.message.count("DPDK Version:"):
             try:
                 self._version = str(re.search(
-                    self.REGEX_VERSION_DPDK, msg.message). group(4))
+                    self.REGEX_VERSION_DPDK, msg.message). group(1))
                 self._data["metadata"]["version"] = self._version
             except IndexError:
                 pass
@@ -944,7 +943,7 @@ class ExecutionChecker(ResultVisitor):
             self._lookup_kw_nr += 1
             self._show_run_lookup_nr = 0
             self._msg_type = "test-show-runtime"
-        elif test_kw.name.count("Start The L2fwd Test") and not self._version:
+        elif test_kw.name.count("Install Dpdk Test") and not self._version:
             self._msg_type = "dpdk-version"
         else:
             return