package egressutil func ProbeFirstSuccess(endpoints []string, probe func(rawURL string) (string, error)) (string, []string) { if len(endpoints) == 0 { return "", nil } errs := make([]string, 0, len(endpoints)) for _, rawURL := range endpoints { if probe == nil { continue } val, err := probe(rawURL) if err == nil { return val, nil } errs = append(errs, err.Error()) } return "", errs }