Skip to content

Commit 9204d7e

Browse files
authored
[xcvrd] Improve logging in case of unable to find appropriate match for optic SI settings (#672)
* [xcvrd] Improve logging in case of unable to find appropriate match for optic SI settings Signed-off-by: Mihir Patel <[email protected]> * Added test to improve code coverage --------- Signed-off-by: Mihir Patel <[email protected]>
1 parent 4a00fd6 commit 9204d7e

File tree

2 files changed

+30
-1
lines changed

2 files changed

+30
-1
lines changed

sonic-xcvrd/tests/test_xcvrd.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4938,6 +4938,33 @@ def test_get_module_vendor_key_vendor_pn_none(self):
49384938
result = get_module_vendor_key(1, mock_sfp)
49394939
assert result is None
49404940

4941+
def test_get_port_media_settings_no_values_with_empty_default(self):
4942+
"""Test _get_port_media_settings logging when port exists but has empty config and no default values"""
4943+
from xcvrd.xcvrd_utilities.optics_si_parser import _get_port_media_settings
4944+
import xcvrd.xcvrd_utilities.optics_si_parser as parser
4945+
4946+
original_dict = parser.g_optics_si_dict
4947+
4948+
# Set up scenario where:
4949+
# 1. Port exists in PORT_MEDIA_SETTINGS but has empty configuration
4950+
# 2. This makes len(optics_si_dict) == 0
4951+
# 3. Default dict is empty (len(default_dict) == 0)
4952+
parser.g_optics_si_dict = {
4953+
'PORT_MEDIA_SETTINGS': {
4954+
'5': {} # Port exists but is empty - this triggers len(optics_si_dict) == 0
4955+
}
4956+
}
4957+
4958+
try:
4959+
# This should trigger the log_info line at lines 119-121
4960+
# since len(optics_si_dict) == 0 and len(default_dict) == 0
4961+
result = _get_port_media_settings(5, 25, "VENDOR-1234", "VENDOR", {})
4962+
4963+
# Should return empty dict when no values found and no defaults
4964+
assert result == {}
4965+
finally:
4966+
parser.g_optics_si_dict = original_dict
4967+
49414968
def test_load_optics_si_settings_no_file(self):
49424969
"""Test load_optics_si_settings when no file exists"""
49434970
from xcvrd.xcvrd_utilities.optics_si_parser import load_optics_si_settings

sonic-xcvrd/xcvrd/xcvrd_utilities/optics_si_parser.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,9 @@ def _get_port_media_settings(physical_port, lane_speed, key, vendor_name_str, de
116116
if len(default_dict) != 0:
117117
return default_dict
118118
else:
119-
helper_logger.log_error("Error: No values for physical port '{}'".format(physical_port))
119+
helper_logger.log_info("No values for physical port '{}' lane speed '{}' "
120+
"key '{}' vendor '{}'".format(
121+
physical_port, lane_speed, key, vendor_name_str))
120122
return {}
121123

122124
if SPEED_KEY in optics_si_dict:

0 commit comments

Comments
 (0)