Repository navigation
REQ 102
Lane teardown shall mutate only the run's verified VM UUID, only while that VM is in an allow-listed state, and report removal only after observing that UUID absent from the hypervisor.
This generalizes REQ-041, REQ-055, REQ-057, and REQ-064, which are scoped to Windows provisioning, to disposable lanes on any platform. It keeps the rule that a healthy livesnapshotting operation is never interrupted (VITechnologies/projectbuddy#166).
The allow-list is: power off only from running or paused, and destroy only from poweroff or aborted. The teardown receipt binds the UUID, each observed state, and the absence observation. Two teardown requests for one UUID run one at a time. Rejected: teardown of a VM reporting livesnapshotting, onlinesnapshotting, or any state outside the allow-list fails closed and leaves the VM in place; a teardown target given by name is rejected; a receipt that claims removal without the absence observation fails verification.
Planned, TEST-104; not yet performed live. Offline fixture tests against a stub VBoxManage cover each TEST-104 stimulus: every allow-listed state, the snapshotting and unknown states, targets given by name, two requests for one UUID, and a receipt without the absence observation.
Software-Requirements-Specification
High
scripts/tests/test_lane_teardown.py
scripts/lane/teardown.py, scripts/Invoke-Lane.py (teardown, verify-teardown), and docs/vm-provisioning/ubuntu-lane.md
Planned; offline fixture tests pass, no live proof yet