CluPilotCloud/tests/Feature/Cancellation
nexxo 24a0f64128 Kuendigung B1, Task 3: archivieren, nachsehen, und erst dann abbauen
Gekuendigte Kundenmaschinen wurden nie abgebaut. EndInstanceService nimmt der
Instanz am Laufzeitende die Adresse weg und laesst die Maschine ausdruecklich
stehen; danach kam nichts mehr, und sie belegte fuer immer einen Platz auf dem
Host. ArchiveAndTearDown ist der Schritt danach: vierzehn Tage nach dem Ende
wird die Maschine archiviert und geloescht.

Die eine Regel: niemals loeschen, bevor das Archiv nachweislich existiert. Ein
vzdump kann mit einer Auftragskennung enden und trotzdem nichts hinterlassen —
volle Ablage, abgebrochener Lauf, ein Fehler im Gast. Deshalb steht zwischen
Sichern und Loeschen eine echte Nachschau auf der Ablage (backupsFor), und der
juengste Eintrag muss nach dem Beginn dieses Laufes entstanden sein: eine
naechtliche Sicherung von gestern ist kein Archiv, dem der letzte Tag fehlen
darf.

Beide Proxmox-Aufrufe liefern nur eine Kennung, keine Zusage, also wird auf den
Auftrag gewartet und danach nachgesehen — beim Herunterfahren, ob der Gast
wirklich steht, beim Sichern, ob die Datei liegt. Unmittelbar vor dem Loeschen
wird der Datensatz neu gelesen: eine Instanz, die in der Zwischenzeit
wiederbelebt wurde, wird nicht geloescht. Keine Ausnahme entkommt — ein
Fehlschlag ist false und ein Grund in teardown_error, weil dieser Ablauf spaeter
im Zeitplan ueber viele Instanzen laeuft.

Die Ablage kommt aus einer Einstellung (provisioning.proxmox.archive_storage,
Vorgabe local wie bei den naechtlichen Sicherungen) UND wird gegen die Ablagen
des Knotens geprueft. Fehlt sie oder nimmt sie keine Sicherungen auf, bricht der
Abbau ab, bevor eine Kundenmaschine dafuer heruntergefahren wurde.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-04 11:15:52 +02:00
..
ArchiveAndTearDownTest.php Kuendigung B1, Task 3: archivieren, nachsehen, und erst dann abbauen 2026-08-04 11:15:52 +02:00
CancelAsksAboutExportTest.php Zweite Fix-Welle: kein „beendet" ueber einem laufenden Aufbau 2026-08-04 10:25:01 +02:00
DashboardCountdownTest.php Zweite Fix-Welle: kein „beendet" ueber einem laufenden Aufbau 2026-08-04 10:25:01 +02:00
ExportAnswerHasReadersTest.php Fix-Welle: die Kuendigung sagt jedem nur das, was fuer ihn stimmt 2026-08-04 10:00:36 +02:00
ExportWishTest.php Die Instanz merkt sich, was der Kunde zu seinen Daten gesagt hat 2026-08-04 08:07:56 +02:00
RemindEndingServicesTest.php Fix-Welle: die Kuendigung sagt jedem nur das, was fuer ihn stimmt 2026-08-04 10:00:36 +02:00
TeardownStateTest.php Vier Spalten zur Verfolgung von Archivierung und Abbau von Instanzen 2026-08-04 10:55:44 +02:00