From 71c33c245978de8dbae6efd6f5b474344f39ec66 Mon Sep 17 00:00:00 2001 From: StepanVovkPLV <117652059+StepanVovkPLV@users.noreply.github.com> Date: Sun, 30 Apr 2023 05:25:33 +0300 Subject: [PATCH] Fix ethtool show for link partner mode (#314) Signed-off-by: Stepan Vovk --- .../lib/ethtool/linux/linux_ethtool_impl.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/DentOS_Framework/DentOsTestbedLib/src/dent_os_testbed/lib/ethtool/linux/linux_ethtool_impl.py b/DentOS_Framework/DentOsTestbedLib/src/dent_os_testbed/lib/ethtool/linux/linux_ethtool_impl.py index 462c242f3..5cad03e33 100644 --- a/DentOS_Framework/DentOsTestbedLib/src/dent_os_testbed/lib/ethtool/linux/linux_ethtool_impl.py +++ b/DentOS_Framework/DentOsTestbedLib/src/dent_os_testbed/lib/ethtool/linux/linux_ethtool_impl.py @@ -3,7 +3,6 @@ from dent_os_testbed.lib.ethtool.linux.linux_ethtool import LinuxEthtool RE_SPACES = re.compile(r'\s+') -RE_SPEEDS = re.compile(r'(10\d*baseT/(Half|Full))') class LinuxEthtoolImpl(LinuxEthtool): @@ -107,16 +106,16 @@ def parse_show(self, command, output, *argv, **kwarg): records = record.split('\\n')[:-1] else: records = record.split('\n')[:-1] - speeds = [] + previous_key = None for line in records: + if ':' not in line and previous_key: + ethtool_info[previous_key] += ' ' + line.strip() + continue line = RE_SPACES.sub(' ', line).strip().split(':') - key = line[0].replace(' ', '_').lower() + key = line[0].replace(' ', '_').lower().strip() val = ' '.join(line[1:]) - supp_speeds = RE_SPEEDS.findall(val) - if supp_speeds: - speeds.extend(supp_speed[0] for supp_speed in supp_speeds) - ethtool_info[key.strip()] = val.strip() - ethtool_info['supported_speeds'] = speeds + ethtool_info[key] = val.strip() + previous_key = key return ethtool_info def format_set(self, command, *argv, **kwarg):