From 1116f2e17aeb4db5094678a80c2eed729c9320eb Mon Sep 17 00:00:00 2001 From: scott Date: Thu, 5 Mar 2026 15:26:03 -0500 Subject: [PATCH] Fix KeyError: port in portal IP conflict detection _ip_set() used (ip, port) tuples for conflict matching. Since port is no longer present in listen entries, key on IP only. Co-Authored-By: Claude Sonnet 4.6 --- truenas_migrate/migrate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/truenas_migrate/migrate.py b/truenas_migrate/migrate.py index 949cdf4..2c774e9 100644 --- a/truenas_migrate/migrate.py +++ b/truenas_migrate/migrate.py @@ -316,7 +316,7 @@ async def _migrate_iscsi_portals( log.error(msg); summary.errors.append(msg); return def _ip_set(p: dict) -> frozenset: - return frozenset((l["ip"], l["port"]) for l in p.get("listen", [])) + return frozenset(l["ip"] for l in p.get("listen", [])) existing_ip_sets = [(_ip_set(p), p["id"]) for p in existing] log.info(" Destination has %d existing portal(s).", len(existing))