in perfdash/config.go [636:676]
func getProwConfig(configPaths []string) (Jobs, error) {
jobs := Jobs{}
for _, configPath := range configPaths {
klog.Infof("Fetching config %s", configPath)
var content []byte
var err error
switch {
case strings.HasPrefix(configPath, "http://"), strings.HasPrefix(configPath, "https://"):
content, err = urlConfigRead(configPath)
default:
content, err = fileConfigRead(configPath)
}
if err != nil {
return nil, err
}
conf := &config{}
if err := yaml.Unmarshal(content, conf); err != nil {
return nil, fmt.Errorf("error unmarshaling prow config from %s: %v", configPath, err)
}
for _, periodic := range conf.Periodics {
config, err := parsePeriodicConfig(periodic)
if err != nil {
klog.Errorf("warning: failed to parse config of %q due to: %v",
periodic.Name, err)
continue
}
shouldUse, err := checkIfConfigShouldBeUsed(config)
if err != nil {
klog.Errorf("warning: failed to validate config of %q due to: %v",
periodic.Name, err)
continue
}
if shouldUse {
jobs[periodic.Name] = config
}
}
}
klog.Infof("Read configs with %d jobs", len(jobs))
return jobs, nil
}