fix(proxmox): Task-Status unter Last weiter abfragen, nesting an

Im Feldtest wurde ein LXC fertig angelegt, während ProxDeploy nach drei gescheiterten Statusabfragen aufgab (Verbindungsaufbau > 10 s bei 76 % I/O-Last). Statusabfragen werden jetzt bis zum Task-Zeitlimit wiederholt, der Verbindungsaufbau darf 30 s dauern. nesting ist für Container standardmäßig an wie in der Proxmox-Oberfläche – Proxmox warnt sonst bei systemd 249/252.

Refs #020

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-23 15:46:15 +02:00
co-authored by Claude Opus 5.5
parent db57818eb3
commit bc13b94c7e
9 changed files with 63 additions and 14 deletions
+28
View File
@@ -275,3 +275,31 @@ describe("Proxmox-Tasks (UPID)", () => {
expect(fehler.hinweis).toContain("TASK ERROR");
});
});
describe("Task abwarten unter Last", () => {
it("fragt nach vorübergehenden Fehlern der Statusabfrage weiter, bis der Task fertig ist", async () => {
let n = 0;
mock.route("GET", /\/nodes\/pve09\/tasks\/[^/]+\/status$/, () => {
n += 1;
if (n <= 4) return { status: 596, statusText: "Broken pipe" };
return { data: { status: "stopped", exitstatus: "WARNINGS: 1" } };
});
await aufgabeAbwarten(client(), "UPID:pve09:00000001:00000002:00000003:vzcreate:114:root@pam:", {
warten: async () => {},
});
expect(n).toBe(5);
});
it("bricht bei fachlichen Fehlern sofort ab", async () => {
mock.route("GET", /\/nodes\/pve08\/tasks\/[^/]+\/status$/, () => ({
status: 403,
statusText: "Permission check failed (/nodes/pve08, Sys.Audit)",
}));
const fehler = await fehlerVon(
aufgabeAbwarten(client(), "UPID:pve08:00000001:00000002:00000003:vzcreate:114:root@pam:", {
warten: async () => {},
}),
);
expect(fehler.art).toBe("recht");
});
});