fix(validate): narrow bare except to ImportError in psutil port-collision check

The original except Exception silently disabled port collision detection for
any runtime error — not just a missing package. Now only ImportError degrades
gracefully; real psutil failures propagate.
This commit is contained in:
2026-04-30 21:53:05 -04:00
parent 84e0ac4a43
commit 07e6bafff8

View File

@@ -16,8 +16,11 @@ from ipaddress import IPv4Address, IPv4Network
from typing import Any, Callable, Literal
from decnet.fleet import all_service_names
from decnet.logging import get_logger
from decnet.services.registry import get_service
log = get_logger("topology.validate")
Severity = Literal["error", "warning"]
@@ -373,7 +376,8 @@ def check_no_host_port_collision(h: dict[str, Any]) -> list[ValidationIssue]:
for c in psutil.net_connections(kind="inet")
if c.status == psutil.CONN_LISTEN and c.laddr
}
except Exception:
except ImportError:
log.warning("psutil not available; skipping host port collision check")
return []
issues: list[ValidationIssue] = []