diff --git a/management/server/sql_store.go b/management/server/sql_store.go index 41e9fde8b..37cc10d8b 100644 --- a/management/server/sql_store.go +++ b/management/server/sql_store.go @@ -274,10 +274,15 @@ func (s *SqlStore) GetInstallationID() string { func (s *SqlStore) SavePeerStatus(accountID, peerID string, peerStatus nbpeer.PeerStatus) error { var peerCopy nbpeer.Peer peerCopy.Status = &peerStatus - result := s.db.Model(&nbpeer.Peer{}). - Where("account_id = ? AND id = ?", accountID, peerID). - Updates(peerCopy) + fieldsToUpdate := []string{ + "peer_status_last_seen", "peer_status_connected", + "peer_status_login_expired", "peer_status_required_approval", + } + result := s.db.Model(&nbpeer.Peer{}). + Select(fieldsToUpdate). + Where("account_id = ? AND id = ?", accountID, peerID). + Updates(&peerCopy) if result.Error != nil { return result.Error } diff --git a/management/server/sql_store_test.go b/management/server/sql_store_test.go index e3ba00b56..f46ca7e5d 100644 --- a/management/server/sql_store_test.go +++ b/management/server/sql_store_test.go @@ -373,7 +373,7 @@ func TestSqlite_SavePeerStatus(t *testing.T) { require.NoError(t, err) // save status of non-existing peer - newStatus := nbpeer.PeerStatus{Connected: true, LastSeen: time.Now().UTC()} + newStatus := nbpeer.PeerStatus{Connected: false, LastSeen: time.Now().UTC()} err = store.SavePeerStatus(account.Id, "non-existing-peer", newStatus) assert.Error(t, err) parsedErr, ok := status.FromError(err) @@ -388,7 +388,7 @@ func TestSqlite_SavePeerStatus(t *testing.T) { IP: net.IP{127, 0, 0, 1}, Meta: nbpeer.PeerSystemMeta{}, Name: "peer name", - Status: &nbpeer.PeerStatus{Connected: false, LastSeen: time.Now().UTC()}, + Status: &nbpeer.PeerStatus{Connected: true, LastSeen: time.Now().UTC()}, } err = store.SaveAccount(context.Background(), account)