CluPilotCloud/tests/Feature/Provisioning
nexxo edf24257b5 fix(hosts): reserve the DNS name under the lock, never reuse it, clean it up
Codex was right that my never-reuse claim did not hold:

- The lock was released with only a candidate in hand, so two concurrent
  onboardings in one datacenter could pick the same name and overwrite each
  other's record. The name is now persisted on the host while still locked.
- The number was derived from the hosts that happen to exist, so removing the
  highest one handed that number straight back out — a cached name would then
  resolve to a different machine. The counter is stored per datacenter, floored
  by what is actually in use so a wiped settings store cannot reissue live names.
- PurgeHost deleted the row that carried the record id, leaving the machine's
  management address published with nothing left to clean it up.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-25 23:51:25 +02:00
..
CustomerDataModelTest.php fix(engine-b): default-deny firewall, disk-based capacity, synchronous credential mail 2026-07-25 12:39:15 +02:00
CustomerProvisioningEndToEndTest.php fix(engine-b): acceptance gate verifies real health, not just breadcrumbs 2026-07-25 13:00:49 +02:00
CustomerStepBaseTest.php feat(engine-b): CustomerStep base + shared resource trait + config 2026-07-25 11:39:56 +02:00
CustomerStepsTest.php fix(monitoring): cap monitoring retries at the run budget; dependency-free liveness probe 2026-07-25 20:19:32 +02:00
DataModelTest.php feat(engine): core provisioning data model + hosts 2026-07-25 09:49:43 +02:00
HostOnboardingEndToEndTest.php fix(engine): honour backoff timing + don't double-count Proxmox storage 2026-07-25 10:32:14 +02:00
HostStepsTest.php fix(hosts): reserve the DNS name under the lock, never reuse it, clean it up 2026-07-25 23:51:25 +02:00
LiveProgressTest.php feat(engine-b): live provisioning progress (admin console + customer dashboard) 2026-07-25 11:57:35 +02:00
PipelineRegistryTest.php feat(engine): orchestrator core (state machine + tick + lock) 2026-07-25 09:54:52 +02:00
RunRunnerTest.php fix(engine): don't reset started_at on poll so step deadlines accumulate 2026-07-25 12:15:26 +02:00
ServicesTest.php feat(admin): VPN access management with live peer state 2026-07-25 21:38:12 +02:00
StripeWebhookTest.php fix(engine-b): async stripe payments, capacity honesty, durable credential mail 2026-07-25 12:29:47 +02:00
TickProvisioningTest.php feat(engine): orchestrator core (state machine + tick + lock) 2026-07-25 09:54:52 +02:00