courtmanr@gmail.com
a402d23503
fix(backups): synthesize per-guest task status from vzdump job logs
...
Scheduled multi-guest vzdump jobs run under a single UPID whose VMID slot
is empty, so pollBackupTasks stored them with VMID 0 and the guest-centric
backups coverage view dropped them entirely: only individually backed-up
guests ever showed task status. (Regressed with the v6.0.0 guest-centric
redesign, which removed the flat task table that used to render job runs.)
pollBackupTasks now fetches the job task's log and parses the per-guest
markers ("Starting Backup of VM", "Finished Backup of VM (duration)",
"Backup of VM failed - reason") into synthetic per-guest BackupTask
entries. Their IDs embed the parent UPID, keeping them stable across polls
and distinct from individually-run backups; per-guest times are
reconstructed from the job start plus the printed durations. Finished
jobs' logs are immutable, so results are cached per instance|UPID and each
finished run is fetched at most once, with a per-cycle fetch cap so a
historical backlog trickles in without stalling the backup poll budget.
The task listing now uses source=all + typefilter=vzdump, so running jobs
are visible too: guests covered by an in-progress job get a "running"
synthetic task, which also feeds resolveBackupIntentContext and
suppresses offline/backup alerts for guests the job is actively backing
up. The frontend needs no changes - synthetic tasks carry real VMIDs and
flow through the existing coverage model, recovery mapper, and alert
intent paths.
Contract: monitoring.md completion obligation 13 records the per-guest
synthesis boundary; proofs land in monitor_backup_job_tasks_test.go,
monitor_alert_intent_test.go, and cluster_client_api_test.go.
Reported by Johannes Strasser (support thread "PBS Bug").
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-26 20:03:46 +01:00
..
2026-03-18 16:06:30 +00:00
2026-07-20 22:41:19 +01:00
2026-07-23 11:19:50 +01:00
2026-07-23 11:19:50 +01:00
2026-07-17 16:09:06 +01:00
2026-07-22 16:15:31 +01:00
2026-07-23 23:46:34 +01:00
2026-07-22 09:09:25 +01:00
2026-07-20 20:27:39 +01:00
2025-11-26 23:44:36 +00:00
2025-10-20 15:13:37 +00:00
2026-02-07 22:05:55 +00:00
2026-03-18 16:06:30 +00:00
2026-07-24 15:46:56 +01:00
2026-06-02 14:52:47 +01:00
2026-07-24 12:40:05 +01:00
2026-07-26 19:31:15 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-07-22 06:42:33 +01:00
2026-07-11 18:25:17 +01:00
2026-07-11 18:25:17 +01:00
2025-12-01 17:33:36 +00:00
2026-03-18 16:06:30 +00:00
2026-06-26 11:35:12 +01:00
2026-06-26 11:35:12 +01:00
2026-04-01 19:14:12 +01:00
2026-07-24 00:19:40 +01:00
2026-07-10 00:05:22 +01:00
2026-07-10 00:05:22 +01:00
2026-06-25 20:30:38 +01:00
2026-07-23 22:19:35 +01:00
2026-06-04 10:35:35 +01:00
2026-06-04 10:35:35 +01:00
2026-07-19 09:13:14 +01:00
2026-07-16 20:55:09 +01:00
2026-07-16 20:55:09 +01:00
2026-07-23 22:33:07 +01:00
2026-01-01 22:29:15 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2025-10-14 16:13:53 +00:00
2025-11-12 09:47:02 +00:00
2026-07-02 23:52:02 +01:00
2026-07-02 23:52:02 +01:00
2026-07-10 00:14:01 +01:00
2026-05-19 22:37:55 +01:00
2026-01-28 16:52:35 +00:00
2026-07-13 09:41:11 +01:00
2026-05-05 14:59:29 +01:00
2026-04-22 09:22:46 +01:00
2026-07-24 00:19:40 +01:00
2026-07-24 00:19:40 +01:00
2026-06-27 17:41:00 +01:00
2026-07-24 00:19:40 +01:00
2026-07-24 00:19:40 +01:00
2026-07-24 00:19:40 +01:00
2026-04-01 18:38:42 +01:00
2026-06-04 14:07:14 +01:00
2026-07-26 20:03:46 +01:00
2026-07-24 15:46:56 +01:00
2026-07-03 10:43:28 +01:00
2026-07-07 09:46:51 +01:00
2025-11-26 23:44:36 +00:00
2026-07-23 22:17:25 +01:00
2026-07-20 16:03:29 +01:00
2026-07-21 20:30:54 +01:00
2026-07-23 22:19:35 +01:00
2026-07-24 10:26:50 +01:00
2026-07-26 19:31:15 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-07-14 17:03:14 +01:00
2026-07-16 09:50:04 +01:00
2026-07-23 22:33:07 +01:00
2026-04-11 22:46:34 +01:00
2026-02-04 19:49:52 +00:00
2026-02-04 19:49:52 +00:00
2026-04-12 09:41:29 +01:00
2026-06-11 19:42:40 +01:00
2026-06-11 19:42:40 +01:00
2026-07-24 10:26:50 +01:00
2026-07-24 00:19:40 +01:00
2026-07-24 22:37:29 +01:00
2026-07-23 22:05:09 +01:00
2026-07-23 22:33:07 +01:00
2025-12-01 21:18:33 +00:00
2025-11-27 09:16:53 +00:00
2026-02-04 19:35:19 +00:00
2026-07-20 04:21:26 +01:00
2026-07-20 06:30:55 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-06-03 12:29:37 +01:00
2026-07-23 14:03:44 +01:00
2026-07-23 14:03:44 +01:00
2026-07-20 06:30:55 +01:00
2026-06-09 21:42:21 +01:00
2026-06-09 21:42:21 +01:00
2026-01-22 13:39:06 +00:00
2026-07-24 22:37:29 +01:00
2026-07-24 12:42:16 +01:00
2026-07-20 20:27:39 +01:00
2026-07-26 20:03:46 +01:00
2026-07-20 20:27:39 +01:00
2026-07-23 21:54:57 +01:00
2026-07-20 16:03:29 +01:00
2026-07-17 16:09:06 +01:00
2026-07-26 20:03:46 +01:00
2026-05-05 14:19:50 +01:00
2026-07-18 19:39:56 +01:00
2026-07-23 14:55:44 +01:00
2026-07-26 20:03:46 +01:00
2026-05-05 16:25:00 +01:00
2026-07-24 09:45:05 +01:00
2026-07-24 09:45:05 +01:00
2026-07-24 15:46:56 +01:00
2026-06-04 09:11:07 +01:00
2025-11-18 22:57:20 +00:00
2026-06-11 10:23:49 +01:00
2026-07-24 22:34:54 +01:00
2026-07-24 12:42:16 +01:00
2026-07-24 11:59:50 +01:00
2026-07-26 20:03:46 +01:00
2025-10-20 15:13:38 +00:00
2026-06-14 11:07:47 +01:00
2026-07-24 12:40:05 +01:00
2026-07-24 15:46:56 +01:00
2026-07-24 22:34:54 +01:00
2026-07-24 15:46:56 +01:00
2026-07-26 20:03:46 +01:00
2026-05-01 20:28:12 +01:00
2026-04-11 14:51:10 +01:00
2026-06-09 21:42:21 +01:00
2026-06-11 13:12:59 +01:00
2026-05-25 20:35:58 +01:00
2026-07-12 02:53:01 +01:00
2026-07-24 09:45:05 +01:00
2026-07-24 10:26:50 +01:00
2026-07-24 09:45:05 +01:00
2026-07-26 12:42:22 +01:00
2026-05-08 19:53:03 +01:00
2026-07-24 22:37:29 +01:00
2026-07-24 15:46:56 +01:00
2026-07-24 15:46:56 +01:00
2026-07-16 09:26:53 +01:00
2026-03-18 16:06:30 +00:00
2026-07-24 11:21:27 +01:00
2026-06-10 16:19:24 +01:00
2026-07-24 22:37:29 +01:00
2026-07-24 10:11:56 +01:00
2026-05-13 19:00:02 +01:00
2026-04-01 19:14:12 +01:00
2026-07-23 22:43:34 +01:00
2026-07-24 15:46:56 +01:00
2026-07-24 15:46:56 +01:00
2026-07-23 22:05:09 +01:00
2026-07-24 10:26:50 +01:00
2026-07-24 22:37:29 +01:00
2026-07-24 22:37:29 +01:00
2026-07-24 10:26:50 +01:00
2026-07-24 10:26:50 +01:00
2026-07-24 22:37:29 +01:00
2026-07-24 10:26:50 +01:00
2026-03-18 16:06:30 +00:00
2026-07-24 00:19:40 +01:00
2026-07-24 11:21:27 +01:00
2026-07-24 15:46:56 +01:00
2026-01-04 10:29:40 +00:00
2026-07-26 12:42:22 +01:00
2026-07-26 12:42:23 +01:00
2026-03-18 16:06:30 +00:00
2026-07-26 20:03:46 +01:00
2026-07-26 20:03:46 +01:00
2026-03-18 16:06:30 +00:00
2026-07-26 20:03:46 +01:00
2026-05-17 18:45:24 +01:00
2026-01-05 23:34:33 +00:00
2026-03-18 16:06:30 +00:00
2026-07-23 22:19:35 +01:00
2026-07-24 12:42:16 +01:00
2026-03-18 16:06:30 +00:00
2026-07-26 20:03:46 +01:00
2026-05-05 12:59:59 +01:00
2026-07-16 16:25:10 +01:00
2026-07-21 21:24:15 +01:00
2026-07-16 15:17:45 +01:00
2026-07-20 07:50:22 +01:00
2026-07-23 22:33:07 +01:00
2026-04-01 10:04:30 +01:00
2026-07-24 15:46:56 +01:00
2026-07-24 00:19:40 +01:00
2026-04-11 22:46:34 +01:00
2026-02-07 22:05:55 +00:00
2026-01-14 12:26:18 +00:00
2026-07-19 15:10:38 +01:00
2026-07-19 15:10:38 +01:00
2026-07-18 11:54:09 +01:00
2026-07-18 11:54:09 +01:00
2026-06-10 09:19:51 +01:00
2026-07-26 12:42:22 +01:00
2026-03-18 16:06:30 +00:00
2026-07-13 11:04:09 +01:00
2026-07-13 11:04:09 +01:00
2026-07-24 10:11:56 +01:00
2026-07-22 06:42:33 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-07-24 10:26:50 +01:00
2026-07-24 10:26:50 +01:00
2026-07-23 22:24:52 +01:00
2026-07-23 22:24:52 +01:00
2026-03-26 22:58:27 +00:00
2026-03-31 15:42:16 +01:00
2026-07-23 07:15:13 +01:00
2026-07-23 01:10:38 +01:00
2026-07-23 01:10:38 +01:00
2026-07-24 10:26:50 +01:00
2026-07-16 09:26:53 +01:00
2026-07-16 09:26:53 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-01-06 17:44:52 +00:00
2026-01-06 17:44:52 +00:00
2026-02-04 19:33:29 +00:00
2025-12-02 12:02:13 +00:00
2026-03-18 16:06:30 +00:00
2026-07-23 06:34:03 +01:00
2026-06-11 16:00:25 +01:00
2026-06-11 16:00:25 +01:00
2026-07-24 12:40:05 +01:00
2026-07-24 00:10:17 +01:00
2026-07-25 00:21:35 +01:00
2026-05-22 20:26:56 +01:00
2026-07-23 22:06:57 +01:00