mirror of
https://github.com/crowdsecurity/crowdsec.git
synced 2025-05-11 12:25:53 +02:00
refact pkg/acquisition: extract loop method
This commit is contained in:
parent
ce6018fbbf
commit
17234963c0
3 changed files with 113 additions and 97 deletions
|
@ -120,7 +120,7 @@ func LoadAcquisition(cConfig *csconfig.Config) ([]acquisition.DataSource, error)
|
|||
return nil, fmt.Errorf("failed to configure datasource for %s: %w", flags.OneShotDSN, err)
|
||||
}
|
||||
} else {
|
||||
dataSources, err = acquisition.LoadAcquisitionFromFile(cConfig.Crowdsec, cConfig.Prometheus)
|
||||
dataSources, err = acquisition.LoadAcquisitionFromFiles(cConfig.Crowdsec, cConfig.Prometheus)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
|
@ -215,13 +215,11 @@ func GetMetricsLevelFromPromCfg(prom *csconfig.PrometheusCfg) int {
|
|||
return configuration.METRICS_FULL
|
||||
}
|
||||
|
||||
// LoadAcquisitionFromFile unmarshals the configuration item and checks its availability
|
||||
func LoadAcquisitionFromFile(config *csconfig.CrowdsecServiceCfg, prom *csconfig.PrometheusCfg) ([]DataSource, error) {
|
||||
|
||||
// sourcesFromFile reads and parses one acquisition file into DataSources.
|
||||
func sourcesFromFile(acquisFile string, metrics_level int) ([]DataSource, error) {
|
||||
var sources []DataSource
|
||||
|
||||
metrics_level := GetMetricsLevelFromPromCfg(prom)
|
||||
|
||||
for _, acquisFile := range config.AcquisitionFiles {
|
||||
log.Infof("loading acquisition file : %s", acquisFile)
|
||||
|
||||
yamlFile, err := os.Open(acquisFile)
|
||||
|
@ -317,11 +315,29 @@ func LoadAcquisitionFromFile(config *csconfig.CrowdsecServiceCfg, prom *csconfig
|
|||
|
||||
sources = append(sources, src)
|
||||
}
|
||||
}
|
||||
|
||||
return sources, nil
|
||||
}
|
||||
|
||||
|
||||
// LoadAcquisitionFromFiles unmarshals the configuration item and checks its availability
|
||||
func LoadAcquisitionFromFiles(config *csconfig.CrowdsecServiceCfg, prom *csconfig.PrometheusCfg) ([]DataSource, error) {
|
||||
var allSources []DataSource
|
||||
|
||||
metrics_level := GetMetricsLevelFromPromCfg(prom)
|
||||
|
||||
for _, acquisFile := range config.AcquisitionFiles {
|
||||
sources, err := sourcesFromFile(acquisFile, metrics_level)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
allSources = append(allSources, sources...)
|
||||
}
|
||||
|
||||
return allSources, nil
|
||||
}
|
||||
|
||||
func GetMetrics(sources []DataSource, aggregated bool) error {
|
||||
var metrics []prometheus.Collector
|
||||
|
||||
|
|
|
@ -215,7 +215,7 @@ wowo: ajsajasjas
|
|||
}
|
||||
}
|
||||
|
||||
func TestLoadAcquisitionFromFile(t *testing.T) {
|
||||
func TestLoadAcquisitionFromFiles(t *testing.T) {
|
||||
appendMockSource()
|
||||
t.Setenv("TEST_ENV", "test_value2")
|
||||
|
||||
|
@ -293,7 +293,7 @@ func TestLoadAcquisitionFromFile(t *testing.T) {
|
|||
}
|
||||
for _, tc := range tests {
|
||||
t.Run(tc.TestName, func(t *testing.T) {
|
||||
dss, err := LoadAcquisitionFromFile(&tc.Config, nil)
|
||||
dss, err := LoadAcquisitionFromFiles(&tc.Config, nil)
|
||||
cstest.RequireErrorContains(t, err, tc.ExpectedError)
|
||||
|
||||
if tc.ExpectedError != "" {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue