From 077864691f66f71a050de489b79b75f64d7787c1 Mon Sep 17 00:00:00 2001 From: Roger Luethi Date: Mon, 13 Jul 2026 11:27:22 +0200 Subject: [PATCH 1/3] Install aria2 in manager image The image-manager can now fall back to downloading an image with aria2c and importing it via glance-direct when Glance's web-download stalls (used for the octavia amphora image). Add the aria2 package to the manager image so the aria2c binary is available at runtime. Assisted-by: Claude:claude-opus-4-8 Signed-off-by: Roger Luethi --- Containerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Containerfile b/Containerfile index c54dd191..4e06429e 100644 --- a/Containerfile +++ b/Containerfile @@ -41,6 +41,7 @@ apk add --no-cache --virtual .build-deps \ musl-dev \ openldap-dev apk add --no-cache \ + aria2 \ cdrkit \ coreutils \ git \ From cc15eb978efd53624473883f4a6e18e0fd0810cd Mon Sep 17 00:00:00 2001 From: Roger Luethi Date: Mon, 13 Jul 2026 11:27:27 +0200 Subject: [PATCH 2/3] Raise octavia image task timeout The octavia amphora image import can now fall back from web-download to aria2 + glance-direct, which adds a local ~1 GB download and a staging upload on top of the normal import. Raise this task's timeout from 3600 to 5400 seconds so the fallback has room to complete within the budget; the other image-manager tasks are unchanged. Assisted-by: Claude:claude-opus-4-8 Signed-off-by: Roger Luethi --- osism/commands/manage.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/osism/commands/manage.py b/osism/commands/manage.py index 03db4257..cec69fe7 100644 --- a/osism/commands/manage.py +++ b/osism/commands/manage.py @@ -481,7 +481,10 @@ def take_action(self, parsed_args): f"It takes a moment until task {task.task_id} (image-manager) has been started and output is visible here." ) - return handle_task(task, wait, format="script", timeout=3600) + # A larger budget than the other image tasks: on a stuck web-download + # the image-manager falls back to aria2 + glance-direct, which adds a + # local download and staging on top of the import. + return handle_task(task, wait, format="script", timeout=5400) class Images(Command): From 7f860d9f3ffe919153fcf27f73a88b791b3023bc Mon Sep 17 00:00:00 2001 From: Roger Luethi Date: Mon, 13 Jul 2026 20:31:50 +0200 Subject: [PATCH 3/3] Drop octavia web-download retry The amphora image source is chronically slow, so a stuck web-download import rarely recovers on an immediate retry -- the retry just spends another multi-minute doomed transfer. Set --stuck-retry to 0 so there is a single web-download attempt; on its failure the default --prefetch on-stuck path falls back to aria2 + glance-direct, which is the robust recovery. Good-path imports are unchanged (web-download still tried once). Assisted-by: Claude:claude-opus-4-8 Signed-off-by: Roger Luethi --- osism/commands/manage.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/osism/commands/manage.py b/osism/commands/manage.py index cec69fe7..1d2a53e1 100644 --- a/osism/commands/manage.py +++ b/osism/commands/manage.py @@ -468,8 +468,12 @@ def take_action(self, parsed_args): "--cloud", cloud, "--deactivate", + # One web-download attempt only: the amphora image source is + # chronically slow, so retrying web-download just wastes another + # multi-minute doomed transfer. On the first failure the default + # --prefetch on-stuck falls back to aria2 + glance-direct. "--stuck-retry", - "1", + "0", ] task_signature = openstack.image_manager.si(