Repository navigation
fix(discovery): survive an offline node instead of throwing 595 - #25
Merged
Merged
Conversation
A node that is offline (the homelab's Wake-on-LAN desktop-01, asleep most of the time) answers every per-node call with HTTP 595, which threw out of DiscoverAsync and left consumers with no snapshot at all. Nodes listed offline/unknown are no longer queried; a node listed online that still answers 595 is treated the same. Such a node comes back with Reachable = false, empty storage/network, and its guests read from /cluster/resources?type=vm, which lists them from the shared config. Dropping those guests instead would make a consumer read them as absent and plan to create them. Verified live: nuc-01 and hpe-01 discovered in full, desktop-01 offline with its 8 CTs and 4 VMs present (status "unknown"). Bump to 0.2.2. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V2afcTcowT1YVBwLzrJFtH
CI failed at restore: Fallout.* 2026.1.0-preview.5.gd84fad5cd7 no longer exists on the Fallout-build GitHub Packages feed (it now carries only 10.5.0-preview.*), so the build/ project could not restore. Local builds hid it via the package cache. Same move as Homelab#390: pin the 10.4.0 stable line, restore everything from nuget.org, and drop the Fallout feed, its credentials and the PACKAGES_PAT env from both workflows. Test and Pack both verified locally without the PAT. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V2afcTcowT1YVBwLzrJFtH
ChrisonSimtian
added a commit
that referenced
this pull request
Oct 3, 2026
#25 moved Fallout to nuget.org and removed the PAT from the build path, but missed these two lines in README.md and build.ps1. Claude-Session: https://claude.ai/code/session_01V2afcTcowT1YVBwLzrJFtH Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #24.
Problem: when any cluster node is offline, PVE answers that node's per-node calls (
/nodes/<n>/lxcetc.) with HTTP 595. Kiota throws, andDiscoverAsyncreturns nothing at all. In the homelab, desktop-01 sleeps most of the time, so every converge plan fell back to intent-only.Fix:
/nodeslists asofflineorunknownare not queried per-node.Reachable = false, emptyStorage/Network(not read, rather than none), and its guests taken from/cluster/resources?type=vm(statusunknown; memory, cores and tags still come from the shared config). That costs one extra call, made only if some node is unreachable.New API:
NodeSnapshot.Reachable, defaulting totrue, so a snapshot JSON written before this change still deserialises as before.Tests:
DiscoveryOfflineNodeTestscovers three cases:/cluster/resourcescall is made.The 595 test fails on the old code with the exact production exception. Suite: 40 passed, 3 skipped.
Live check (2026-10-02):
Offline, with 8 CTs and 4 VMs, allunknown.Version bumped to 0.2.2.
Second commit, a build fix CI needed: the Fallout
2026.1.0-preview.5pin no longer exists on the Fallout-build feed, which now carries only10.5.0-preview.*, so restore failed before compiling anything. Fixed the same way as Homelab#390:10.4.0from nuget.org;PACKAGES_PATenv are dropped from both workflows.Test and Pack verified locally without the PAT.
🤖 Generated with Claude Code
https://claude.ai/code/session_01V2afcTcowT1YVBwLzrJFtH