Add netflow manager (#3398)

* Add netflow manager

* fix linter issues
This commit is contained in:
Maycon Santos
2025-02-27 12:05:20 +00:00
committed by GitHub
parent 994b923d56
commit 8276236dfa
8 changed files with 345 additions and 169 deletions
+48
View File
@@ -0,0 +1,48 @@
package netflow
import (
"context"
"sync"
"github.com/netbirdio/netbird/client/internal/netflow/logger"
"github.com/netbirdio/netbird/client/internal/netflow/types"
)
type Manager struct {
mux sync.Mutex
logger types.FlowLogger
flowConfig *types.FlowConfig
}
func NewManager(ctx context.Context) *Manager {
return &Manager{
logger: logger.New(ctx),
}
}
func (m *Manager) Update(update *types.FlowConfig) error {
m.mux.Lock()
defer m.mux.Unlock()
if update == nil {
return nil
}
m.flowConfig = update
if update.Enabled {
m.logger.Enable()
return nil
}
m.logger.Disable()
return nil
}
func (m *Manager) Close() {
m.logger.Close()
}
func (m *Manager) GetLogger() types.FlowLogger {
return m.logger
}