rcourtman
926906b134
Don't overwrite populated Docker hosts with empty inventory polls
...
The Proxmox-side LXC Docker inventory poll occasionally produces an
ok=true report with zero CONTAINER lines but a valid PS_OK marker:
docker ps -a inside the LXC genuinely returned an empty list for
that one call, typically while watchtower is briefly recreating a
container or the dockerd is mid-restart. ApplyDockerReport then
wipes the host's container list, every connected WebSocket client
sees every row for that host flash blank, and the next successful
poll 10 s later restores it.
Before calling ApplyDockerReport, check whether the host already
has containers tracked in state. If yes and the new report has
zero containers, log at debug and skip the apply, counting the
poll as skipped rather than collected. A host that is genuinely
empty still applies on first sight (no previous containers means
no previous state to protect).
Add regression tests for both branches: a populated host receiving
an empty report keeps its container list; a freshly-seen empty
host still gets created.
2026-05-19 12:04:51 +01:00
..
2026-03-18 16:06:30 +00:00
2026-05-06 10:35:34 +01:00
2026-05-06 10:35:34 +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-05-19 09:47:05 +01:00
2026-05-11 22:30:30 +01:00
2026-05-05 14:59:29 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-04-18 14:54:53 +01:00
2026-04-18 14:54:53 +01:00
2025-12-01 17:33:36 +00:00
2026-03-18 16:06:30 +00:00
2025-12-12 17:51:43 +00:00
2025-12-12 18:13:17 +00:00
2026-04-01 19:14:12 +01:00
2026-05-05 14:59:29 +01:00
2026-04-18 10:45:25 +01:00
2026-04-18 10:45:25 +01:00
2026-05-19 12:04:51 +01:00
2026-05-19 12:04:51 +01:00
2026-04-21 22:11:13 +01:00
2026-05-01 20:28:11 +01:00
2026-04-01 13:02:14 +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-04-01 18:38:42 +01:00
2026-05-05 14:59:29 +01:00
2026-05-08 14:54:08 +01:00
2026-01-28 16:52:35 +00:00
2026-05-05 14:59:29 +01:00
2026-05-05 14:59:29 +01:00
2026-04-22 09:22:46 +01:00
2026-04-01 19:00:48 +01:00
2026-04-01 19:00:48 +01:00
2026-05-05 14:59:29 +01:00
2026-05-05 14:59:29 +01:00
2026-04-01 19:14:12 +01:00
2026-05-05 14:59:29 +01:00
2026-04-01 18:38:42 +01:00
2026-05-05 14:59:29 +01:00
2026-03-18 16:06:30 +00:00
2026-01-01 22:29:15 +00:00
2026-04-01 19:36:30 +01:00
2026-04-23 20:38:33 +01:00
2025-11-26 23:44:36 +00: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-04-01 20:41:56 +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-04-22 09:22:46 +01:00
2026-04-01 19:00:48 +01:00
2026-05-05 14:59:29 +01:00
2025-12-02 17:21:48 +00: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-05-15 21:27:39 +01:00
2026-05-15 21:27:39 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-04-10 19:09:12 +01:00
2026-05-03 16:35:46 +01:00
2026-05-15 21:27:39 +01:00
2026-04-01 20:41:56 +01:00
2026-01-22 13:39:06 +00:00
2026-04-01 11:51:19 +01:00
2026-05-15 21:27:39 +01:00
2026-04-15 12:18:57 +01:00
2026-03-18 16:06:30 +00:00
2026-05-12 00:29:04 +01:00
2026-05-05 14:19:50 +01:00
2026-03-18 16:06:30 +00:00
2026-05-05 14:51:28 +01:00
2026-05-05 16:25:00 +01:00
2026-04-19 11:42:53 +01:00
2026-04-19 11:42:53 +01:00
2026-05-01 20:28:12 +01:00
2026-04-01 11:51:19 +01:00
2025-11-18 22:57:20 +00:00
2026-04-11 16:47:37 +01:00
2026-03-18 16:06:30 +00:00
2026-04-18 10:45:25 +01:00
2026-05-01 20:28:11 +01:00
2026-05-13 22:18:47 +01:00
2025-10-20 15:13:38 +00:00
2026-05-17 18:45:24 +01:00
2026-05-17 18:45:24 +01:00
2026-05-15 21:27:39 +01:00
2026-04-01 15:29:11 +01:00
2026-04-01 10:04:30 +01:00
2026-05-01 20:28:12 +01:00
2026-04-11 14:51:10 +01:00
2026-04-10 14:26:55 +01:00
2026-04-29 18:02:30 +01:00
2026-04-29 18:02:30 +01:00
2026-05-13 17:05:03 +01:00
2026-01-04 10:29:40 +00:00
2026-05-13 17:05:03 +01:00
2026-05-08 19:53:03 +01:00
2026-05-01 20:28:12 +01:00
2026-04-01 19:36:30 +01:00
2026-04-01 11:51:19 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-04-15 16:55:13 +01:00
2026-05-06 10:35:34 +01:00
2026-05-05 14:59:29 +01:00
2026-04-01 19:31:50 +01:00
2026-05-13 19:00:02 +01:00
2026-04-01 19:14:12 +01:00
2026-04-01 11:51:19 +01:00
2026-03-18 16:06:30 +00:00
2026-05-05 14:59:29 +01:00
2026-04-01 20:41:56 +01:00
2026-04-21 14:46:23 +01:00
2026-04-21 14:46:23 +01:00
2026-05-18 23:44:24 +01:00
2026-03-18 16:06:30 +00:00
2026-04-11 22:46:34 +01:00
2026-05-08 18:14:20 +01:00
2026-01-04 10:29:40 +00:00
2026-03-18 16:06:30 +00:00
2026-05-05 14:51:28 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-04-15 16:55:13 +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-05-16 11:43:41 +01:00
2026-03-18 16:06:30 +00:00
2026-05-18 23:44:24 +01:00
2026-05-05 12:59:59 +01:00
2026-04-11 22:46:34 +01:00
2026-03-18 16:06:30 +00:00
2026-04-01 10:04:30 +01:00
2026-04-01 10:04:30 +01:00
2026-03-18 16:06:30 +00: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-04-23 20:38:33 +01:00
2026-04-23 20:38:33 +01:00
2026-05-06 10:35:34 +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-03-18 16:06:30 +00:00
2026-04-01 23:33:43 +01:00
2026-03-18 16:06:30 +00:00
2026-03-26 22:58:27 +00:00
2026-03-31 15:42:16 +01:00
2026-03-28 22:31:33 +00:00
2026-04-11 22:46:34 +01:00
2025-12-02 17:21:48 +00:00
2026-05-06 10:35:34 +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-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-05-05 16:50:10 +01:00
2026-05-05 12:59:59 +01:00
2026-05-13 13:27:25 +01:00
2026-05-13 13:27:25 +01:00