From 0254120f3e7da016821edf783839baa9510b7e28 Mon Sep 17 00:00:00 2001 From: Stephane de Labrusse Date: Mon, 4 May 2026 12:23:09 +0200 Subject: [PATCH 1/3] fix(wait-startup): improve status check and error handling --- imageroot/bin/wait-startup | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/imageroot/bin/wait-startup b/imageroot/bin/wait-startup index d9bcef2..63dee1d 100755 --- a/imageroot/bin/wait-startup +++ b/imageroot/bin/wait-startup @@ -6,7 +6,6 @@ # import sys -import json import time import subprocess @@ -21,11 +20,14 @@ i = 0 while i < max_tries: i = i+1 try: - ret, out = occ(["status", "--output", "json"]) - status = json.loads(out) - if status["installed"]: + ret, out = occ(["status", "-e"]) + if ret == 0: break - print(f"wait-startup: waiting for nextcloud-app ({i})", file=sys.stderr) - time.sleep(1) + status_msg = {1: "maintenance mode enabled", 2: "needs DB upgrade"}.get(ret, "not ready") + print(f"wait-startup: waiting for nextcloud-app ({i}): occ status exit code={ret} ({status_msg})", file=sys.stderr) except Exception as e: - continue + print(f"wait-startup: exception ({i}): {e}", file=sys.stderr) + time.sleep(1) +else: + print("wait-startup: Nextcloud did not become ready in time", file=sys.stderr) + sys.exit(1) From 8d35926948d19ad69341c579e6fb8dd9aff466a2 Mon Sep 17 00:00:00 2001 From: Stephane de Labrusse Date: Mon, 4 May 2026 13:08:29 +0200 Subject: [PATCH 2/3] fix(wait-startup): improve error message for startup timeout Co-authored-by: Copilot --- imageroot/bin/wait-startup | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/imageroot/bin/wait-startup b/imageroot/bin/wait-startup index 63dee1d..f405b27 100755 --- a/imageroot/bin/wait-startup +++ b/imageroot/bin/wait-startup @@ -17,10 +17,12 @@ def occ(args): # wait after nextcloud-app is ready max_tries = 60 i = 0 +last_ret = None while i < max_tries: i = i+1 try: ret, out = occ(["status", "-e"]) + last_ret = ret if ret == 0: break status_msg = {1: "maintenance mode enabled", 2: "needs DB upgrade"}.get(ret, "not ready") @@ -29,5 +31,6 @@ while i < max_tries: print(f"wait-startup: exception ({i}): {e}", file=sys.stderr) time.sleep(1) else: - print("wait-startup: Nextcloud did not become ready in time", file=sys.stderr) + status_msg = {1: "maintenance mode enabled", 2: "needs DB upgrade"}.get(last_ret, "not ready") + print(f"wait-startup: Nextcloud did not become ready in time (last status: {status_msg})", file=sys.stderr) sys.exit(1) From 5491343aa0902b19689402de58c2094d3407ed43 Mon Sep 17 00:00:00 2001 From: Stephane de Labrusse Date: Wed, 6 May 2026 11:17:55 +0200 Subject: [PATCH 3/3] fix(wait-startup): centralize exit code messages for improved readability Co-authored-by: Copilot --- imageroot/bin/wait-startup | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/imageroot/bin/wait-startup b/imageroot/bin/wait-startup index f405b27..d4e8f86 100755 --- a/imageroot/bin/wait-startup +++ b/imageroot/bin/wait-startup @@ -15,6 +15,7 @@ def occ(args): return (p.returncode, p.stdout) # wait after nextcloud-app is ready +exit_code_messages = {1: "maintenance mode enabled", 2: "needs DB upgrade"} max_tries = 60 i = 0 last_ret = None @@ -25,12 +26,12 @@ while i < max_tries: last_ret = ret if ret == 0: break - status_msg = {1: "maintenance mode enabled", 2: "needs DB upgrade"}.get(ret, "not ready") + status_msg = exit_code_messages.get(ret, "not ready") print(f"wait-startup: waiting for nextcloud-app ({i}): occ status exit code={ret} ({status_msg})", file=sys.stderr) except Exception as e: print(f"wait-startup: exception ({i}): {e}", file=sys.stderr) time.sleep(1) else: - status_msg = {1: "maintenance mode enabled", 2: "needs DB upgrade"}.get(last_ret, "not ready") + status_msg = exit_code_messages.get(last_ret, "not ready") print(f"wait-startup: Nextcloud did not become ready in time (last status: {status_msg})", file=sys.stderr) sys.exit(1)