CluPilotCloud/tests/Feature/Provisioning
nexxo 4cd848eead Fix-Runde 2: Warnung fuer nicht reparierte Hosts, case-sichere Vorabpruefung, wiederholbare Migration
Vier Befunde aus dem Abschluss-Review ueber d62a2c8/c815aee/11ba7ee:

- Die Migration renamt nur Hosts mit dns_name; pve-fsn-1/pve-hel-1 blieben
  unrepariert und stumm. Sie werden jetzt gesammelt und gemeldet (Log +
  Konsole), ohne die Migration abzubrechen - diese Hosts laufen weiter.
- Die Vorabpruefung verglich in PHP byteweise, die Spalte liegt auf
  utf8mb4_unicode_ci. Umgestellt auf GROUP BY/HAVING in SQL, damit dieselbe
  Kollation entscheidet, die spaeter den Unique-Index baut.
- Ein Fehlschlag nach der Vorabpruefung liess einen zweiten Anlauf sofort an
  "Duplicate column name" sterben. Die beiden betroffenen Schema-Schritte
  stehen jetzt hinter Schema::hasColumn(), macht den Kommentar darueber wahr.
- Seeder (DatabaseSeeder, DemoCustomerSeeder) sind auf pve-*-Namen sitzen
  geblieben, weil sie dns_name nie benutzt hatten. Auf fsn-01/hel-01
  umgestellt, next_host_number entsprechend vorbelegt.

Dazu vier Kleinigkeiten: ein Test nagelte den falschen Config-Schluessel fest
(dns.zone statt platform_zone), HostName::claim() erzwingt jetzt wirklich
eine Transaktion statt es nur zu verlangen, down() vergisst nicht mehr den
Settings-Cache, und der Kommentar ueber HostName::free() nennt jetzt ehrlich
die Einschraenkung auf einen einzelnen Thread.

Alle vier Migrationslaeufe (Vorabpruefung-Kollision, Meldung fuer
unreparierte Hosts, Fehlschlag-und-erneuter-Anlauf, Rueckbau mit
Cache-Invalidierung) gegen echtes MariaDB auf einer Scratch-Datenbank
geprueft, um die parallele Billing-Session nicht zu beruehren. Voller
Testlauf: 2395 bestanden. Bericht mit allen Befehlen und Ausgaben unter
.superpowers/sdd/2026-08-01-hostname-vergabe/final-fix-report.md.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-01 14:52:15 +02:00
..
BridgeScriptTest.php Codex-Runde 2: der Gateway-Fix erreichte den Produktivpfad nicht 2026-08-01 13:34:12 +02:00
CollectHostLoadTest.php Release v1.3.93 — die Seite konnte den Host gar nicht fragen 2026-08-01 11:23:00 +02:00
CustomerDataModelTest.php Release v1.3.85 — Handshake-Prüfung hing an einem Programm, das es nicht gibt 2026-08-01 03:00:19 +02:00
CustomerProvisioningEndToEndTest.php Release v1.3.85 — Handshake-Prüfung hing an einem Programm, das es nicht gibt 2026-08-01 03:00:19 +02:00
CustomerStepBaseTest.php Apply a bought plan change instead of only pricing it 2026-07-29 17:18:55 +02:00
CustomerStepsTest.php Release v1.3.85 — Handshake-Prüfung hing an einem Programm, das es nicht gibt 2026-08-01 03:00:19 +02:00
DataModelTest.php Make host onboarding survive the machine it runs on 2026-07-30 00:54:16 +02:00
EndInstanceServiceTest.php Take the address by field, fix the customer type, ask why they leave 2026-07-30 16:41:32 +02:00
HetznerCloudDnsTest.php Hetzner-Cloud-DNS, Bereitschaftsseite aus sich heraus behebbar 2026-07-31 19:50:01 +02:00
HostOnboardingEndToEndTest.php Hostnamen vergibt CluPilot: ein Name statt zweier, und der Zaehler ueberlebt das Loeschen 2026-08-01 13:45:43 +02:00
HostStepsTest.php Fix-Runde 2: Warnung fuer nicht reparierte Hosts, case-sichere Vorabpruefung, wiederholbare Migration 2026-08-01 14:52:15 +02:00
HostTokenKeyMigrationTest.php Make host onboarding survive the machine it runs on 2026-07-30 00:54:16 +02:00
InstanceRestartTest.php Fix nine defects in the provisioning pipelines 2026-07-30 01:34:55 +02:00
LiveProgressTest.php Send a guest bounced off the console to the console's own sign-in 2026-07-28 13:32:05 +02:00
PipelineRegistryTest.php Fix nine defects in the provisioning pipelines 2026-07-30 01:34:55 +02:00
PruneHostDnsTest.php Hetzner-Cloud-DNS, Bereitschaftsseite aus sich heraus behebbar 2026-07-31 19:50:01 +02:00
RunRunnerTest.php Fix nine defects in the provisioning pipelines 2026-07-30 01:34:55 +02:00
ServicesTest.php Hostnamen vergibt CluPilot: ein Name statt zweier, und der Zaehler ueberlebt das Loeschen 2026-08-01 13:45:43 +02:00
StoragePackHeadroomTest.php Fix-Runde 1: Formel-Test raus, eigene Testhilfe, Docblock nachgezogen 2026-08-01 14:41:39 +02:00
StripeWebhookTest.php Stop charging for a service that has ended 2026-07-30 00:52:19 +02:00
SubscriptionSnapshotTest.php Release v1.3.85 — Handshake-Prüfung hing an einem Programm, das es nicht gibt 2026-08-01 03:00:19 +02:00
TickProvisioningTest.php feat(billing): the plan catalogue becomes three tables, and config stops selling 2026-07-26 12:05:56 +02:00