github.com/aporeto-inc/trireme-lib@v10.358.0+incompatible/monitor/internal/linux/config.go (about) 1 package linuxmonitor 2 3 import ( 4 "go.aporeto.io/enforcerd/trireme-lib/common" 5 "go.aporeto.io/enforcerd/trireme-lib/monitor/extractors" 6 ) 7 8 // Config is the configuration options to start a CNI monitor 9 type Config struct { 10 EventMetadataExtractor extractors.EventMetadataExtractor 11 StoredPath string 12 ReleasePath string 13 Host bool 14 } 15 16 // DefaultConfig provides a default configuration 17 func DefaultConfig(host bool) *Config { 18 19 return &Config{ 20 EventMetadataExtractor: extractors.DefaultHostMetadataExtractor, 21 ReleasePath: "", 22 StoredPath: common.TriremeCgroupPath, 23 Host: host, 24 } 25 } 26 27 // SetupDefaultConfig adds defaults to a partial configuration 28 func SetupDefaultConfig(linuxConfig *Config) *Config { 29 30 defaultConfig := DefaultConfig(linuxConfig.Host) 31 32 if linuxConfig.ReleasePath == "" { 33 linuxConfig.ReleasePath = defaultConfig.ReleasePath 34 } 35 36 if linuxConfig.EventMetadataExtractor == nil { 37 linuxConfig.EventMetadataExtractor = defaultConfig.EventMetadataExtractor 38 } 39 40 if linuxConfig.StoredPath == "" { 41 linuxConfig.StoredPath = common.TriremeCgroupPath 42 } 43 44 return linuxConfig 45 }