Press i on a guest to see its backups and network. Backups from every backup-capable storage are listed newest first, with the backup jobs that cover the guest. The network part shows the netN settings (bridge, VLAN, MAC, IPv4/IPv6 setting, firewall) and the addresses in use. Press b in the info screen to back the guest up now: snapshot mode and zstd, like the scheduled job, to a storage you pick (the job's storage is preselected). It asks for confirmation, marks the guest busy and uses --wait. Fixed after review and a read-only live check: - prune-backups arrives as a JSON string; parsing it as a dict crashed the app. - CT addresses come from ip-addresses. inet6 holds only the link-local address, so the global SLAAC address was missing. - The info screen uses the guest's live status, and odd API data (null size, unknown address types) no longer kills the app. - The test fake now copies guest dicts; a shared constant was being mutated across tests. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
45 lines
1.4 KiB
Markdown
45 lines
1.4 KiB
Markdown
# cv4pve-cli-tui
|
|
|
|
Textual TUI for [cv4pve-cli](https://github.com/Corsinvest/cv4pve-cli): list Proxmox VE
|
|
guests (VMs and LXC), start/shutdown/stop/reboot them, and change cores, memory and
|
|
disk size.
|
|
|
|
It shells out to `cv4pve-cli` and uses its current context (`cv4pve-cli config use <name>`);
|
|
it stores no credentials itself. Tested with cv4pve-cli 2.4.0.
|
|
|
|
## Run
|
|
|
|
```sh
|
|
uv run cv4pve-tui
|
|
```
|
|
|
|
| Key | Action |
|
|
|-----|--------|
|
|
| `s` | start |
|
|
| `S` | shutdown (confirm) |
|
|
| `x` | stop - hard power-off (confirm) |
|
|
| `r` | reboot (confirm) |
|
|
| `e` | edit cores / memory / grow a disk (disk growth asks again; it cannot be undone) |
|
|
| `i` | info: backups, backup job, network (config and runtime IPs); `b` there = backup now (snapshot, zstd, storage choice) |
|
|
| `t` | shell in a running LXC container (`ssh -t root@<node> pct enter <vmid>`) |
|
|
| `g` | refresh |
|
|
| `c` | switch cv4pve-cli context (cluster) |
|
|
| `q` | quit |
|
|
|
|
The shell key needs key-based root SSH to the PVE node (LXC only).
|
|
|
|
Switching context runs `cv4pve-cli config use`, which changes cv4pve-cli's global current
|
|
context: other shells and scripts follow, and it stays after the app exits.
|
|
|
|
Empty fields in the edit dialog are left unchanged. If a CPU/memory change cannot be
|
|
hot-plugged, the app tells you it applies at the next reboot.
|
|
|
|
## Development
|
|
|
|
```sh
|
|
uv sync
|
|
uv run pytest
|
|
```
|
|
|
|
Tests mock `cv4pve-cli`; they never touch a cluster. Design: `docs/plans/guest-tui-mvp.md`.
|