From f20a1b3328150eb216c7183937756018c0c73f4c Mon Sep 17 00:00:00 2001 From: crn4 Date: Thu, 2 Oct 2025 11:55:43 +0200 Subject: [PATCH] get rid of get account calls for update peers --- management/server/account.go | 6 +----- management/server/networkmap.go | 6 +++--- management/server/peer.go | 24 ++++-------------------- management/server/user.go | 6 +----- 4 files changed, 9 insertions(+), 33 deletions(-) diff --git a/management/server/account.go b/management/server/account.go index 98cdc4700..c7848db9d 100644 --- a/management/server/account.go +++ b/management/server/account.go @@ -2162,15 +2162,11 @@ func (am *DefaultAccountManager) UpdatePeerIP(ctx context.Context, accountID, us } if updateNetworkMap { - account, err := am.Store.GetAccountByPeerID(ctx, peerID) - if err != nil { - return err - } peer, err := am.Store.GetPeerByID(ctx, store.LockingStrengthNone, accountID, peerID) if err != nil { return err } - am.updatePeerInNetworkMapCache(account, peer) + am.updatePeerInNetworkMapCache(peer.AccountID, peer) am.BufferUpdateAccountPeers(ctx, accountID) } return nil diff --git a/management/server/networkmap.go b/management/server/networkmap.go index c9fa2bba8..e0271964c 100644 --- a/management/server/networkmap.go +++ b/management/server/networkmap.go @@ -39,8 +39,8 @@ func (am *DefaultAccountManager) onPeerDeletedUpdNetworkMapCache(account *types. return account.OnPeerDeletedUpdNetworkMapCache(peerId) } -func (am *DefaultAccountManager) updatePeerInNetworkMapCache(account *types.Account, peer *nbpeer.Peer) { - am.enrichAccountFromHolder(account) +func (am *DefaultAccountManager) updatePeerInNetworkMapCache(accountId string, peer *nbpeer.Peer) { + account := am.getAccountFromHolder(accountId) account.UpdatePeerInNetworkMapCache(peer) } @@ -51,7 +51,7 @@ func (am *DefaultAccountManager) recalculateNetworkMapCache(account *types.Accou func (am *DefaultAccountManager) RecalculateNetworkMapCache(ctx context.Context, accountId string) error { if am.expNewNetworkMap { - account, err := am.Store.GetAccount(ctx, accountId) + account, err := am.requestBuffer.GetAccountWithBackpressure(ctx, accountId) if err != nil { return err } diff --git a/management/server/peer.go b/management/server/peer.go index e5c77fa38..333dca05a 100644 --- a/management/server/peer.go +++ b/management/server/peer.go @@ -146,11 +146,7 @@ func (am *DefaultAccountManager) MarkPeerConnected(ctx context.Context, peerPubK if expired { if am.expNewNetworkMap { - account, err := am.Store.GetAccountByPeerID(ctx, peer.ID) - if err != nil { - return err - } - am.updatePeerInNetworkMapCache(account, peer) + am.updatePeerInNetworkMapCache(peer.AccountID, peer) } // we need to update other peers because when peer login expires all other peers are notified to disconnect from // the expired one. Here we notify them that connection is now allowed again. @@ -329,11 +325,7 @@ func (am *DefaultAccountManager) UpdatePeer(ctx context.Context, accountID, user } if am.expNewNetworkMap { - account, err := am.Store.GetAccount(ctx, accountID) - if err != nil { - return nil, err - } - am.updatePeerInNetworkMapCache(account, peer) + am.updatePeerInNetworkMapCache(peer.AccountID, peer) } if peerLabelChanged || requiresPeerUpdates { @@ -834,11 +826,7 @@ func (am *DefaultAccountManager) SyncPeer(ctx context.Context, sync types.PeerSy if isStatusChanged || sync.UpdateAccountPeers || (updated && (len(postureChecks) > 0 || versionChanged)) { if am.expNewNetworkMap { - account, err := am.Store.GetAccountByPeerID(ctx, peer.ID) - if err != nil { - return nil, nil, nil, err - } - am.updatePeerInNetworkMapCache(account, peer) + am.updatePeerInNetworkMapCache(peer.AccountID, peer) } am.BufferUpdateAccountPeers(ctx, accountID) } @@ -966,11 +954,7 @@ func (am *DefaultAccountManager) LoginPeer(ctx context.Context, login types.Peer if updateRemotePeers || isStatusChanged || (isPeerUpdated && len(postureChecks) > 0) { if am.expNewNetworkMap { - account, err := am.Store.GetAccountByPeerID(ctx, peer.ID) - if err != nil { - return nil, nil, nil, err - } - am.updatePeerInNetworkMapCache(account, peer) + am.updatePeerInNetworkMapCache(peer.AccountID, peer) } am.BufferUpdateAccountPeers(ctx, accountID) } diff --git a/management/server/user.go b/management/server/user.go index 0a2031eab..e29432f4b 100644 --- a/management/server/user.go +++ b/management/server/user.go @@ -937,10 +937,6 @@ func (am *DefaultAccountManager) expireAndUpdatePeers(ctx context.Context, accou } dnsDomain := am.GetDNSDomain(settings) - account, err := am.Store.GetAccount(ctx, accountID) - if err != nil { - return err - } var peerIDs []string for _, peer := range peers { // nolint:staticcheck @@ -967,7 +963,7 @@ func (am *DefaultAccountManager) expireAndUpdatePeers(ctx context.Context, accou ) if am.expNewNetworkMap { - am.updatePeerInNetworkMapCache(account, peer) + am.updatePeerInNetworkMapCache(peer.AccountID, peer) } }