Skip to content

Commit a8dcff6

Browse files
authored
[management] Add peers manager to integrations (#4405)
1 parent 71e944f commit a8dcff6

File tree

7 files changed

+72
-68
lines changed

7 files changed

+72
-68
lines changed

client/cmd/testutil_test.go

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,29 +9,26 @@ import (
99
"github.com/golang/mock/gomock"
1010
"github.com/stretchr/testify/require"
1111
"go.opentelemetry.io/otel"
12+
"google.golang.org/grpc"
1213

14+
"github.com/netbirdio/management-integrations/integrations"
15+
clientProto "github.com/netbirdio/netbird/client/proto"
16+
client "github.com/netbirdio/netbird/client/server"
1317
"github.com/netbirdio/netbird/management/internals/server/config"
18+
mgmt "github.com/netbirdio/netbird/management/server"
1419
"github.com/netbirdio/netbird/management/server/activity"
1520
"github.com/netbirdio/netbird/management/server/groups"
1621
"github.com/netbirdio/netbird/management/server/integrations/port_forwarding"
22+
"github.com/netbirdio/netbird/management/server/peers"
1723
"github.com/netbirdio/netbird/management/server/permissions"
1824
"github.com/netbirdio/netbird/management/server/settings"
1925
"github.com/netbirdio/netbird/management/server/store"
2026
"github.com/netbirdio/netbird/management/server/telemetry"
2127
"github.com/netbirdio/netbird/management/server/types"
22-
23-
"github.com/netbirdio/netbird/util"
24-
25-
"google.golang.org/grpc"
26-
27-
"github.com/netbirdio/management-integrations/integrations"
28-
29-
clientProto "github.com/netbirdio/netbird/client/proto"
30-
client "github.com/netbirdio/netbird/client/server"
31-
mgmt "github.com/netbirdio/netbird/management/server"
3228
mgmtProto "github.com/netbirdio/netbird/shared/management/proto"
3329
sigProto "github.com/netbirdio/netbird/shared/signal/proto"
3430
sig "github.com/netbirdio/netbird/signal/server"
31+
"github.com/netbirdio/netbird/util"
3532
)
3633

3734
func startTestingServices(t *testing.T) string {
@@ -90,15 +87,19 @@ func startManagement(t *testing.T, config *config.Config, testFile string) (*grp
9087
if err != nil {
9188
return nil, nil
9289
}
93-
iv, _ := integrations.NewIntegratedValidator(context.Background(), eventStore)
9490

95-
metrics, err := telemetry.NewDefaultAppMetrics(context.Background())
96-
require.NoError(t, err)
9791
ctrl := gomock.NewController(t)
9892
t.Cleanup(ctrl.Finish)
9993

100-
settingsMockManager := settings.NewMockManager(ctrl)
10194
permissionsManagerMock := permissions.NewMockManager(ctrl)
95+
peersmanager := peers.NewManager(store, permissionsManagerMock)
96+
97+
iv, _ := integrations.NewIntegratedValidator(context.Background(), peersmanager, eventStore)
98+
99+
metrics, err := telemetry.NewDefaultAppMetrics(context.Background())
100+
require.NoError(t, err)
101+
102+
settingsMockManager := settings.NewMockManager(ctrl)
102103
groupsManager := groups.NewManagerMock()
103104

104105
settingsMockManager.EXPECT().

client/internal/engine_test.go

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,13 @@ import (
1919
"github.com/stretchr/testify/assert"
2020
"github.com/stretchr/testify/require"
2121
"go.opentelemetry.io/otel"
22+
wgdevice "golang.zx2c4.com/wireguard/device"
23+
"golang.zx2c4.com/wireguard/tun/netstack"
2224
"golang.zx2c4.com/wireguard/wgctrl/wgtypes"
2325
"google.golang.org/grpc"
2426
"google.golang.org/grpc/keepalive"
2527

26-
wgdevice "golang.zx2c4.com/wireguard/device"
27-
"golang.zx2c4.com/wireguard/tun/netstack"
28-
2928
"github.com/netbirdio/management-integrations/integrations"
30-
"github.com/netbirdio/netbird/management/internals/server/config"
31-
"github.com/netbirdio/netbird/management/server/groups"
32-
3329
"github.com/netbirdio/netbird/client/iface"
3430
"github.com/netbirdio/netbird/client/iface/bind"
3531
"github.com/netbirdio/netbird/client/iface/configurer"
@@ -45,9 +41,12 @@ import (
4541
"github.com/netbirdio/netbird/client/ssh"
4642
"github.com/netbirdio/netbird/client/system"
4743
nbdns "github.com/netbirdio/netbird/dns"
44+
"github.com/netbirdio/netbird/management/internals/server/config"
4845
"github.com/netbirdio/netbird/management/server"
4946
"github.com/netbirdio/netbird/management/server/activity"
47+
"github.com/netbirdio/netbird/management/server/groups"
5048
"github.com/netbirdio/netbird/management/server/integrations/port_forwarding"
49+
"github.com/netbirdio/netbird/management/server/peers"
5150
"github.com/netbirdio/netbird/management/server/permissions"
5251
"github.com/netbirdio/netbird/management/server/settings"
5352
"github.com/netbirdio/netbird/management/server/store"
@@ -1555,7 +1554,10 @@ func startManagement(t *testing.T, dataDir, testFile string) (*grpc.Server, stri
15551554
if err != nil {
15561555
return nil, "", err
15571556
}
1558-
ia, _ := integrations.NewIntegratedValidator(context.Background(), eventStore)
1557+
1558+
permissionsManager := permissions.NewManager(store)
1559+
peersManager := peers.NewManager(store, permissionsManager)
1560+
ia, _ := integrations.NewIntegratedValidator(context.Background(), peersManager, eventStore)
15591561

15601562
metrics, err := telemetry.NewDefaultAppMetrics(context.Background())
15611563
require.NoError(t, err)
@@ -1572,7 +1574,6 @@ func startManagement(t *testing.T, dataDir, testFile string) (*grpc.Server, stri
15721574
Return(&types.ExtraSettings{}, nil).
15731575
AnyTimes()
15741576

1575-
permissionsManager := permissions.NewManager(store)
15761577
groupsManager := groups.NewManagerMock()
15771578

15781579
accountManager, err := server.BuildManager(context.Background(), store, peersUpdateManager, nil, "", "netbird.selfhosted", eventStore, nil, false, ia, metrics, port_forwarding.NewControllerMock(), settingsMockManager, permissionsManager, false)

client/server/server_test.go

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,25 +10,24 @@ import (
1010
"time"
1111

1212
"github.com/golang/mock/gomock"
13-
"github.com/stretchr/testify/require"
14-
"go.opentelemetry.io/otel"
15-
16-
"github.com/netbirdio/management-integrations/integrations"
17-
"github.com/netbirdio/netbird/management/internals/server/config"
18-
"github.com/netbirdio/netbird/management/server/groups"
19-
2013
log "github.com/sirupsen/logrus"
2114
"github.com/stretchr/testify/assert"
15+
"github.com/stretchr/testify/require"
16+
"go.opentelemetry.io/otel"
2217
"google.golang.org/grpc"
2318
"google.golang.org/grpc/keepalive"
2419

20+
"github.com/netbirdio/management-integrations/integrations"
2521
"github.com/netbirdio/netbird/client/internal"
2622
"github.com/netbirdio/netbird/client/internal/peer"
2723
"github.com/netbirdio/netbird/client/internal/profilemanager"
2824
daemonProto "github.com/netbirdio/netbird/client/proto"
25+
"github.com/netbirdio/netbird/management/internals/server/config"
2926
"github.com/netbirdio/netbird/management/server"
3027
"github.com/netbirdio/netbird/management/server/activity"
28+
"github.com/netbirdio/netbird/management/server/groups"
3129
"github.com/netbirdio/netbird/management/server/integrations/port_forwarding"
30+
"github.com/netbirdio/netbird/management/server/peers"
3231
"github.com/netbirdio/netbird/management/server/permissions"
3332
"github.com/netbirdio/netbird/management/server/settings"
3433
"github.com/netbirdio/netbird/management/server/store"
@@ -294,15 +293,19 @@ func startManagement(t *testing.T, signalAddr string, counter *int) (*grpc.Serve
294293
if err != nil {
295294
return nil, "", err
296295
}
297-
ia, _ := integrations.NewIntegratedValidator(context.Background(), eventStore)
296+
297+
ctrl := gomock.NewController(t)
298+
t.Cleanup(ctrl.Finish)
299+
300+
permissionsManagerMock := permissions.NewMockManager(ctrl)
301+
peersManager := peers.NewManager(store, permissionsManagerMock)
302+
303+
ia, _ := integrations.NewIntegratedValidator(context.Background(), peersManager, eventStore)
298304

299305
metrics, err := telemetry.NewDefaultAppMetrics(context.Background())
300306
require.NoError(t, err)
301307

302-
ctrl := gomock.NewController(t)
303-
t.Cleanup(ctrl.Finish)
304308
settingsMockManager := settings.NewMockManager(ctrl)
305-
permissionsManagerMock := permissions.NewMockManager(ctrl)
306309
groupsManager := groups.NewManagerMock()
307310

308311
accountManager, err := server.BuildManager(context.Background(), store, peersUpdateManager, nil, "", "netbird.selfhosted", eventStore, nil, false, ia, metrics, port_forwarding.NewControllerMock(), settingsMockManager, permissionsManagerMock, false)

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ require (
6262
github.com/miekg/dns v1.1.59
6363
github.com/mitchellh/hashstructure/v2 v2.0.2
6464
github.com/nadoo/ipset v0.5.0
65-
github.com/netbirdio/management-integrations/integrations v0.0.0-20250820151658-9ee1b34f4190
65+
github.com/netbirdio/management-integrations/integrations v0.0.0-20250826184705-1866b8dd841f
6666
github.com/netbirdio/signal-dispatcher/dispatcher v0.0.0-20250805121659-6b4ac470ca45
6767
github.com/okta/okta-sdk-golang/v2 v2.18.0
6868
github.com/oschwald/maxminddb-golang v1.12.0

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -503,8 +503,8 @@ github.com/netbirdio/go-netroute v0.0.0-20240611143515-f59b0e1d3944 h1:TDtJKmM6S
503503
github.com/netbirdio/go-netroute v0.0.0-20240611143515-f59b0e1d3944/go.mod h1:sHA6TRxjQ6RLbnI+3R4DZo2Eseg/iKiPRfNmcuNySVQ=
504504
github.com/netbirdio/ice/v4 v4.0.0-20250827161942-426799a23107 h1:ZJwhKexMlK15B/Ld+1T8VYE2Mt1lk1kf2DlXr46EHcw=
505505
github.com/netbirdio/ice/v4 v4.0.0-20250827161942-426799a23107/go.mod h1:ZSIbPdBn5hePO8CpF1PekH2SfpTxg1PDhEwtbqZS7R8=
506-
github.com/netbirdio/management-integrations/integrations v0.0.0-20250820151658-9ee1b34f4190 h1:/ZbExdcDwRq6XgTpTf5I1DPqnC3eInEf0fcmkqR8eSg=
507-
github.com/netbirdio/management-integrations/integrations v0.0.0-20250820151658-9ee1b34f4190/go.mod h1:v0nUbbHbuQnqR7yKIYnKzsLBCswLtp2JctmKYmGgVhc=
506+
github.com/netbirdio/management-integrations/integrations v0.0.0-20250826184705-1866b8dd841f h1:r1gnjw0TfkaDLSCmAE3g5N5ulcd5WpFHaGrqQomCXP4=
507+
github.com/netbirdio/management-integrations/integrations v0.0.0-20250826184705-1866b8dd841f/go.mod h1:v0nUbbHbuQnqR7yKIYnKzsLBCswLtp2JctmKYmGgVhc=
508508
github.com/netbirdio/service v0.0.0-20240911161631-f62744f42502 h1:3tHlFmhTdX9axERMVN63dqyFqnvuD+EMJHzM7mNGON8=
509509
github.com/netbirdio/service v0.0.0-20240911161631-f62744f42502/go.mod h1:CIMRFEJVL+0DS1a3Nx06NaMn4Dz63Ng6O7dl0qH0zVM=
510510
github.com/netbirdio/signal-dispatcher/dispatcher v0.0.0-20250805121659-6b4ac470ca45 h1:ujgviVYmx243Ksy7NdSwrdGPSRNE3pb8kEDSpH0QuAQ=

management/internals/server/controllers.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ func (s *BaseServer) PeersUpdateManager() *server.PeersUpdateManager {
2020

2121
func (s *BaseServer) IntegratedValidator() integrated_validator.IntegratedValidator {
2222
return Create(s, func() integrated_validator.IntegratedValidator {
23-
integratedPeerValidator, err := integrations.NewIntegratedValidator(context.Background(), s.EventStore())
23+
integratedPeerValidator, err := integrations.NewIntegratedValidator(context.Background(), s.PeersManager(), s.EventStore())
2424
if err != nil {
2525
log.Errorf("failed to create integrated peer validator: %v", err)
2626
}

shared/management/client/client_test.go

Lines changed: 30 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -9,34 +9,30 @@ import (
99
"time"
1010

1111
"github.com/golang/mock/gomock"
12+
log "github.com/sirupsen/logrus"
13+
"github.com/stretchr/testify/assert"
1214
"github.com/stretchr/testify/require"
15+
"golang.zx2c4.com/wireguard/wgctrl/wgtypes"
16+
"google.golang.org/grpc"
17+
"google.golang.org/grpc/codes"
18+
"google.golang.org/grpc/status"
1319

20+
"github.com/netbirdio/management-integrations/integrations"
1421
"github.com/netbirdio/netbird/client/system"
22+
"github.com/netbirdio/netbird/encryption"
1523
"github.com/netbirdio/netbird/management/internals/server/config"
24+
mgmt "github.com/netbirdio/netbird/management/server"
1625
"github.com/netbirdio/netbird/management/server/activity"
1726
"github.com/netbirdio/netbird/management/server/groups"
1827
"github.com/netbirdio/netbird/management/server/integrations/port_forwarding"
28+
"github.com/netbirdio/netbird/management/server/mock_server"
29+
"github.com/netbirdio/netbird/management/server/peers"
1930
"github.com/netbirdio/netbird/management/server/permissions"
2031
"github.com/netbirdio/netbird/management/server/settings"
2132
"github.com/netbirdio/netbird/management/server/store"
2233
"github.com/netbirdio/netbird/management/server/telemetry"
2334
"github.com/netbirdio/netbird/management/server/types"
24-
25-
log "github.com/sirupsen/logrus"
26-
"github.com/stretchr/testify/assert"
27-
28-
"github.com/netbirdio/management-integrations/integrations"
29-
30-
"github.com/netbirdio/netbird/encryption"
31-
mgmt "github.com/netbirdio/netbird/management/server"
32-
"github.com/netbirdio/netbird/management/server/mock_server"
3335
mgmtProto "github.com/netbirdio/netbird/shared/management/proto"
34-
35-
"golang.zx2c4.com/wireguard/wgctrl/wgtypes"
36-
"google.golang.org/grpc"
37-
"google.golang.org/grpc/codes"
38-
"google.golang.org/grpc/status"
39-
4036
"github.com/netbirdio/netbird/util"
4137
)
4238

@@ -72,13 +68,29 @@ func startManagement(t *testing.T) (*grpc.Server, net.Listener) {
7268

7369
peersUpdateManager := mgmt.NewPeersUpdateManager(nil)
7470
eventStore := &activity.InMemoryEventStore{}
75-
ia, _ := integrations.NewIntegratedValidator(context.Background(), eventStore)
71+
72+
ctrl := gomock.NewController(t)
73+
t.Cleanup(ctrl.Finish)
74+
75+
permissionsManagerMock := permissions.NewMockManager(ctrl)
76+
permissionsManagerMock.
77+
EXPECT().
78+
ValidateUserPermissions(
79+
gomock.Any(),
80+
gomock.Any(),
81+
gomock.Any(),
82+
gomock.Any(),
83+
gomock.Any(),
84+
).
85+
Return(true, nil).
86+
AnyTimes()
87+
88+
peersManger := peers.NewManager(store, permissionsManagerMock)
89+
ia, _ := integrations.NewIntegratedValidator(context.Background(), peersManger, eventStore)
7690

7791
metrics, err := telemetry.NewDefaultAppMetrics(context.Background())
7892
require.NoError(t, err)
7993

80-
ctrl := gomock.NewController(t)
81-
t.Cleanup(ctrl.Finish)
8294
settingsMockManager := settings.NewMockManager(ctrl)
8395
settingsMockManager.
8496
EXPECT().
@@ -95,19 +107,6 @@ func startManagement(t *testing.T) (*grpc.Server, net.Listener) {
95107
Return(&types.ExtraSettings{}, nil).
96108
AnyTimes()
97109

98-
permissionsManagerMock := permissions.NewMockManager(ctrl)
99-
permissionsManagerMock.
100-
EXPECT().
101-
ValidateUserPermissions(
102-
gomock.Any(),
103-
gomock.Any(),
104-
gomock.Any(),
105-
gomock.Any(),
106-
gomock.Any(),
107-
).
108-
Return(true, nil).
109-
AnyTimes()
110-
111110
accountManager, err := mgmt.BuildManager(context.Background(), store, peersUpdateManager, nil, "", "netbird.selfhosted", eventStore, nil, false, ia, metrics, port_forwarding.NewControllerMock(), settingsMockManager, permissionsManagerMock, false)
112111
if err != nil {
113112
t.Fatal(err)

0 commit comments

Comments
 (0)