From aa9a1a42f5a5c6b3e8ac0c3b3ccc36c84f790391 Mon Sep 17 00:00:00 2001 From: pascal Date: Fri, 8 May 2026 19:36:21 +0200 Subject: [PATCH] remove complexity --- .../server/networks/resources/manager.go | 31 +++++++++++-------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/management/server/networks/resources/manager.go b/management/server/networks/resources/manager.go index 552daf37f..43a04c544 100644 --- a/management/server/networks/resources/manager.go +++ b/management/server/networks/resources/manager.go @@ -538,19 +538,24 @@ func collectResourcePolicySourceGroups(policies []*nbtypes.Policy, destGroupIDs if policy == nil || !policy.Enabled { continue } - for _, rule := range policy.Rules { - if rule == nil || !rule.Enabled { - continue - } - if !ruleMatchesDestinations(rule, destSet) { - continue - } - for _, gID := range rule.Sources { - groupSet[gID] = struct{}{} - } - if rule.SourceResource.Type == nbtypes.ResourceTypePeer && rule.SourceResource.ID != "" { - directPeerIDs = append(directPeerIDs, rule.SourceResource.ID) - } + directPeerIDs = collectSourcesFromPolicyRules(policy.Rules, destSet, groupSet, directPeerIDs) + } + return directPeerIDs +} + +func collectSourcesFromPolicyRules(rules []*nbtypes.PolicyRule, destSet map[string]struct{}, groupSet map[string]struct{}, directPeerIDs []string) []string { + for _, rule := range rules { + if rule == nil || !rule.Enabled { + continue + } + if !ruleMatchesDestinations(rule, destSet) { + continue + } + for _, gID := range rule.Sources { + groupSet[gID] = struct{}{} + } + if rule.SourceResource.Type == nbtypes.ResourceTypePeer && rule.SourceResource.ID != "" { + directPeerIDs = append(directPeerIDs, rule.SourceResource.ID) } } return directPeerIDs