From 8a319ecce79dc0783e6bd8ade8ac9bf8030caf1e Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Fri, 29 May 2026 16:13:33 -0500 Subject: dhcp: T8941: Apply guards for empty or missing mapping keys --- src/op_mode/dhcp.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/op_mode/dhcp.py b/src/op_mode/dhcp.py index 8e0130c17..4b95432de 100755 --- a/src/op_mode/dhcp.py +++ b/src/op_mode/dhcp.py @@ -93,9 +93,9 @@ def _get_raw_server_leases( if sorted: if sorted == 'ip': - mappings.sort(key=lambda x: ip_address(x['ip'])) + mappings.sort(key=lambda x: ip_address(val) if (val := x.get('ip')) else '') else: - mappings.sort(key=lambda x: x[sorted]) + mappings.sort(key=lambda x: x.get(sorted) or '') return mappings @@ -238,9 +238,9 @@ def _get_raw_server_static_mappings(config, family='inet', pool=None, sorted=Non if sorted: if sorted == 'ip': - mappings.sort(key=lambda x: ip_address(x['ip'])) + mappings.sort(key=lambda x: ip_address(val) if (val := x.get('ip')) else '') else: - mappings.sort(key=lambda x: x[sorted]) + mappings.sort(key=lambda x: x.get(sorted) or '') return mappings @@ -251,10 +251,11 @@ def _get_formatted_server_static_mappings(raw_data): pool = entry.get('pool') subnet = entry.get('subnet') hostname = entry.get('hostname') - ip_addr = entry.get('ip', 'N/A') - mac_addr = entry.get('mac', 'N/A') - duid = entry.get('duid', 'N/A') - desc = entry.get('description', 'N/A') + # These fields may be either None or '', display 'N/A' in both cases + ip_addr = entry.get('ip') or 'N/A' + mac_addr = entry.get('mac') or 'N/A' + duid = entry.get('duid') or 'N/A' + desc = entry.get('description') or 'N/A' data_entries.append([pool, subnet, hostname, ip_addr, mac_addr, duid, desc]) headers = [ -- cgit v1.2.3