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  }