proxmox: review fixes, real-host validation record, changelog
Phase 10. Two review passes (go-operator-reviewer, /code-review high) over the branch, recorded in docs/reviews/2026-09-23-proxmox-provider-review/: 9 findings fixed, 3 accepted as documented limits, 7 rejected with a reason. - Delete removes the seed between the stop and the destroy, so a failed seed delete leaves the VM for the next Delete instead of leaking the ISO; a Permanent refusal on the every-node path fails the call. - Create skips a probe VMID whose listed name is someone else's without waiting on its lock. - The three answers Phase 0 never captured are fixtures now: a missing storage is a 400 (the Checker reports StorageNotFound), a hibernated VM is destroyable (Delete destroys ours), a paused VM stops. - TestProxmox_lifecycle and TestProxmoxCheck_realHost passed on pv1-1 (PVE 9.2.20); the docs record the run and drop "not yet run". Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -341,8 +341,10 @@ func TestGet_unknownStatusIsTransient(t *testing.T) {
|
||||
fx := newFixture(t, 1)
|
||||
fx.addOurVM(testVMID, testName, "running").status = "unknown"
|
||||
msg := assertGetFails(t, fx, provider.ErrTransient)
|
||||
if !strings.Contains(msg, "pv1-1") {
|
||||
t.Errorf("error = %s, want it to name the node", msg)
|
||||
// On pv1-1 the first Get after Create met this with the node up: the
|
||||
// listing had not reported the new VM yet (Phase 10 run, finding P6).
|
||||
if !strings.Contains(msg, "pv1-1") || !strings.Contains(msg, "too new to be reported yet") {
|
||||
t.Errorf("error = %s, want it to name the node and both causes", msg)
|
||||
}
|
||||
if n := fx.fake.callCount("VMConfig"); n != 0 {
|
||||
t.Errorf("VMConfig calls = %d, want 0 while the node is unknown", n)
|
||||
|
||||
Reference in New Issue
Block a user