aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTibor Frank <tifrank@cisco.com>2019-08-13 14:18:32 +0200
committerTibor Frank <tifrank@cisco.com>2019-08-13 12:36:08 +0000
commit481c98ddaaaee4559977b0d601083391a44f1a18 (patch)
treeb65ba0fbe071b18f75a414319fbb0a94e620d034
parentd59cb151a877c88b4a4fac28c1e01fa5220c1fb6 (diff)
PAL: Get DPDK Version
- Needed for trending Change-Id: I3d576e39d6e3b91821050fbd4a8a95380275797b Signed-off-by: Tibor Frank <tifrank@cisco.com> (cherry picked from commit 9e1bb28404a23f6d4c62fb945a3ee6dba42f1c47)
-rw-r--r--resources/libraries/python/DPDK/DPDKTools.py20
-rw-r--r--resources/tools/presentation/input_data_parser.py9
2 files changed, 16 insertions, 13 deletions
diff --git a/resources/libraries/python/DPDK/DPDKTools.py b/resources/libraries/python/DPDK/DPDKTools.py
index 25d221772c..b6c351f3c2 100644
--- a/resources/libraries/python/DPDK/DPDKTools.py
+++ b/resources/libraries/python/DPDK/DPDKTools.py
@@ -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):
diff --git a/resources/tools/presentation/input_data_parser.py b/resources/tools/presentation/input_data_parser.py
index bae7b5eead..87989c5f91 100644
--- a/resources/tools/presentation/input_data_parser.py
+++ b/resources/tools/presentation/input_data_parser.py
@@ -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