mirror of
https://github.com/netbirdio/netbird.git
synced 2026-05-02 07:06:41 +00:00
extract peer host method
This commit is contained in:
@@ -154,24 +154,7 @@ func (m *Manager) replaceHostByLookup(ctx context.Context, accountID string, s *
|
|||||||
for _, target := range s.Targets {
|
for _, target := range s.Targets {
|
||||||
switch target.TargetType {
|
switch target.TargetType {
|
||||||
case service.TargetTypePeer:
|
case service.TargetTypePeer:
|
||||||
peer, err := m.store.GetPeerByID(ctx, store.LockingStrengthNone, accountID, target.TargetId)
|
target.Host = m.getPeerTargetHost(ctx, accountID, target)
|
||||||
if err != nil {
|
|
||||||
log.WithContext(ctx).Warnf("failed to get peer by id %s for service %s: %v", target.TargetId, s.ID, err)
|
|
||||||
target.Host = unknownHostPlaceholder
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
if target.Protocol == "https" {
|
|
||||||
settings, err := m.accountManager.GetAccountSettings(ctx, accountID, activity.SystemInitiator)
|
|
||||||
if err != nil {
|
|
||||||
log.WithContext(ctx).Warnf("failed to get account settings for service %s: %v", s.ID, err)
|
|
||||||
target.Host = unknownHostPlaceholder
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
dnsDomain := m.networkMapController.GetDNSDomain(settings)
|
|
||||||
target.Host = peer.FQDN(dnsDomain)
|
|
||||||
} else {
|
|
||||||
target.Host = peer.IP.String()
|
|
||||||
}
|
|
||||||
case service.TargetTypeHost:
|
case service.TargetTypeHost:
|
||||||
resource, err := m.store.GetNetworkResourceByID(ctx, store.LockingStrengthNone, accountID, target.TargetId)
|
resource, err := m.store.GetNetworkResourceByID(ctx, store.LockingStrengthNone, accountID, target.TargetId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -198,6 +181,26 @@ func (m *Manager) replaceHostByLookup(ctx context.Context, accountID string, s *
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (m *Manager) getPeerTargetHost(ctx context.Context, accountID string, target *service.Target) string {
|
||||||
|
peer, err := m.store.GetPeerByID(ctx, store.LockingStrengthNone, accountID, target.TargetId)
|
||||||
|
if err != nil {
|
||||||
|
log.WithContext(ctx).Warnf("failed to get peer by id %s for service %s: %v", target.TargetId, target.ServiceID, err)
|
||||||
|
return unknownHostPlaceholder
|
||||||
|
}
|
||||||
|
|
||||||
|
if target.Protocol == "https" {
|
||||||
|
settings, err := m.accountManager.GetAccountSettings(ctx, accountID, activity.SystemInitiator)
|
||||||
|
if err != nil {
|
||||||
|
log.WithContext(ctx).Warnf("failed to get account settings for service %s: %v", target.ServiceID, err)
|
||||||
|
return unknownHostPlaceholder
|
||||||
|
}
|
||||||
|
dnsDomain := m.networkMapController.GetDNSDomain(settings)
|
||||||
|
return peer.FQDN(dnsDomain)
|
||||||
|
}
|
||||||
|
|
||||||
|
return peer.IP.String()
|
||||||
|
}
|
||||||
|
|
||||||
func (m *Manager) GetService(ctx context.Context, accountID, userID, serviceID string) (*service.Service, error) {
|
func (m *Manager) GetService(ctx context.Context, accountID, userID, serviceID string) (*service.Service, error) {
|
||||||
ok, err := m.permissionsManager.ValidateUserPermissions(ctx, accountID, userID, modules.Services, operations.Read)
|
ok, err := m.permissionsManager.ValidateUserPermissions(ctx, accountID, userID, modules.Services, operations.Read)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user