CluPilotCloud/app/Provisioning/Steps/Customer
nexxo 3930cf12ae Mailversand darf eine bezahlte Bereitstellung nie aufhalten
ConfigureInstanceMail stand als Pflichtschritt in der customer-Pipeline und
liess den ganzen Lauf scheitern, wenn Server oder Postfach fehlten. Der
Mailserver dieses Produkts existiert noch nicht — er wird gerade erst
aufgesetzt. Jede neue bezahlte Bestellung waere damit an einer Nebenfunktion
haengengeblieben: der Kunde zahlt, die Cloud kommt nicht.

Denselben Fall hat dieses Projekt bei RegisterMonitoring schon richtig
entschieden: eine nicht erreichbare Ueberwachung blockiert die Bereitstellung
nie. Mailversand bekommt jetzt dieselbe Behandlung. Fehlt Server oder
Postfach, geht der Schritt mit advance() weiter und protokolliert den Grund
per Log::warning (Instanz-UUID + Grund) fuer den Betreiber; nachgeholt wird es
ueber clupilot:configure-instance-mail (Aufgabe 4), sobald beides steht.

Nicht eingerichtet bleibt etwas anderes als kaputt: sobald Server und
Postfach da sind, wird geschrieben wie zuvor, und ein echter Schreibfehler
(occ-Fehlercode, Gast antwortet nicht) bleibt weiterhin ein Fehlschlag ueber
CustomerStep::guest().

Der bestehende Test "schreibt GAR NICHTS, wenn der Mailserver fehlt" prueft
jetzt StepResult::ADVANCE statt FAIL und zusaetzlich, dass der Grund geloggt
wird. Ein neuer End-to-End-Test in CustomerProvisioningEndToEndTest faehrt
eine bezahlte Bestellung ohne jede Mail-Fixture vollstaendig bis "completed"
— die Zusicherung, um die es hier eigentlich geht.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-03 20:06:34 +02:00
..
ApplyStorageQuota.php Fix nine defects in the provisioning pipelines 2026-07-30 01:34:55 +02:00
CloneVirtualMachine.php fix(engine-b): clean re-clone on lost task ref; idempotent firewall rules 2026-07-25 13:04:48 +02:00
CompleteProvisioning.php Stop mailing the initial admin password, hold it in the panel until noted 2026-07-28 23:19:20 +02:00
CompleteRestart.php Restart a machine, enforce the quota that was sold, end a route that ended 2026-07-29 18:28:28 +02:00
ConfigureCloudInit.php fix(engine-b): apply plan CPU/RAM; idempotent backup + monitoring registration 2026-07-25 12:42:10 +02:00
ConfigureDnsAndTls.php Fix nine defects in the provisioning pipelines 2026-07-30 01:34:55 +02:00
ConfigureInstanceMail.php Mailversand darf eine bezahlte Bereitstellung nie aufhalten 2026-08-03 20:06:34 +02:00
ConfigureNetwork.php Fix nine defects in the provisioning pipelines 2026-07-30 01:34:55 +02:00
ConfigureNextcloud.php Fix nine defects in the provisioning pipelines 2026-07-30 01:34:55 +02:00
CreateCustomerAdmin.php Fix nine defects in the provisioning pipelines 2026-07-30 01:34:55 +02:00
CustomerStep.php fix(billing): a paid order opens a contract, and provisioning obeys it 2026-07-26 11:10:00 +02:00
DeployApplicationStack.php Fix nine defects in the provisioning pipelines 2026-07-30 01:34:55 +02:00
GrowGuestFilesystem.php Deliver the storage a customer actually buys 2026-07-29 19:13:10 +02:00
RegisterBackup.php fix(engine-b): clone recovery waits for lock; register rows before breadcrumb 2026-07-25 12:44:22 +02:00
RegisterMonitoring.php Add the SSH identity to the vault, and give deployment config a console page 2026-07-29 00:52:44 +02:00
ReserveResources.php Ein angehefteter Host umging die Reservierung 2026-08-01 18:53:11 +02:00
ResizeVirtualMachine.php Schalter je Paket, ehrliche Statusanzeige, Reste der alten Leiter 2026-08-01 17:53:06 +02:00
RunAcceptanceChecks.php Fix nine defects in the provisioning pipelines 2026-07-30 01:34:55 +02:00
SettlePlanServices.php Apply a bought plan change instead of only pricing it 2026-07-29 17:18:55 +02:00
ShutDownVirtualMachine.php Restart a machine, enforce the quota that was sold, end a route that ended 2026-07-29 18:28:28 +02:00
StartVirtualMachine.php feat(engine-b): 15-step customer pipeline + DNS/Traefik services 2026-07-25 11:50:26 +02:00
ValidateOrder.php fix(billing): a paid order opens a contract, and provisioning obeys it 2026-07-26 11:10:00 +02:00
WaitForGuestAgent.php fix(engine): don't reset started_at on poll so step deadlines accumulate 2026-07-25 12:15:26 +02:00