fix: show correct number of peers after switching accounts

This commit is contained in:
Johan Siebens
2024-02-10 14:51:15 +01:00
parent 271d99a3ce
commit 0eef9faf86
4 changed files with 6 additions and 5 deletions
+3 -3
View File
@@ -471,14 +471,14 @@ func (r *repository) ListMachineByTailnet(ctx context.Context, tailnetID uint64)
return machines, nil
}
func (r *repository) ListMachinePeers(ctx context.Context, tailnetID uint64, key string) (Machines, error) {
var machines = []Machine{}
func (r *repository) ListMachinePeers(ctx context.Context, tailnetID uint64, machineID uint64) (Machines, error) {
var machines []Machine
tx := r.withContext(ctx).
Preload("Tailnet").
Joins("User").
Joins("User.Account").
Where("machines.tailnet_id = ? AND machines.machine_key <> ?", tailnetID, key).
Where("machines.tailnet_id = ? AND machines.id <> ?", tailnetID, machineID).
Order("machines.id asc").
Find(&machines)
+1 -1
View File
@@ -67,7 +67,7 @@ type Repository interface {
CountMachineByTailnet(ctx context.Context, tailnetID uint64) (int64, error)
DeleteMachineByTailnet(ctx context.Context, tailnetID uint64) error
DeleteMachineByUser(ctx context.Context, userID uint64) error
ListMachinePeers(ctx context.Context, tailnetID uint64, key string) (Machines, error)
ListMachinePeers(ctx context.Context, tailnetID uint64, machineID uint64) (Machines, error)
ListInactiveEphemeralMachines(ctx context.Context, checkpoint time.Time) (Machines, error)
SetMachineLastSeen(ctx context.Context, machineID uint64) error
+1 -1
View File
@@ -81,7 +81,7 @@ func (h *PollNetMapper) CreateMapResponse(ctx context.Context, delta bool) (*Map
syncedPeerIDs := map[uint64]bool{}
if !h.req.OmitPeers {
candidatePeers, err := h.repository.ListMachinePeers(ctx, m.TailnetID, m.MachineKey)
candidatePeers, err := h.repository.ListMachinePeers(ctx, m.TailnetID, m.ID)
if err != nil {
return nil, err
}
+1
View File
@@ -34,6 +34,7 @@ func TestSwitchAccounts(t *testing.T) {
require.NoError(t, node.WaitFor(tsn.Connected()))
require.NoError(t, node.Check(tsn.HasUser("jane@localtest.me")))
require.NoError(t, node.Check(tsn.HasName("switch-1")))
require.NoError(t, node.Check(tsn.PeerCount(1)))
machines := s.ListMachines(tailnet.Id)
require.Equal(t, 2, len(machines))