From 481c98ddaaaee4559977b0d601083391a44f1a18 Mon Sep 17 00:00:00 2001 From: Tibor Frank Date: Tue, 13 Aug 2019 14:18:32 +0200 Subject: [PATCH] PAL: Get DPDK Version - Needed for trending Change-Id: I3d576e39d6e3b91821050fbd4a8a95380275797b Signed-off-by: Tibor Frank (cherry picked from commit 9e1bb28404a23f6d4c62fb945a3ee6dba42f1c47) --- resources/libraries/python/DPDK/DPDKTools.py | 20 ++++++++++++-------- resources/tools/presentation/input_data_parser.py | 9 ++++----- 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 -- 2.16.6