MCPcopy Create free account
hub / github.com/zalando/skipper / ValidateRoute

Function ValidateRoute

routing/datasource.go:500–529  ·  view source on GitHub ↗

ValidateRoute processes a route definition through all configured preprocessors and validates that all resulting routes can be successfully processed. This function is specifically designed for validation webhooks where: - Preprocessors may add additional routes (like OAuth callback routes) - All r

(o *Options, def *eskip.Route)

Source from the content-addressed store, hash-verified

498//
499// Returns an error if any preprocessor fails or any resulting route is invalid.
500func ValidateRoute(o *Options, def *eskip.Route) error {
501 mdef := []*eskip.Route{def}
502 for _, preprocessor := range o.PreProcessors {
503 mdef = preprocessor.Do(mdef)
504 if len(mdef) == 0 {
505 return fmt.Errorf("preprocessing route failed while validating")
506 }
507 }
508
509 mp := mapPredicates(o.Predicates)
510 var validatedRoutes []*Route
511
512 cleanUp := func() {
513 for _, route := range validatedRoutes {
514 closeFilters(route.Filters)
515 }
516 }
517 for _, r := range mdef {
518 route, err := processRouteDef(o, mp, r)
519 if err != nil {
520 cleanUp()
521 return err
522 }
523 validatedRoutes = append(validatedRoutes, route)
524 }
525
526 defer cleanUp()
527
528 return nil
529}
530
531// processes a route definition for the routing table
532func processRouteDef(o *Options, cpm map[string]PredicateSpec, def *eskip.Route) (*Route, error) {

Callers 3

validateFiltersFunction · 0.92
validatePredicatesFunction · 0.92
validateRouteFunction · 0.92

Calls 5

mapPredicatesFunction · 0.85
closeFiltersFunction · 0.85
processRouteDefFunction · 0.85
DoMethod · 0.65
ErrorfMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…