diff --git a/.gitea/workflows/terraform-apply.yml b/.gitea/workflows/terraform-apply.yml index fa05fc1..fdd213e 100644 --- a/.gitea/workflows/terraform-apply.yml +++ b/.gitea/workflows/terraform-apply.yml @@ -96,6 +96,7 @@ jobs: import ssl import sys import time + import urllib.error import urllib.parse import urllib.request @@ -145,7 +146,7 @@ jobs: payload = resp.read().decode("utf-8") return json.loads(payload) - def wait_for_guest_agent(vmid, timeout_seconds=300): + def wait_for_guest_agent(vmid, timeout_seconds=120): deadline = time.time() + timeout_seconds tries = 0 while time.time() < deadline: @@ -155,8 +156,14 @@ jobs: if res.get("data") == "pong": print(f"Guest agent ready for vmid {vmid}", flush=True) return True - except Exception: - pass + except urllib.error.HTTPError as exc: + detail = exc.read().decode("utf-8", "ignore") + print(f"Agent ping HTTP error for vmid {vmid}: {exc.code} {detail}", flush=True) + if exc.code in (401, 403): + return False + except Exception as exc: + if tries == 1: + print(f"Agent ping error for vmid {vmid}: {exc}", flush=True) if tries % 6 == 0: remaining = int(deadline - time.time()) print(f"Waiting for guest agent on vmid {vmid} ({remaining}s left)", flush=True)