CluPilotCloud/tests/Feature/Cancellation
nexxo 51ec6ebed2 Kuendigung B1, Task 3 — Fix-Runde: der Nachtrag braucht ein Lebenszeichen
Vier Befunde aus der Pruefung.

Der schwerste: der Nachtrags-Zweig konnte eine LAUFENDE Kundenmaschine als
abgebaut verbuchen. vmExists() ist ->get(...)->successful() ohne ->throw(), und
Proxmox antwortet auf die Konfiguration einer nicht vorhandenen VM mit 500 —
demselben Code wie ein hakender Knoten. "Gibt es nicht" und "ich konnte nicht
fragen" sahen damit gleich aus, und der Zustand entsteht im Regelbetrieb: ein
Lauf sichert, scheitert am Loeschen, und der naechste findet archive_volid
gesetzt und einen Knoten, der nichts beantwortet. Die Ablagenpruefung steht
deshalb jetzt VOR dem Zweig: nodeStorage() ruft ->throw(), laeuft sie durch, hat
der Knoten geantwortet, und erst dann ist ein "nein" aus vmExists() ein Befund
statt einer Vermutung.

Drei Ausnahmen lagen ausserhalb des try und haetten im Zeitplan die uebrigen
Instanzen mitgerissen: das Anlegen der Sperre (im Betrieb Redis), das Vermerken
des Grundes im catch, und die Freigabe im finally — die sogar am Erfolgsfall
vorbei. Alle drei abgesichert.

Die Sperrfrist war mit backupWaitSeconds + 600 knapper als der laengste Lauf
(Herunterfahren UND Sichern) und konnte kurz vor dem Loeschen auslaufen. Jetzt
shutdownWaitSeconds + backupWaitSeconds + Puffer — und sie hat endlich eine
eigene Pruefung.

Ein einzelnes Archiv ohne Zeitpunkt bleibt gueltig, mehrere nicht: sie lassen
sich nicht ordnen, und vermerkt wuerde womoeglich die Sicherung von vorgestern.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-04 11:36:18 +02:00
..
ArchiveAndTearDownTest.php Kuendigung B1, Task 3 — Fix-Runde: der Nachtrag braucht ein Lebenszeichen 2026-08-04 11:36:18 +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