From ab8ae30e7d6eb8b8225246eebd65508232e24bc9 Mon Sep 17 00:00:00 2001 From: Yellowcooln <12516003+yellowcooln@users.noreply.github.com> Date: Mon, 18 May 2026 12:40:43 -0400 Subject: [PATCH] web: clarify docker restart update messaging --- repeater/service_utils.py | 11 ++++++++++- repeater/web/update_endpoints.py | 10 ++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/repeater/service_utils.py b/repeater/service_utils.py index f565de9..c52902d 100644 --- a/repeater/service_utils.py +++ b/repeater/service_utils.py @@ -83,6 +83,15 @@ def _schedule_container_exit(delay_seconds: float = _CONTAINER_RESTART_DELAY_SEC threading.Thread(target=_exit_process, name="container-restart-exit", daemon=True).start() +def get_container_restart_message() -> str: + """Return the user-facing restart message for containerized installs.""" + return ( + "Container restart initiated. " + "If you are running pyMC Repeater via Docker or Home Assistant, pull or rebuild " + "a newer image for packaged image updates to take effect." + ) + + def restart_service() -> Tuple[bool, str]: """ Restart the pymc-repeater service. @@ -98,7 +107,7 @@ def restart_service() -> Tuple[bool, str]: if is_container(): _schedule_container_exit() logger.info("Container environment detected; scheduled process exit for container restart") - return True, "Container restart initiated" + return True, get_container_restart_message() if is_buildroot(): if not os.path.exists(INIT_SCRIPT): diff --git a/repeater/web/update_endpoints.py b/repeater/web/update_endpoints.py index e167fc8..58d9fa8 100644 --- a/repeater/web/update_endpoints.py +++ b/repeater/web/update_endpoints.py @@ -29,7 +29,7 @@ from datetime import datetime from typing import List, Optional import cherrypy -from repeater.service_utils import is_buildroot +from repeater.service_utils import get_container_restart_message, is_buildroot, is_container logger = logging.getLogger("HTTPServer") @@ -891,7 +891,13 @@ def _do_install() -> None: restart_msg = str(exc) logger.warning(f"[Update] Could not restart service: {exc}") if restart_ok: - _state.finish_install(True, f"Upgraded to latest on channel '{channel}' – service restarted") + if is_container(): + _state.finish_install( + True, + f"Upgraded to latest on channel '{channel}' – {get_container_restart_message()}", + ) + else: + _state.finish_install(True, f"Upgraded to latest on channel '{channel}' – service restarted") else: _state.finish_install(False, f"Upgrade succeeded but service restart failed: {restart_msg}") else: