fix: never park the last present family as absent
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Uc9V1v7iXruubpoLiSE24M
This commit is contained in:
@@ -485,12 +485,18 @@ class Host:
|
||||
"""Host-level status: down, overdue, simplex, up or unknown.
|
||||
|
||||
overdue: every present family is overdue. simplex: both present, one up, one overdue
|
||||
(same severity as up). Families the client reports absent are not considered.
|
||||
(same severity as up). Families the client reports absent are not considered,
|
||||
unless none is present: then every connection not parked as ABSENT is considered.
|
||||
"""
|
||||
conns = self.connections
|
||||
if any(c.state == Connection.DOWN for c in conns.values()):
|
||||
return "down"
|
||||
present = [c for afam, c in conns.items() if self.family_present(afam)]
|
||||
if not present:
|
||||
# The client reports no protocol present (e.g. its internet probe fails on every
|
||||
# family) yet may still be heard: monitor whatever is not parked as absent, so a
|
||||
# host that then dies is "overdue", not silently "unknown".
|
||||
present = [c for c in conns.values() if c.state != Connection.ABSENT]
|
||||
up = sum(c.state == Connection.UP for c in present)
|
||||
overdue = sum(c.state == Connection.OVERDUE for c in present)
|
||||
if up and overdue:
|
||||
|
||||
Reference in New Issue
Block a user