in code/go/internal/validator/semantic/validate_routing_rules_and_dataset.go [64:92]
func anyRoutingRulesInDataStream(fsys fspath.FS, dataStream string) (bool, error) {
routingRulesPath := path.Join("data_stream", dataStream, "routing_rules.yml")
f, err := pkgpath.Files(fsys, routingRulesPath)
if err != nil {
return false, nil
}
if len(f) == 0 {
return false, nil
}
if len(f) != 1 {
return false, fmt.Errorf("single routing rules expected")
}
vals, err := f[0].Values("$[*]")
if err != nil {
return false, fmt.Errorf("can't read routing_rules: %w", err)
}
rules, ok := vals.([]interface{})
if !ok {
return false, fmt.Errorf("routing rules conversion error")
}
if len(rules) > 0 {
return true, nil
}
return false, nil
}