mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-04-28 03:20:11 +00:00
fix: Clear node host agent link when agent is removed
When a host agent is deleted via the UI, the LinkedHostAgentID on any PVE nodes that were linked to it was not being cleared. This caused the "Agent" tag to persist in the UI after uninstalling the agent. Related to #920
This commit is contained in:
parent
7f5ea636db
commit
cf577e715f
2 changed files with 28 additions and 0 deletions
|
|
@ -2029,6 +2029,25 @@ func (s *State) LinkNodeToHostAgent(nodeID, hostAgentID string) bool {
|
|||
return false
|
||||
}
|
||||
|
||||
// UnlinkNodesFromHostAgent clears LinkedHostAgentID from all nodes linked to the given host agent.
|
||||
// This is called when a host agent is removed to clean up stale references.
|
||||
func (s *State) UnlinkNodesFromHostAgent(hostAgentID string) int {
|
||||
s.mu.Lock()
|
||||
defer s.mu.Unlock()
|
||||
|
||||
count := 0
|
||||
for i, node := range s.Nodes {
|
||||
if node.LinkedHostAgentID == hostAgentID {
|
||||
s.Nodes[i].LinkedHostAgentID = ""
|
||||
count++
|
||||
}
|
||||
}
|
||||
if count > 0 {
|
||||
s.LastUpdate = time.Now()
|
||||
}
|
||||
return count
|
||||
}
|
||||
|
||||
// UpsertCephCluster inserts or updates a Ceph cluster in the state.
|
||||
// Uses ID (typically the FSID) for matching.
|
||||
func (s *State) UpsertCephCluster(cluster CephCluster) {
|
||||
|
|
|
|||
|
|
@ -1210,6 +1210,15 @@ func (m *Monitor) RemoveHostAgent(hostID string) (models.Host, error) {
|
|||
|
||||
m.state.RemoveConnectionHealth(hostConnectionPrefix + hostID)
|
||||
|
||||
// Clear LinkedHostAgentID from any nodes that were linked to this host agent
|
||||
unlinkedCount := m.state.UnlinkNodesFromHostAgent(hostID)
|
||||
if unlinkedCount > 0 {
|
||||
log.Info().
|
||||
Str("hostID", hostID).
|
||||
Int("unlinkedNodes", unlinkedCount).
|
||||
Msg("Cleared host agent links from PVE nodes")
|
||||
}
|
||||
|
||||
log.Info().
|
||||
Str("host", host.Hostname).
|
||||
Str("hostID", hostID).
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue