mirror of
https://github.com/Joulenap/joulenap.git
synced 2026-08-11 13:21:43 +02:00
One run now executes one backup route: N source PVEs (each possibly a cluster) onto one PBS target. Wake and power-off stay with the power lease, so the cycle starts with the box awake and never touches its power. - PveClient lists guests cluster-wide via /cluster/resources (identical on a standalone node), tags each with its node and drops templates; vzdump takes a node, and the task endpoints read theirs from the UPID so one client can drive several nodes. - Sources are isolated: a broken one leaves its backup:<pve-id> step failed and the run continues, finishing failed and naming it. GC and verify still run - the box is awake and the other snapshots are real. - The guest tally aggregates across sources; failed guest names keep working. - Cache writes carry real ids: datastore_stats keyed by the target, guest_backups attributing each vmid to the PVE that backed it up. - CycleDeps gains device-shaped connect_pve/connect_pbs beside the config-shaped pair, and RunRecorder.step takes a label. The 0.9 cycle and the flat pve/pbs/backup config sections stay for now: their other consumers (the GC/verify/monitor cycles, the scheduler, the API routers) are ported in the next milestones and delete both halves together.