mirror of
https://github.com/ivenator1/proxmox-management.git
synced 2026-07-18 11:28:21 +08:00
[PR #13] [MERGED] feat: Phase 4a — vm_update + remote_host_update Python flows #13
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
pull-request
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
ivenator1/proxmox-management#13
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/ivenator1/proxmox-management/pull/13
Author: @ivenator1
Created: 6/2/2026
Status: ✅ Merged
Merged: 6/2/2026
Merged by: @ivenator1
Base:
main← Head:phase-4-vm-remote-node-flows📝 Commits (8)
6510988feat: Phase 4a — vm_update + remote_host_update Python flowsa794decfix: VM rollback uses node_executor; HA-aware node discovery via pvesh405935dfix: use if/elif/else for pkg manager detection to avoid bash && || precedence bug8b68ee2feat: add LXC/VM sub-headings in Discord briefing per node8995e66feat: show package upgrade count for VMs in Discord briefingdde870efix: suppress pkg_count in dry-run — apt -s counts pending not upgraded2572b15docs: update roadmap and CLAUDE.md for Phase 4a completion4a0f1f9Merge branch 'main' into phase-4-vm-remote-node-flows📊 Changes
22 files changed (+1941 additions, -61 deletions)
View changed files
📝
CLAUDE.md(+26 -5)📝
ansible/primitives/snapshot.yml(+7 -6)📝
docs/migration-roadmap.md(+95 -24)📝
fleet-update.yml(+66 -12)📝
hosts.ini.example(+5 -2)📝
proxmox_fleet/changes.py(+42 -0)📝
proxmox_fleet/cli.py(+38 -2)📝
proxmox_fleet/driver.py(+206 -2)📝
proxmox_fleet/executor.py(+4 -3)➕
proxmox_fleet/flows/remote.py(+171 -0)➕
proxmox_fleet/flows/vm.py(+253 -0)📝
proxmox_fleet/inventory.py(+123 -0)📝
proxmox_fleet/models/settings.py(+15 -0)📝
proxmox_fleet/models/state.py(+2 -1)📝
proxmox_fleet/status.py(+88 -0)📝
roles/lxc_update/molecule/mol_run_flow.py(+1 -1)📝
templates/discord_briefing.j2(+2 -2)📝
tests/unit/test_discord_briefing.py(+43 -1)➕
tests/unit/test_flow_remote.py(+253 -0)➕
tests/unit/test_flow_vm.py(+347 -0)...and 2 more files
📄 Description
Summary
vm_updateandremote_host_updateAnsible roles to Python flows (flows/vm.py,flows/remote.py) behind--use-vm-flow/--use-remote-flowflags — same flag-behind-a-flag pattern as Phases 2 and 3pvesh get /cluster/resources— live cluster state wins over staticpve_nodeinventory hint so HA migrations are handled automaticallyvm_executor(VM SSH, for package upgrades) andnode_executor(Proxmox node SSH, forqm rollback/qm status) — ensures rollback commands run on the correct host&&/||precedence bug in package manager detection that caused all echo branches to fire on Debian, makingreversed()scan returnapkinstead ofaptand silently skipping updates- LXC/- VMsub-headings per node; VM format aligned with LXC style (name (id) — status); package upgrade count shown on real runs (UPDATED (3 upgraded)), suppressed on dry-runsTest plan
python -m pytest tests/unit/ -v— all tests greenfleet-update --use-vm-flow --use-remote-flow --check -e fleet_dry_run=true— compare output against legacyfleet-update --check -e fleet_dry_run=true--use-vm-flow— confirmUPDATED (N upgraded)appears for VMs with pending packagesdocs/migration-roadmap.md🤖 Generated with Claude Code
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.