Follow-ups from the v1 VM endpoint audit (app/routes/v1/proxmox/vms.py):
- Pooled httpx client: a new
AsyncClient is created per request. Move to a shared client on app.state (lifespan) for keep-alive/connection pooling.
- Per-guest-type action allow-list:
suspend/resume aren't valid for LXC the same way as qemu; a suspend on vmtype=lxc reaches Proxmox and returns a generic 502. Validate allowed actions per type.
- Pagination:
list_host_vms returns limit=len(items) and accepts no offset/limit; align with the shared Page contract (or document single-page intent).
- Error granularity: Proxmox 401/403 (bad token) and a 4xx status error both collapse to
502 — consider distinguishing for the UI.
Low/Med priority — none block current functionality.
Follow-ups from the v1 VM endpoint audit (
app/routes/v1/proxmox/vms.py):AsyncClientis created per request. Move to a shared client onapp.state(lifespan) for keep-alive/connection pooling.suspend/resumearen't valid for LXC the same way as qemu; asuspendonvmtype=lxcreaches Proxmox and returns a generic502. Validate allowed actions per type.list_host_vmsreturnslimit=len(items)and accepts nooffset/limit; align with the sharedPagecontract (or document single-page intent).502— consider distinguishing for the UI.Low/Med priority — none block current functionality.