mirror of
https://github.com/netbirdio/management-refactor.git
synced 2026-05-22 17:12:59 -07:00
change logging
This commit is contained in:
+6
-13
@@ -5,14 +5,12 @@ import (
|
||||
"os/signal"
|
||||
"syscall"
|
||||
|
||||
log "github.com/sirupsen/logrus"
|
||||
"github.com/spf13/cobra"
|
||||
|
||||
"github.com/netbirdio/management-refactor/internals/server"
|
||||
"github.com/netbirdio/management-refactor/pkg/logging"
|
||||
)
|
||||
|
||||
var log = logging.LoggerForThisPackage
|
||||
|
||||
var newServer = func() server.Server {
|
||||
return server.NewServer()
|
||||
}
|
||||
@@ -26,17 +24,12 @@ var mgmtCmd = &cobra.Command{
|
||||
Use: "management",
|
||||
Short: "start NetBird Management Server",
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
err := logging.Init("logging.yaml")
|
||||
if err != nil {
|
||||
log().Debugf("Failed to init logging: %v", err)
|
||||
}
|
||||
|
||||
srv := newServer()
|
||||
|
||||
go func() {
|
||||
log().Info("Starting server on :8080")
|
||||
log.Info("Starting server on :8080")
|
||||
if err := srv.Start(); err != nil {
|
||||
log().Fatalf("Server error: %v", err)
|
||||
log.Fatalf("Server error: %v", err)
|
||||
}
|
||||
}()
|
||||
|
||||
@@ -44,11 +37,11 @@ var mgmtCmd = &cobra.Command{
|
||||
signal.Notify(stopChan, os.Interrupt, syscall.SIGTERM)
|
||||
<-stopChan
|
||||
|
||||
log().Info("Shutting down server...")
|
||||
log.Info("Shutting down server...")
|
||||
if err := srv.Stop(); err != nil {
|
||||
log().Errorf("Error stopping server: %v", err)
|
||||
log.Errorf("Error stopping server: %v", err)
|
||||
}
|
||||
log().Info("Server stopped gracefully.")
|
||||
log.Info("Server stopped gracefully.")
|
||||
|
||||
return nil
|
||||
},
|
||||
|
||||
@@ -3,14 +3,13 @@ package controller
|
||||
import (
|
||||
"context"
|
||||
|
||||
log "github.com/sirupsen/logrus"
|
||||
|
||||
"github.com/netbirdio/management-refactor/internals/controllers/network_map"
|
||||
"github.com/netbirdio/management-refactor/internals/shared/db"
|
||||
appmetrics "github.com/netbirdio/management-refactor/internals/shared/metrics"
|
||||
"github.com/netbirdio/management-refactor/pkg/logging"
|
||||
)
|
||||
|
||||
var log = logging.LoggerForThisPackage
|
||||
|
||||
type Controller struct {
|
||||
repo Repository
|
||||
metrics *metrics
|
||||
@@ -20,7 +19,7 @@ type Controller struct {
|
||||
func NewController(store *db.Store, metrics *appmetrics.AppMetrics, updateChannel network_map.UpdateChannel) *Controller {
|
||||
cMetrics, err := appmetrics.RegisterMetrics(metrics, newMetrics)
|
||||
if err != nil {
|
||||
log().Fatalf("Failed to register app metrics: %v", err)
|
||||
log.Fatalf("Failed to register app metrics: %v", err)
|
||||
}
|
||||
return &Controller{
|
||||
repo: newRepository(store, cMetrics),
|
||||
@@ -37,7 +36,7 @@ func (c *Controller) CalculateNetworkMap(accountID string) (*network_map.Network
|
||||
|
||||
// Do calc on data
|
||||
|
||||
log().Tracef("Calculating network map for account on public")
|
||||
log.Tracef("Calculating network map for account on public")
|
||||
|
||||
return &network_map.NetworkMap{}, nil
|
||||
}
|
||||
@@ -45,7 +44,7 @@ func (c *Controller) CalculateNetworkMap(accountID string) (*network_map.Network
|
||||
func (c *Controller) UpdatePeers(ctx context.Context, accountID string) error {
|
||||
_, err := c.CalculateNetworkMap(accountID)
|
||||
if err != nil {
|
||||
log().Errorf("Failed to calculate network map for account %s: %v", accountID, err)
|
||||
log.Errorf("Failed to calculate network map for account %s: %v", accountID, err)
|
||||
return err
|
||||
}
|
||||
c.UpdateChannel.SendUpdate(ctx, accountID, &network_map.UpdateMessage{})
|
||||
|
||||
@@ -5,15 +5,14 @@ import (
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
log "github.com/sirupsen/logrus"
|
||||
|
||||
"github.com/netbirdio/management-refactor/internals/controllers/network_map"
|
||||
appmetrics "github.com/netbirdio/management-refactor/internals/shared/metrics"
|
||||
"github.com/netbirdio/management-refactor/pkg/logging"
|
||||
)
|
||||
|
||||
const channelBufferSize = 100
|
||||
|
||||
var log = logging.LoggerForThisPackage
|
||||
|
||||
type UpdateChannel struct {
|
||||
// peerChannels is an update channel indexed by Peer.ID
|
||||
peerChannels map[string]chan *network_map.UpdateMessage
|
||||
@@ -27,7 +26,7 @@ type UpdateChannel struct {
|
||||
func NewUpdateChannel(metrics *appmetrics.AppMetrics) *UpdateChannel {
|
||||
cMetrics, err := appmetrics.RegisterMetrics(metrics, newMetrics)
|
||||
if err != nil {
|
||||
log().Fatalf("Failed to register updatechannel metrics: %v", err)
|
||||
log.Fatalf("Failed to register updatechannel metrics: %v", err)
|
||||
}
|
||||
return &UpdateChannel{
|
||||
peerChannels: make(map[string]chan *network_map.UpdateMessage),
|
||||
@@ -38,7 +37,7 @@ func NewUpdateChannel(metrics *appmetrics.AppMetrics) *UpdateChannel {
|
||||
|
||||
// SendUpdate sends update message to the peer's channel
|
||||
func (p *UpdateChannel) SendUpdate(ctx context.Context, peerID string, update *network_map.UpdateMessage) {
|
||||
log().Debugf("Sending update message to peer %s on public update channel", peerID)
|
||||
log.Debugf("Sending update message to peer %s on public update channel", peerID)
|
||||
|
||||
start := time.Now()
|
||||
var found, dropped bool
|
||||
@@ -54,13 +53,13 @@ func (p *UpdateChannel) SendUpdate(ctx context.Context, peerID string, update *n
|
||||
found = true
|
||||
select {
|
||||
case channel <- update:
|
||||
log().WithContext(ctx).Debugf("update was sent to channel for peer %s", peerID)
|
||||
log.WithContext(ctx).Debugf("update was sent to channel for peer %s", peerID)
|
||||
default:
|
||||
dropped = true
|
||||
log().WithContext(ctx).Warnf("channel for peer %s is %d full or closed", peerID, len(channel))
|
||||
log.WithContext(ctx).Warnf("channel for peer %s is %d full or closed", peerID, len(channel))
|
||||
}
|
||||
} else {
|
||||
log().WithContext(ctx).Debugf("peer %s has no channel", peerID)
|
||||
log.WithContext(ctx).Debugf("peer %s has no channel", peerID)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -85,7 +84,7 @@ func (p *UpdateChannel) CreateChannel(ctx context.Context, peerID string) chan *
|
||||
channel := make(chan *network_map.UpdateMessage, channelBufferSize)
|
||||
p.peerChannels[peerID] = channel
|
||||
|
||||
log().WithContext(ctx).Debugf("opened updates channel for a peer %s", peerID)
|
||||
log.WithContext(ctx).Debugf("opened updates channel for a peer %s", peerID)
|
||||
|
||||
return channel
|
||||
}
|
||||
@@ -95,11 +94,11 @@ func (p *UpdateChannel) closeChannel(ctx context.Context, peerID string) {
|
||||
delete(p.peerChannels, peerID)
|
||||
close(channel)
|
||||
|
||||
log().WithContext(ctx).Debugf("closed updates channel of a peer %s", peerID)
|
||||
log.WithContext(ctx).Debugf("closed updates channel of a peer %s", peerID)
|
||||
return
|
||||
}
|
||||
|
||||
log().WithContext(ctx).Debugf("closing updates channel: peer %s has no channel", peerID)
|
||||
log.WithContext(ctx).Debugf("closing updates channel: peer %s has no channel", peerID)
|
||||
}
|
||||
|
||||
// CloseChannels closes updates channel for each given peer
|
||||
|
||||
@@ -15,12 +15,12 @@ import (
|
||||
|
||||
type managerImpl struct {
|
||||
repo Repository
|
||||
activityManager activity.Manager
|
||||
activityManager *activity.Manager
|
||||
resourceManager resources.Manager
|
||||
routerManager routers.Manager
|
||||
}
|
||||
|
||||
func NewManager(repo Repository, activityManager activity.Manager, resourceManager resources.Manager, routerManager routers.Manager) networks.Manager {
|
||||
func NewManager(repo Repository, activityManager *activity.Manager, resourceManager resources.Manager, routerManager routers.Manager) networks.Manager {
|
||||
return &managerImpl{
|
||||
repo: repo,
|
||||
activityManager: activityManager,
|
||||
|
||||
@@ -3,7 +3,6 @@ package resources
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/netbirdio/management-refactor/internals/modules/networks"
|
||||
"github.com/netbirdio/management-refactor/internals/shared/db"
|
||||
)
|
||||
|
||||
@@ -11,7 +10,7 @@ type Manager interface {
|
||||
// Create
|
||||
|
||||
// Read
|
||||
GetNetworkResourcesByNetID(ctx context.Context, tx db.Transaction, lockingStrength db.LockingStrength, network *networks.Network) ([]*NetworkResource, error)
|
||||
GetNetworkResourcesByNetID(ctx context.Context, tx db.Transaction, lockingStrength db.LockingStrength, id string) ([]*NetworkResource, error)
|
||||
|
||||
// Update
|
||||
|
||||
|
||||
@@ -23,12 +23,12 @@ func NewManager(repo Repository, router *mux.Router, networkManager networks.Man
|
||||
}
|
||||
}
|
||||
|
||||
func (m *managerImpl) GetNetworkResourcesByNetID(ctx context.Context, tx db.Transaction, lockingStrength db.LockingStrength, network *networks.Network) ([]*resources.NetworkResource, error) {
|
||||
return m.repo.GetResourcesByNetworkID(tx, lockingStrength, network.ID)
|
||||
func (m *managerImpl) GetNetworkResourcesByNetID(ctx context.Context, tx db.Transaction, lockingStrength db.LockingStrength, id string) ([]*resources.NetworkResource, error) {
|
||||
return m.repo.GetResourcesByNetworkID(tx, lockingStrength, id)
|
||||
}
|
||||
|
||||
func (m *managerImpl) DeleteResourcesInNetwork(ctx context.Context, tx db.Transaction, network *networks.Network) error {
|
||||
resources, err := m.GetNetworkResourcesByNetID(ctx, tx, db.LockingStrengthUpdate, network)
|
||||
func (m *managerImpl) DeleteResourcesInNetwork(ctx context.Context, tx db.Transaction, accountID string, userID string, id string) error {
|
||||
resources, err := m.GetNetworkResourcesByNetID(ctx, tx, db.LockingStrengthUpdate, id)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -1 +1,33 @@
|
||||
package manager
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/netbirdio/management-refactor/internals/modules/networks/routers"
|
||||
"github.com/netbirdio/management-refactor/internals/shared/db"
|
||||
)
|
||||
|
||||
type managerImpl struct {
|
||||
repo Repository
|
||||
}
|
||||
|
||||
func NewManager(repo Repository) routers.Manager {
|
||||
return &managerImpl{
|
||||
repo: repo,
|
||||
}
|
||||
}
|
||||
|
||||
func (m managerImpl) GetNetworkRoutersByNetID(ctx context.Context, tx db.Transaction, lockingStrength db.LockingStrength, accountID, userID, networkID string) ([]*routers.NetworkRouter, error) {
|
||||
// TODO implement me
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func (m managerImpl) DeleteRouter(ctx context.Context, tx db.Transaction, accountID, userID, networkID, routerID string) error {
|
||||
// TODO implement me
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func (m managerImpl) DeleteRoutersInNetwork(ctx context.Context, tx db.Transaction, accountID, userID, networkID string) error {
|
||||
// TODO implement me
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
@@ -1 +1,21 @@
|
||||
package manager
|
||||
|
||||
import (
|
||||
"github.com/netbirdio/management-refactor/internals/shared/db"
|
||||
)
|
||||
|
||||
type Repository interface {
|
||||
Store() *db.Store
|
||||
}
|
||||
|
||||
type repository struct {
|
||||
store *db.Store
|
||||
}
|
||||
|
||||
func NewRepository(s *db.Store) Repository {
|
||||
return &repository{store: s}
|
||||
}
|
||||
|
||||
func (r *repository) Store() *db.Store {
|
||||
return r.store
|
||||
}
|
||||
|
||||
@@ -3,15 +3,14 @@ package manager
|
||||
import (
|
||||
"context"
|
||||
|
||||
log "github.com/sirupsen/logrus"
|
||||
|
||||
"github.com/netbirdio/management-refactor/internals/controllers/network_map"
|
||||
"github.com/netbirdio/management-refactor/internals/modules/peers"
|
||||
"github.com/netbirdio/management-refactor/internals/shared/activity"
|
||||
"github.com/netbirdio/management-refactor/internals/shared/db"
|
||||
"github.com/netbirdio/management-refactor/pkg/logging"
|
||||
)
|
||||
|
||||
var log = logging.LoggerForThisPackage
|
||||
|
||||
var _ peers.Manager = (*Manager)(nil)
|
||||
|
||||
type Manager struct {
|
||||
@@ -25,7 +24,7 @@ func NewManager(repo Repository) *Manager {
|
||||
}
|
||||
|
||||
func (m *Manager) SetNetworkMapController(networkMapController network_map.Controller) {
|
||||
log().Tracef("Setting network map controller for peers manager")
|
||||
log.Tracef("Setting network map controller for peers manager")
|
||||
m.networkMapController = networkMapController
|
||||
}
|
||||
|
||||
|
||||
@@ -5,11 +5,8 @@ import (
|
||||
|
||||
"github.com/netbirdio/management-refactor/internals/modules/users"
|
||||
"github.com/netbirdio/management-refactor/internals/shared/db"
|
||||
"github.com/netbirdio/management-refactor/pkg/logging"
|
||||
)
|
||||
|
||||
var log = logging.LoggerForThisPackage()
|
||||
|
||||
type Manager struct {
|
||||
repo Repository
|
||||
}
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package manager
|
||||
|
||||
import (
|
||||
log "github.com/sirupsen/logrus"
|
||||
|
||||
"github.com/netbirdio/management-refactor/internals/modules/users"
|
||||
"github.com/netbirdio/management-refactor/internals/shared/db"
|
||||
)
|
||||
|
||||
@@ -7,6 +7,7 @@ import (
|
||||
"net/http"
|
||||
|
||||
"github.com/gorilla/mux"
|
||||
log "github.com/sirupsen/logrus"
|
||||
|
||||
"github.com/netbirdio/management-refactor/internals/shared/activity"
|
||||
"github.com/netbirdio/management-refactor/internals/shared/activity/sqlite"
|
||||
@@ -54,13 +55,14 @@ func (s *BaseServer) Router() *mux.Router {
|
||||
})
|
||||
}
|
||||
|
||||
func (s *BaseServer) EventStore() activity.Store {
|
||||
return Create(s, func() activity.Store {
|
||||
func (s *BaseServer) ActivityManager() *activity.Manager {
|
||||
return Create(s, func() *activity.Manager {
|
||||
ctx := context.Background()
|
||||
store, err := sqlite.NewSQLiteStore(ctx, "dataDir", "encryptionKey")
|
||||
if err != nil {
|
||||
log.Fatalf("error while creating event store: %s", err)
|
||||
}
|
||||
return store
|
||||
|
||||
return activity.NewManager(store)
|
||||
})
|
||||
}
|
||||
|
||||
@@ -5,6 +5,8 @@ import (
|
||||
"github.com/netbirdio/management-refactor/internals/modules/networks/manager"
|
||||
"github.com/netbirdio/management-refactor/internals/modules/networks/resources"
|
||||
resourcesManager "github.com/netbirdio/management-refactor/internals/modules/networks/resources/manager"
|
||||
"github.com/netbirdio/management-refactor/internals/modules/networks/routers"
|
||||
routersManager "github.com/netbirdio/management-refactor/internals/modules/networks/routers/manager"
|
||||
"github.com/netbirdio/management-refactor/internals/modules/peers"
|
||||
peersManager "github.com/netbirdio/management-refactor/internals/modules/peers/manager"
|
||||
"github.com/netbirdio/management-refactor/internals/modules/users"
|
||||
@@ -15,7 +17,7 @@ import (
|
||||
func (s *BaseServer) NetworksManager() networks.Manager {
|
||||
return Create(s, func() networks.Manager {
|
||||
repo := manager.NewRepository(s.Store())
|
||||
return manager.NewManager(repo)
|
||||
return manager.NewManager(repo, s.ActivityManager(), s.ResourcesManager(), s.RoutersManager())
|
||||
})
|
||||
}
|
||||
|
||||
@@ -27,6 +29,14 @@ func (s *BaseServer) ResourcesManager() resources.Manager {
|
||||
})
|
||||
}
|
||||
|
||||
func (s *BaseServer) RoutersManager() routers.Manager {
|
||||
return Create(s, func() routers.Manager {
|
||||
repo := routersManager.NewRepository(s.Store())
|
||||
manager := routersManager.NewManager(repo)
|
||||
return manager
|
||||
})
|
||||
}
|
||||
|
||||
func (s *BaseServer) PermissionsManager() permissions.Manager {
|
||||
return Create(s, func() permissions.Manager {
|
||||
return permissions.NewManager(s.UsersManager())
|
||||
|
||||
@@ -4,6 +4,8 @@ import (
|
||||
"context"
|
||||
"time"
|
||||
|
||||
log "github.com/sirupsen/logrus"
|
||||
|
||||
"github.com/netbirdio/management-refactor/pkg/logging"
|
||||
)
|
||||
|
||||
@@ -23,10 +25,9 @@ type BaseServer struct {
|
||||
afterInit []func(s *BaseServer)
|
||||
}
|
||||
|
||||
var log = logging.LoggerForThisPackage()
|
||||
|
||||
// NewServer initializes and configures a new Server instance
|
||||
func NewServer() *BaseServer {
|
||||
logging.InitFromFile("../management-refactor/pkg/logging/logging.properties")
|
||||
return &BaseServer{
|
||||
container: make(map[string]any),
|
||||
}
|
||||
|
||||
@@ -4,13 +4,12 @@ import (
|
||||
"context"
|
||||
"time"
|
||||
|
||||
log "github.com/sirupsen/logrus"
|
||||
|
||||
"github.com/netbirdio/management-refactor/internals/shared/db"
|
||||
"github.com/netbirdio/management-refactor/pkg/configuration"
|
||||
"github.com/netbirdio/management-refactor/pkg/logging"
|
||||
)
|
||||
|
||||
var log = logging.LoggerForThisPackage()
|
||||
|
||||
type Manager struct {
|
||||
cfg *config
|
||||
// eventStore is the event store
|
||||
|
||||
@@ -7,11 +7,10 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/google/uuid"
|
||||
"github.com/netbirdio/netbird/formatter/hook"
|
||||
"github.com/netbirdio/netbird/management/server/auth"
|
||||
nbcontext "github.com/netbirdio/netbird/management/server/context"
|
||||
"github.com/netbirdio/netbird/management/server/http/middleware/bypass"
|
||||
|
||||
"github.com/netbirdio/management-refactor/pkg/logging/hook"
|
||||
)
|
||||
|
||||
// AuthMiddleware middleware to verify personal access tokens (PAT) and JWT tokens
|
||||
|
||||
@@ -6,6 +6,7 @@ import (
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
|
||||
log "github.com/sirupsen/logrus"
|
||||
"gorm.io/driver/postgres"
|
||||
"gorm.io/driver/sqlite"
|
||||
"gorm.io/gorm"
|
||||
@@ -28,10 +29,10 @@ type DatabaseConn struct {
|
||||
func NewDatabaseConn(ctx context.Context) (*DatabaseConn, error) {
|
||||
cfg, err := configuration.Parse[config]()
|
||||
if err != nil {
|
||||
log().Fatalf("failed to parse config: %v", err)
|
||||
log.Fatalf("failed to parse config: %v", err)
|
||||
}
|
||||
|
||||
log().WithContext(ctx).Infof("using %s store engine", cfg.Engine)
|
||||
log.WithContext(ctx).Infof("using %s store engine", cfg.Engine)
|
||||
|
||||
var db *gorm.DB
|
||||
switch Engine(cfg.Engine) {
|
||||
|
||||
@@ -5,12 +5,8 @@ import (
|
||||
|
||||
"gorm.io/gorm"
|
||||
"gorm.io/gorm/clause"
|
||||
|
||||
"github.com/netbirdio/management-refactor/pkg/logging"
|
||||
)
|
||||
|
||||
var log = logging.LoggerForThisPackage
|
||||
|
||||
type Store struct {
|
||||
db *gorm.DB
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ import (
|
||||
nbcontext "github.com/netbirdio/netbird/management/server/context"
|
||||
"github.com/netbirdio/netbird/management/server/http/util"
|
||||
"github.com/netbirdio/netbird/management/server/status"
|
||||
log "github.com/sirupsen/logrus"
|
||||
|
||||
"github.com/netbirdio/management-refactor/internals/modules/users"
|
||||
"github.com/netbirdio/management-refactor/internals/shared/activity"
|
||||
@@ -16,11 +17,8 @@ import (
|
||||
"github.com/netbirdio/management-refactor/internals/shared/permissions/modules"
|
||||
"github.com/netbirdio/management-refactor/internals/shared/permissions/operations"
|
||||
"github.com/netbirdio/management-refactor/internals/shared/permissions/roles"
|
||||
"github.com/netbirdio/management-refactor/pkg/logging"
|
||||
)
|
||||
|
||||
var log = logging.LoggerForThisPackage()
|
||||
|
||||
type Manager interface {
|
||||
WithPermission(module modules.Module, operation operations.Operation, handlerFunc func(w http.ResponseWriter, r *http.Request, auth *nbcontext.UserAuth)) http.HandlerFunc
|
||||
ValidateUserPermissions(ctx context.Context, accountID, userID string, module modules.Module, operation operations.Operation) (bool, error)
|
||||
|
||||
@@ -1,11 +1,26 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
_ "embed"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"github.com/netbirdio/management-refactor/cmd"
|
||||
)
|
||||
|
||||
//go:embed go.mod
|
||||
var GoMod string
|
||||
|
||||
func ModulePath() string {
|
||||
lines := strings.Split(GoMod, "\n")
|
||||
for _, line := range lines {
|
||||
if strings.HasPrefix(line, "module ") {
|
||||
return strings.TrimSpace(strings.TrimPrefix(line, "module "))
|
||||
}
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func main() {
|
||||
if err := cmd.Execute(); err != nil {
|
||||
os.Exit(1)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user