test fixes

This commit is contained in:
crn4
2025-09-05 13:06:06 +02:00
parent ca85aa9b8f
commit 08fba9876b
5 changed files with 27 additions and 25 deletions
@@ -984,5 +984,5 @@ func (am *MockAccountManager) RecalculateNetworkMapCache(ctx context.Context, ac
if am.RecalculateNetworkMapCacheFunc != nil { if am.RecalculateNetworkMapCacheFunc != nil {
return am.RecalculateNetworkMapCacheFunc(ctx, accountID) return am.RecalculateNetworkMapCacheFunc(ctx, accountID)
} }
return status.Errorf(codes.Unimplemented, "method RecalculateNetworkMapCache is not implemented") return nil
} }
+1 -1
View File
@@ -26,7 +26,7 @@ func (am *DefaultAccountManager) getPeerNetworkMapExp(
metrics *telemetry.AccountManagerMetrics, metrics *telemetry.AccountManagerMetrics,
) *types.NetworkMap { ) *types.NetworkMap {
am.enrichAccountFromHolder(account) am.enrichAccountFromHolder(account)
return account.GetPeerNetworkMapExp(ctx, peerId, customZone, validatedPeers, account.GetResourcePoliciesMap(), account.GetResourceRoutersMap(), metrics) return account.GetPeerNetworkMapExp(ctx, peerId, customZone, validatedPeers, metrics)
} }
func (am *DefaultAccountManager) onPeerAddedUpdNetworkMapCache(account *types.Account, peerId string) error { func (am *DefaultAccountManager) onPeerAddedUpdNetworkMapCache(account *types.Account, peerId string) error {
+1 -3
View File
@@ -858,12 +858,10 @@ func (a *Account) GetPeerNetworkMapExp(
peerID string, peerID string,
peersCustomZone nbdns.CustomZone, peersCustomZone nbdns.CustomZone,
validatedPeers map[string]struct{}, validatedPeers map[string]struct{},
resourcePolicies map[string][]*Policy,
routers map[string]map[string]*routerTypes.NetworkRouter,
metrics *telemetry.AccountManagerMetrics, metrics *telemetry.AccountManagerMetrics,
) *NetworkMap { ) *NetworkMap {
a.initNetworkMapBuilder(validatedPeers) a.initNetworkMapBuilder(validatedPeers)
return a.NetworkMapCache.GetPeerNetworkMap(ctx, peerID, peersCustomZone, validatedPeers, resourcePolicies, routers, metrics) return a.NetworkMapCache.GetPeerNetworkMap(ctx, peerID, peersCustomZone, validatedPeers, metrics)
} }
func (a *Account) OnPeerAddedUpdNetworkMapCache(peerId string) error { func (a *Account) OnPeerAddedUpdNetworkMapCache(peerId string) error {
@@ -105,7 +105,7 @@ func TestGetPeerNetworkMap_Golden_New(t *testing.T) {
} }
builder := types.NewNetworkMapBuilder(account, validatedPeersMap) builder := types.NewNetworkMapBuilder(account, validatedPeersMap)
networkMap := builder.GetPeerNetworkMap(ctx, testingPeerID, dns.CustomZone{}, validatedPeersMap, nil, nil, nil) networkMap := builder.GetPeerNetworkMap(ctx, testingPeerID, dns.CustomZone{}, validatedPeersMap, nil)
normalizeAndSortNetworkMap(networkMap) normalizeAndSortNetworkMap(networkMap)
@@ -150,7 +150,7 @@ func BenchmarkGetPeerNetworkMap(b *testing.B) {
for range b.N { for range b.N {
builder := types.NewNetworkMapBuilder(account, validatedPeersMap) builder := types.NewNetworkMapBuilder(account, validatedPeersMap)
for _, peerID := range peerIDs { for _, peerID := range peerIDs {
_ = builder.GetPeerNetworkMap(ctx, peerID, dns.CustomZone{}, validatedPeersMap, nil, nil, nil) _ = builder.GetPeerNetworkMap(ctx, peerID, dns.CustomZone{}, validatedPeersMap, nil)
} }
} }
}) })
@@ -269,7 +269,7 @@ func TestGetPeerNetworkMap_Golden_New_WithOnPeerAdded(t *testing.T) {
err := builder.OnPeerAddedIncremental(newPeerID) err := builder.OnPeerAddedIncremental(newPeerID)
require.NoError(t, err, "error adding peer to cache") require.NoError(t, err, "error adding peer to cache")
networkMap := builder.GetPeerNetworkMap(ctx, testingPeerID, dns.CustomZone{}, validatedPeersMap, nil, nil, nil) networkMap := builder.GetPeerNetworkMap(ctx, testingPeerID, dns.CustomZone{}, validatedPeersMap, nil)
normalizeAndSortNetworkMap(networkMap) normalizeAndSortNetworkMap(networkMap)
@@ -329,7 +329,7 @@ func BenchmarkGetPeerNetworkMap_AfterPeerAdded(b *testing.B) {
for i := 0; i < b.N; i++ { for i := 0; i < b.N; i++ {
_ = builder.OnPeerAddedIncremental(newPeerID) _ = builder.OnPeerAddedIncremental(newPeerID)
for _, testingPeerID := range peerIDs { for _, testingPeerID := range peerIDs {
_ = builder.GetPeerNetworkMap(ctx, testingPeerID, dns.CustomZone{}, validatedPeersMap, nil, nil, nil) _ = builder.GetPeerNetworkMap(ctx, testingPeerID, dns.CustomZone{}, validatedPeersMap, nil)
} }
} }
}) })
@@ -475,7 +475,7 @@ func TestGetPeerNetworkMap_Golden_New_WithOnPeerAddedRouter(t *testing.T) {
err := builder.OnPeerAddedIncremental(newRouterID) err := builder.OnPeerAddedIncremental(newRouterID)
require.NoError(t, err, "error adding router to cache") require.NoError(t, err, "error adding router to cache")
networkMap := builder.GetPeerNetworkMap(ctx, testingPeerID, dns.CustomZone{}, validatedPeersMap, nil, nil, nil) networkMap := builder.GetPeerNetworkMap(ctx, testingPeerID, dns.CustomZone{}, validatedPeersMap, nil)
normalizeAndSortNetworkMap(networkMap) normalizeAndSortNetworkMap(networkMap)
@@ -559,7 +559,7 @@ func BenchmarkGetPeerNetworkMap_AfterRouterPeerAdded(b *testing.B) {
for i := 0; i < b.N; i++ { for i := 0; i < b.N; i++ {
_ = builder.OnPeerAddedIncremental(newRouterID) _ = builder.OnPeerAddedIncremental(newRouterID)
for _, testingPeerID := range peerIDs { for _, testingPeerID := range peerIDs {
_ = builder.GetPeerNetworkMap(ctx, testingPeerID, dns.CustomZone{}, validatedPeersMap, nil, nil, nil) _ = builder.GetPeerNetworkMap(ctx, testingPeerID, dns.CustomZone{}, validatedPeersMap, nil)
} }
} }
}) })
@@ -664,7 +664,7 @@ func TestGetPeerNetworkMap_Golden_New_WithOnPeerDeleted(t *testing.T) {
err := builder.OnPeerDeleted(deletedPeerID) err := builder.OnPeerDeleted(deletedPeerID)
require.NoError(t, err, "error deleting peer from cache") require.NoError(t, err, "error deleting peer from cache")
networkMap := builder.GetPeerNetworkMap(ctx, testingPeerID, dns.CustomZone{}, validatedPeersMap, nil, nil, nil) networkMap := builder.GetPeerNetworkMap(ctx, testingPeerID, dns.CustomZone{}, validatedPeersMap, nil)
normalizeAndSortNetworkMap(networkMap) normalizeAndSortNetworkMap(networkMap)
@@ -796,7 +796,7 @@ func TestGetPeerNetworkMap_Golden_New_WithDeletedRouterPeer(t *testing.T) {
err := builder.OnPeerDeleted(deletedRouterID) err := builder.OnPeerDeleted(deletedRouterID)
require.NoError(t, err, "error deleting routing peer from cache") require.NoError(t, err, "error deleting routing peer from cache")
networkMap := builder.GetPeerNetworkMap(ctx, testingPeerID, dns.CustomZone{}, validatedPeersMap, nil, nil, nil) networkMap := builder.GetPeerNetworkMap(ctx, testingPeerID, dns.CustomZone{}, validatedPeersMap, nil)
normalizeAndSortNetworkMap(networkMap) normalizeAndSortNetworkMap(networkMap)
@@ -856,7 +856,7 @@ func BenchmarkGetPeerNetworkMap_AfterPeerDeleted(b *testing.B) {
for i := 0; i < b.N; i++ { for i := 0; i < b.N; i++ {
_ = builder.OnPeerDeleted(deletedPeerID) _ = builder.OnPeerDeleted(deletedPeerID)
for _, testingPeerID := range peerIDs { for _, testingPeerID := range peerIDs {
_ = builder.GetPeerNetworkMap(ctx, testingPeerID, dns.CustomZone{}, validatedPeersMap, nil, nil, nil) _ = builder.GetPeerNetworkMap(ctx, testingPeerID, dns.CustomZone{}, validatedPeersMap, nil)
} }
} }
}) })
+15 -11
View File
@@ -35,6 +35,9 @@ type NetworkMapCache struct {
peerRoutes map[string]*PeerRoutesView peerRoutes map[string]*PeerRoutesView
peerDNS map[string]*nbdns.Config peerDNS map[string]*nbdns.Config
resourceRouters map[string]map[string]*routerTypes.NetworkRouter
resourcePolicies map[string][]*Policy
mu sync.RWMutex mu sync.RWMutex
} }
@@ -88,6 +91,11 @@ func (b *NetworkMapBuilder) initialBuild(account *Account) {
b.buildGlobalIndexes(account) b.buildGlobalIndexes(account)
resourceRouters := account.GetResourceRoutersMap()
resourcePolicies := account.GetResourcePoliciesMap()
b.cache.resourceRouters = resourceRouters
b.cache.resourcePolicies = resourcePolicies
for peerID := range account.Peers { for peerID := range account.Peers {
b.buildPeerACLView(account, peerID) b.buildPeerACLView(account, peerID)
b.buildPeerRoutesView(account, peerID) b.buildPeerRoutesView(account, peerID)
@@ -151,11 +159,10 @@ func (b *NetworkMapBuilder) buildPeerACLView(account *Account, peerID string) {
if peer == nil { if peer == nil {
return return
} }
resourcePolicies := b.cache.resourcePolicies
resourceRouters := b.cache.resourceRouters
allPotentialPeers, firewallRules := account.GetPeerConnectionResources(ctx, peer, b.validatedPeers) allPotentialPeers, firewallRules := account.GetPeerConnectionResources(ctx, peer, b.validatedPeers)
resourceRouters := account.GetResourceRoutersMap()
resourcePolicies := account.GetResourcePoliciesMap()
isRouter, networkResourcesRoutes, sourcePeers := account.GetNetworkResourcesRoutesToSync(ctx, peerID, resourcePolicies, resourceRouters) isRouter, networkResourcesRoutes, sourcePeers := account.GetNetworkResourcesRoutesToSync(ctx, peerID, resourcePolicies, resourceRouters)
var emptyExpiredPeers []*nbpeer.Peer var emptyExpiredPeers []*nbpeer.Peer
@@ -192,6 +199,8 @@ func (b *NetworkMapBuilder) buildPeerRoutesView(account *Account, peerID string)
if peer == nil { if peer == nil {
return return
} }
resourcePolicies := b.cache.resourcePolicies
resourceRouters := b.cache.resourceRouters
view := &PeerRoutesView{ view := &PeerRoutesView{
OwnRouteIDs: make([]route.ID, 0), OwnRouteIDs: make([]route.ID, 0),
@@ -239,8 +248,6 @@ func (b *NetworkMapBuilder) buildPeerRoutesView(account *Account, peerID string)
} }
} }
resourceRouters := account.GetResourceRoutersMap()
resourcePolicies := account.GetResourcePoliciesMap()
_, networkResourcesRoutes, _ := account.GetNetworkResourcesRoutesToSync(ctx, peerID, resourcePolicies, resourceRouters) _, networkResourcesRoutes, _ := account.GetNetworkResourcesRoutesToSync(ctx, peerID, resourcePolicies, resourceRouters)
for _, rt := range networkResourcesRoutes { for _, rt := range networkResourcesRoutes {
@@ -289,8 +296,6 @@ func (b *NetworkMapBuilder) GetPeerNetworkMap(
peerID string, peerID string,
peersCustomZone nbdns.CustomZone, peersCustomZone nbdns.CustomZone,
validatedPeers map[string]struct{}, validatedPeers map[string]struct{},
resourcePolicies map[string][]*Policy,
routers map[string]map[string]*routerTypes.NetworkRouter,
metrics *telemetry.AccountManagerMetrics, metrics *telemetry.AccountManagerMetrics,
) *NetworkMap { ) *NetworkMap {
start := time.Now() start := time.Now()
@@ -710,13 +715,12 @@ func (b *NetworkMapBuilder) calculateNetworkResourceFirewallUpdates(
peerGroups []string, peerGroups []string,
updates map[string]*PeerUpdateDelta, updates map[string]*PeerUpdateDelta,
) { ) {
resourcePolicies := account.GetResourcePoliciesMap()
routers := account.GetResourceRoutersMap()
for _, resource := range account.NetworkResources { for _, resource := range account.NetworkResources {
if !resource.Enabled { if !resource.Enabled {
continue continue
} }
resourcePolicies := b.cache.resourcePolicies
resourceRouters := b.cache.resourceRouters
policies := resourcePolicies[resource.ID] policies := resourcePolicies[resource.ID]
peerHasAccess := false peerHasAccess := false
@@ -745,7 +749,7 @@ func (b *NetworkMapBuilder) calculateNetworkResourceFirewallUpdates(
continue continue
} }
networkRouters := routers[resource.NetworkID] networkRouters := resourceRouters[resource.NetworkID]
for routerPeerID, router := range networkRouters { for routerPeerID, router := range networkRouters {
if !router.Enabled || routerPeerID == newPeerID { if !router.Enabled || routerPeerID == newPeerID {
continue continue