Skip to content

Commit 80c9e9c

Browse files
committed
test(haos): simplify Supervisor readiness retry
1 parent c965216 commit 80c9e9c

1 file changed

Lines changed: 16 additions & 8 deletions

File tree

tests/haos_image_build/build_image.py

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1781,6 +1781,20 @@ def _supervisor_info_ready(
17811781
)
17821782

17831783

1784+
def _reconnect_supervisor_during_wait(ws: HAWebSocket) -> BaseException | None:
1785+
"""Best-effort reconnect while Supervisor/Core restarts."""
1786+
try:
1787+
ws.reconnect()
1788+
except _SUPERVISOR_WAIT_TRANSIENT_ERRORS as reconnect_err:
1789+
if not _is_transient_supervisor_readiness_error(reconnect_err):
1790+
raise
1791+
# Handler-start timeouts and transport failures are expected while
1792+
# Supervisor/Core restarts; keep them visible in CI logs.
1793+
LOG.warning("reconnect during update wait failed: %r", reconnect_err)
1794+
return reconnect_err
1795+
return None
1796+
1797+
17841798
def _wait_supervisor_ready(
17851799
ws: HAWebSocket,
17861800
*,
@@ -1820,14 +1834,8 @@ def _wait_supervisor_ready(
18201834
# then best-effort reconnect and keep polling.
18211835
last_error = e
18221836
LOG.debug("Transient error polling /supervisor/info: %r", e)
1823-
try:
1824-
ws.reconnect()
1825-
except _SUPERVISOR_WAIT_TRANSIENT_ERRORS as reconnect_err:
1826-
if not _is_transient_supervisor_readiness_error(reconnect_err):
1827-
raise
1828-
# Handler-start timeouts and transport failures are expected
1829-
# while Supervisor/Core restarts; keep them visible in CI logs.
1830-
LOG.warning("reconnect during update wait failed: %r", reconnect_err)
1837+
reconnect_err = _reconnect_supervisor_during_wait(ws)
1838+
if reconnect_err is not None:
18311839
last_error = reconnect_err
18321840
continue
18331841
version = info.get("version")

0 commit comments

Comments
 (0)