Skip to content

REQ 102

sergio velderrain edited this page Nov 9, 2026 · 2 revisions

REQ-102: Bind lane teardown to the verified UUID and an allow-listed state

Requirement

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.

Rationale

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).

Fit Criterion

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.

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.

Source

Software-Requirements-Specification

Priority

High

TestID

TEST-104

TestArtifact

scripts/tests/test_lane_teardown.py

CodeRef

scripts/lane/teardown.py, scripts/Invoke-Lane.py (teardown, verify-teardown), and docs/vm-provisioning/ubuntu-lane.md

Status

Planned; offline fixture tests pass, no live proof yet

Clone this wiki locally