[PR #19] [MERGED] Promote testing: Ansible→Python migration completion + fixes #20

Closed
opened 2026-06-09 03:02:20 +08:00 by ivenator1 · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/ivenator1/proxmox-management/pull/19
Author: @ivenator1
Created: 6/9/2026
Status: Merged
Merged: 6/9/2026
Merged by: @ivenator1

Base: mainHead: testing


📝 Commits (10+)

  • 028b358 Phase 5: port briefing/history/notifiers to Python behind --use-notify-flow
  • 401e950 Remove legacy Ansible monolith; driver.run_fleet() is the entrypoint
  • f1753e1 ci: run on testing branch too, so PRs into testing get checks
  • 39ac722 Merge pull request #15 from ivenator1/claude/plan-remaining-tasks-Ry1tk
  • aad0c8d Fix review findings: locale pinning, Alpine shell, dedup, and regression tests
  • 774ff47 Lint tests/ with ruff and widen the ruff CI job to cover tests
  • b4faaa7 Merge pull request #16 from ivenator1/claude/testing-branch-pull-tEqHP
  • 2c2f3bd docs: record unwired/not-yet-implemented features in roadmap + CLAUDE.md
  • cf76acb docs: bring CLAUDE.md in line with the Python-only architecture
  • 4bb1b3e Merge pull request #17 from ivenator1/claude/testing-branch-pull-tEqHP

📊 Changes

132 files changed (+4635 additions, -6180 deletions)

View changed files

📝 .ansible-lint (+3 -15)
📝 .github/workflows/ci.yml (+49 -14)
📝 CLAUDE.md (+265 -360)
📝 README.md (+156 -90)
📝 ansible/primitives/lxc_app_update.yml (+1 -1)
ansible/primitives/lxc_introspect.yml (+62 -0)
ansible/primitives/lxc_post_update.yml (+45 -0)
📝 docs/migration-roadmap.md (+196 -40)
fleet-update.py (+185 -0)
fleet-update.yml (+0 -470)
proxmox_fleet/briefing.py (+117 -0)
📝 proxmox_fleet/cli.py (+40 -149)
📝 proxmox_fleet/driver.py (+189 -94)
📝 proxmox_fleet/executor.py (+201 -1)
proxmox_fleet/flows/_pkg.py (+60 -0)
📝 proxmox_fleet/flows/custom.py (+7 -5)
📝 proxmox_fleet/flows/lxc.py (+116 -123)
📝 proxmox_fleet/flows/node.py (+9 -14)
📝 proxmox_fleet/flows/remote.py (+5 -40)
📝 proxmox_fleet/flows/vm.py (+14 -46)

...and 80 more files

📄 Description

Summary

  • Completes the Ansible→Python migration: removes the legacy Ansible monolith, making driver.run_fleet() (via fleet-update) the sole entrypoint, with Ansible retained only as execution primitives.
  • Ports Phase 5 (briefing/history/notifiers) to Python, adds the fleet-update.py wrapper with friendly flags, and wires the remaining post-migration backlog items.
  • Fixes several bugs found along the way: Jinja block-tag trimming breaking app updates, venv detection via sys.prefix, missing default User-Agent causing Cloudflare 403s, and bandit findings.

Test plan

  • CI checks pass (lint, unit tests across Python 3.10–3.12, mypy, ruff, bandit, molecule matrices)

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/ivenator1/proxmox-management/pull/19 **Author:** [@ivenator1](https://github.com/ivenator1) **Created:** 6/9/2026 **Status:** ✅ Merged **Merged:** 6/9/2026 **Merged by:** [@ivenator1](https://github.com/ivenator1) **Base:** `main` ← **Head:** `testing` --- ### 📝 Commits (10+) - [`028b358`](https://github.com/ivenator1/proxmox-management/commit/028b3581e62f44df6a54ad4c173fc841fb68fa90) Phase 5: port briefing/history/notifiers to Python behind --use-notify-flow - [`401e950`](https://github.com/ivenator1/proxmox-management/commit/401e950a7f5ac482e316fbcc50110f96606adc90) Remove legacy Ansible monolith; driver.run_fleet() is the entrypoint - [`f1753e1`](https://github.com/ivenator1/proxmox-management/commit/f1753e17c02c37756b2f5fe7469caa5327c28809) ci: run on testing branch too, so PRs into testing get checks - [`39ac722`](https://github.com/ivenator1/proxmox-management/commit/39ac722a81341c4fadb739d73261da8de7097893) Merge pull request #15 from ivenator1/claude/plan-remaining-tasks-Ry1tk - [`aad0c8d`](https://github.com/ivenator1/proxmox-management/commit/aad0c8d30a12c59908c7457ca97ae517b1f862bf) Fix review findings: locale pinning, Alpine shell, dedup, and regression tests - [`774ff47`](https://github.com/ivenator1/proxmox-management/commit/774ff479c329eefee7f4beb7ca2401cf69290afc) Lint tests/ with ruff and widen the ruff CI job to cover tests - [`b4faaa7`](https://github.com/ivenator1/proxmox-management/commit/b4faaa72db5112efc919b3d29215ea5f19fb4871) Merge pull request #16 from ivenator1/claude/testing-branch-pull-tEqHP - [`2c2f3bd`](https://github.com/ivenator1/proxmox-management/commit/2c2f3bd0245fa3d94562cfd3ad379a84e665b32e) docs: record unwired/not-yet-implemented features in roadmap + CLAUDE.md - [`cf76acb`](https://github.com/ivenator1/proxmox-management/commit/cf76acb7c0fa50f0e9411fa438ca3e65cb777bc7) docs: bring CLAUDE.md in line with the Python-only architecture - [`4bb1b3e`](https://github.com/ivenator1/proxmox-management/commit/4bb1b3ee997d8c60fdc9fb52b1a1e26af83c7f07) Merge pull request #17 from ivenator1/claude/testing-branch-pull-tEqHP ### 📊 Changes **132 files changed** (+4635 additions, -6180 deletions) <details> <summary>View changed files</summary> 📝 `.ansible-lint` (+3 -15) 📝 `.github/workflows/ci.yml` (+49 -14) 📝 `CLAUDE.md` (+265 -360) 📝 `README.md` (+156 -90) 📝 `ansible/primitives/lxc_app_update.yml` (+1 -1) ➕ `ansible/primitives/lxc_introspect.yml` (+62 -0) ➕ `ansible/primitives/lxc_post_update.yml` (+45 -0) 📝 `docs/migration-roadmap.md` (+196 -40) ➕ `fleet-update.py` (+185 -0) ➖ `fleet-update.yml` (+0 -470) ➕ `proxmox_fleet/briefing.py` (+117 -0) 📝 `proxmox_fleet/cli.py` (+40 -149) 📝 `proxmox_fleet/driver.py` (+189 -94) 📝 `proxmox_fleet/executor.py` (+201 -1) ➕ `proxmox_fleet/flows/_pkg.py` (+60 -0) 📝 `proxmox_fleet/flows/custom.py` (+7 -5) 📝 `proxmox_fleet/flows/lxc.py` (+116 -123) 📝 `proxmox_fleet/flows/node.py` (+9 -14) 📝 `proxmox_fleet/flows/remote.py` (+5 -40) 📝 `proxmox_fleet/flows/vm.py` (+14 -46) _...and 80 more files_ </details> ### 📄 Description ## Summary - Completes the Ansible→Python migration: removes the legacy Ansible monolith, making `driver.run_fleet()` (via `fleet-update`) the sole entrypoint, with Ansible retained only as execution primitives. - Ports Phase 5 (briefing/history/notifiers) to Python, adds the `fleet-update.py` wrapper with friendly flags, and wires the remaining post-migration backlog items. - Fixes several bugs found along the way: Jinja block-tag trimming breaking app updates, venv detection via `sys.prefix`, missing default User-Agent causing Cloudflare 403s, and bandit findings. ## Test plan - [x] CI checks pass (lint, unit tests across Python 3.10–3.12, mypy, ruff, bandit, molecule matrices) --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
ivenator1 2026-06-09 03:02:20 +08:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
ivenator1/proxmox-management#20
No description provided.