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:
2026-09-24 10:28:28 +00:00
co-authored by Claude Opus 5.5
parent 7f2073f94b
commit 3d72507894
28 changed files with 882 additions and 201 deletions
+19
View File
@@ -1,5 +1,24 @@
# Changelog
## 2026-09-24 10:28 UTC — proxmox provider: reviewed, fixed, proven on a real Proxmox VE 9.2 host
The `proxmox` provider (VMs cloned from a template on Proxmox VE through its REST API)
finished its last phase: a two-pass review, a real-host run on pv1-1, and captures of the
three API answers the design had only guessed.
- Delete now removes the seed ISO **before** destroying the VM. Before, a seed delete that
failed after the destroy was never retried (the next Get is NotFound), so the ISO leaked.
A 403 for `Datastore.Allocate` now fails Delete on every path instead of being skipped.
- Create skips a probe VMID held by someone else's VM at once, instead of waiting up to 10
minutes on that VM's lock on every retry.
- The captures corrected two assumptions: a missing ISO storage is a 400 (the health check
now says `StorageNotFound`, not `APIError`), and a hibernated VM can be destroyed (Delete
destroys ours instead of latching the Proxy).
- `TestProxmox_lifecycle` and `TestProxmoxCheck_realHost` passed on PVE 9.2.20: Create 6.2 s,
an address 50 s later. A kind pass took a sample Proxy to Ready and back.
- Review record: `docs/reviews/2026-09-23-proxmox-provider-review/REPORT.md`. Timings:
`docs/testing.md`. Code: `internal/provider/proxmox/{delete,create,check,errors}.go`.
## 2026-09-18 07:52 UTC — docs/operating.md, starting with the libvirt-RPC log query
New home for day-to-day helpers against a running operator, seeded with the `jq` query