feat(chv): hybrid executor core — routing, clean pool, data disk, snapshot tenant check
Track A (§9.1 items 1-4, DESIGN-HYBRID.md): - dispatch_task_hybrid: route by tier + lease state (resident resume/cold vs pool hit/cold/queue, 300s queue timeout -> host_capacity_exceeded) - clean pool prewarm split from prewarm_persistent_vm: tenant-less birth (no data disk, no seed, no Gitea sync wait), binding deferred to acquire; warm_pool_sync_incomplete fail-closed at allocation - tenant data disk mount at acquire (attach_tenant_data_disk, PUT /vm.add-disk + chv-data-mount) and unmount+sync at release; _verify_task_disk_source invariant: task disk must be the tenant's data disk, never the clean snapshot disk - restore_vm validates tenant_id before restore: unregistered/unmarked snapshot denied in strict (hybrid) mode, mismatch -> snapshot_tenant_ mismatch fail-closed, audit vm_restore_denied (host_id + tenant only) - settled values: 2 warm per host, pool cap 50% of low-freq peak, resident cap 50% of VM slots, 1 snapshot per tenant per 30 days Tests: cloud/tests/test_chv_hybrid_a.py (27 tests, all passing) Full cloud suite: 4606 tests, 0 failures, 0 errors, 15 skipped (TMPDIR on /home; ~91 min, slowed by concurrent track-C suite)
This commit is contained in:
1 parent
3cdfd0f79e
commit
172accb2ec
2 files changed
+1707
-64
No files matched your search
+1019
-64
File diff suppressed because it is too large.
Load diff
Reference in new issue
Block a user