mirror of
https://github.com/netbirdio/netbird.git
synced 2026-10-28 15:29:09 +01:00
hookup validated peers
This commit is contained in:
@@ -65,7 +65,7 @@ type Controller struct {
|
|||||||
|
|
||||||
perAccountServerSupportedSyncMessageVersions map[string]sharedgrpc.SyncMessageVersion
|
perAccountServerSupportedSyncMessageVersions map[string]sharedgrpc.SyncMessageVersion
|
||||||
|
|
||||||
nmdataStore networkmapdb.NetworkMapDBStore
|
nmdataStore *networkmapdb.NetworkMapDBStoreImpl
|
||||||
}
|
}
|
||||||
|
|
||||||
type bufferUpdate struct {
|
type bufferUpdate struct {
|
||||||
@@ -83,7 +83,7 @@ type bufferAffectedUpdate struct {
|
|||||||
|
|
||||||
var _ network_map.Controller = (*Controller)(nil)
|
var _ network_map.Controller = (*Controller)(nil)
|
||||||
|
|
||||||
func NewController(ctx context.Context, store store.Store, metrics telemetry.AppMetrics, peersUpdateManager network_map.PeersUpdateManager, requestBuffer account.RequestBuffer, integratedPeerValidator integrated_validator.IntegratedValidator, settingsManager settings.Manager, dnsDomain string, proxyController port_forwarding.Controller, ephemeralPeersManager ephemeral.Manager, config *config.Config, nmdataStore networkmapdb.NetworkMapDBStore) *Controller {
|
func NewController(ctx context.Context, store store.Store, metrics telemetry.AppMetrics, peersUpdateManager network_map.PeersUpdateManager, requestBuffer account.RequestBuffer, integratedPeerValidator integrated_validator.IntegratedValidator, settingsManager settings.Manager, dnsDomain string, proxyController port_forwarding.Controller, ephemeralPeersManager ephemeral.Manager, config *config.Config, nmdataStore *networkmapdb.NetworkMapDBStoreImpl) *Controller {
|
||||||
nMetrics, err := newMetrics(metrics.UpdateChannelMetrics())
|
nMetrics, err := newMetrics(metrics.UpdateChannelMetrics())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(fmt.Errorf("error creating metrics: %w", err))
|
log.Fatal(fmt.Errorf("error creating metrics: %w", err))
|
||||||
|
|||||||
@@ -8,10 +8,13 @@ import (
|
|||||||
"reflect"
|
"reflect"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"github.com/rs/xid"
|
||||||
|
"golang.org/x/exp/maps"
|
||||||
|
|
||||||
|
"github.com/netbirdio/management-integrations/integrations"
|
||||||
"github.com/netbirdio/netbird/management/server/integrations/integrated_validator"
|
"github.com/netbirdio/netbird/management/server/integrations/integrated_validator"
|
||||||
"github.com/netbirdio/netbird/shared/management/networkmap"
|
"github.com/netbirdio/netbird/shared/management/networkmap"
|
||||||
"github.com/netbirdio/netbird/shared/management/networkmap/nmdata"
|
"github.com/netbirdio/netbird/shared/management/networkmap/nmdata"
|
||||||
"github.com/rs/xid"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@@ -40,6 +43,34 @@ type NetworkMapDBStore interface {
|
|||||||
type NetworkMapDBStoreImpl struct {
|
type NetworkMapDBStoreImpl struct {
|
||||||
store NetworkMapDBStore
|
store NetworkMapDBStore
|
||||||
integratedPeerValidator integrated_validator.IntegratedValidator
|
integratedPeerValidator integrated_validator.IntegratedValidator
|
||||||
|
extraSettingsManager integrations.Manager
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewNetworkMapDBStoreImpl(store NetworkMapDBStore, integratedPeerValidator integrated_validator.IntegratedValidator, extraSettingsManager integrations.Manager) *NetworkMapDBStoreImpl {
|
||||||
|
return &NetworkMapDBStoreImpl{
|
||||||
|
store: store,
|
||||||
|
integratedPeerValidator: integratedPeerValidator,
|
||||||
|
extraSettingsManager: extraSettingsManager,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *NetworkMapDBStoreImpl) GetNetworkMapData(ctx context.Context, accountId string) (*networkmap.NetworkMapData, error) {
|
||||||
|
nmdata, err := s.store.GetNetworkMapData(ctx, accountId)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
extraSettings, err := s.extraSettingsManager.GetExtraSettings(ctx, accountId)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
nmdata.ValidatedPeers, err = s.integratedPeerValidator.GetValidatedPeers(ctx, accountId, maps.Values(nmdata.Groups), maps.Values(nmdata.Peers), extraSettings)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nmdata, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func FromSqlTypesToSharedTypes(src reflect.Value, dst reflect.Value) error {
|
func FromSqlTypesToSharedTypes(src reflect.Value, dst reflect.Value) error {
|
||||||
|
|||||||
@@ -102,8 +102,8 @@ func (s *BaseServer) Store() store.Store {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *BaseServer) NetworkMapStore() networkmapdb.NetworkMapDBStore {
|
func (s *BaseServer) NetworkMapStore() *networkmapdb.NetworkMapDBStoreImpl {
|
||||||
return Create(s, func() networkmapdb.NetworkMapDBStore {
|
return Create(s, func() *networkmapdb.NetworkMapDBStoreImpl {
|
||||||
dsn := os.Getenv("NETBIRD_NMAP_STORE_DSN") // Todo: this needs to be hoocked up properly
|
dsn := os.Getenv("NETBIRD_NMAP_STORE_DSN") // Todo: this needs to be hoocked up properly
|
||||||
if dsn == "" {
|
if dsn == "" {
|
||||||
return nil
|
return nil
|
||||||
@@ -114,7 +114,7 @@ func (s *BaseServer) NetworkMapStore() networkmapdb.NetworkMapDBStore {
|
|||||||
log.Fatalf("failed to create network map store: %v", err)
|
log.Fatalf("failed to create network map store: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return store
|
return networkmapdb.NewNetworkMapDBStoreImpl(store, s.IntegratedValidator(), s.SettingsManager())
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user