Merge branch 'main' into fix/agentnet-bedrock-model-normalization

This commit is contained in:
Maycon Santos
2026-07-15 22:05:35 +02:00
committed by GitHub
2 changed files with 49 additions and 25 deletions
+9 -4
View File
@@ -1,19 +1,24 @@
package main package main
import ( import (
"log"
"net/http" "net/http"
// nolint:gosec // nolint:gosec
_ "net/http/pprof" _ "net/http/pprof"
"os" "os"
log "github.com/sirupsen/logrus"
"github.com/netbirdio/netbird/management/cmd" "github.com/netbirdio/netbird/management/cmd"
) )
func main() { func main() {
go func() { if pprofAddr := os.Getenv("NB_PPROF_ADDR"); pprofAddr != "" {
log.Println(http.ListenAndServe("localhost:6060", nil)) log.Infof("pprof enabled, listening on: %s", pprofAddr)
}() go func() {
log.Println(http.ListenAndServe(pprofAddr, nil))
}()
}
if err := cmd.Execute(); err != nil { if err := cmd.Execute(); err != nil {
os.Exit(1) os.Exit(1)
} }
@@ -7,6 +7,7 @@ import (
"slices" "slices"
"strconv" "strconv"
"strings" "strings"
"sync"
"time" "time"
"github.com/netbirdio/netbird/client/ssh/auth" "github.com/netbirdio/netbird/client/ssh/auth"
@@ -42,6 +43,14 @@ type NetworkMapComponents struct {
PostureFailedPeers map[string]map[string]struct{} PostureFailedPeers map[string]map[string]struct{}
RouterPeers map[string]*nbpeer.Peer RouterPeers map[string]*nbpeer.Peer
routesByPeerOnce sync.Once
routesByPeerIdx map[string][]routeIndexEntry
}
type routeIndexEntry struct {
route *route.Route
viaGroup bool
} }
type AccountSettingsInfo struct { type AccountSettingsInfo struct {
@@ -530,33 +539,43 @@ func (c *NetworkMapComponents) getRoutingPeerRoutes(peerID string) (enabledRoute
disabledRoutes = append(disabledRoutes, r) disabledRoutes = append(disabledRoutes, r)
} }
for _, r := range c.Routes { for _, entry := range c.routesByPeer()[peerID] {
for _, groupID := range r.PeerGroups { if entry.viaGroup {
group := c.GetGroupInfo(groupID) newPeerRoute := entry.route.Copy()
if group == nil { newPeerRoute.PeerGroups = nil
continue newPeerRoute.ID = route.ID(string(entry.route.ID) + ":" + peerID)
} takeRoute(newPeerRoute)
for _, id := range group.Peers { continue
if id != peerID {
continue
}
newPeerRoute := r.Copy()
newPeerRoute.Peer = id
newPeerRoute.PeerGroups = nil
newPeerRoute.ID = route.ID(string(r.ID) + ":" + id)
takeRoute(newPeerRoute)
break
}
}
if r.Peer == peerID {
takeRoute(r.Copy())
} }
takeRoute(entry.route.Copy())
} }
return enabledRoutes, disabledRoutes return enabledRoutes, disabledRoutes
} }
func (c *NetworkMapComponents) routesByPeer() map[string][]routeIndexEntry {
c.routesByPeerOnce.Do(func() {
idx := make(map[string][]routeIndexEntry)
for _, r := range c.Routes {
for _, groupID := range r.PeerGroups {
group := c.GetGroupInfo(groupID)
if group == nil {
continue
}
for _, id := range group.Peers {
idx[id] = append(idx[id], routeIndexEntry{route: r, viaGroup: true})
}
}
if r.Peer != "" {
idx[r.Peer] = append(idx[r.Peer], routeIndexEntry{route: r})
}
}
c.routesByPeerIdx = idx
})
return c.routesByPeerIdx
}
func (c *NetworkMapComponents) filterRoutesByGroups(routes []*route.Route, groupListMap LookupMap) []*route.Route { func (c *NetworkMapComponents) filterRoutesByGroups(routes []*route.Route, groupListMap LookupMap) []*route.Route {
var filteredRoutes []*route.Route var filteredRoutes []*route.Route
for _, r := range routes { for _, r := range routes {