mirror of
https://github.com/netbirdio/netbird.git
synced 2026-10-23 13:59:09 +02:00
test fixes
This commit is contained in:
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user