refact pkg/acquisition: extract loop method

This commit is contained in:
marco 2025-05-07 15:41:43 +02:00
parent ce6018fbbf
commit 17234963c0
3 changed files with 113 additions and 97 deletions

View file

@ -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
}

View file

@ -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

View file

@ -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 != "" {