func anyRoutingRulesInDataStream()

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
}