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

Function processRouteDef

routing/datasource.go:532–559  ·  view source on GitHub ↗

processes a route definition for the routing table

(o *Options, cpm map[string]PredicateSpec, def *eskip.Route)

Source from the content-addressed store, hash-verified

530
531// processes a route definition for the routing table
532func processRouteDef(o *Options, cpm map[string]PredicateSpec, def *eskip.Route) (*Route, error) {
533 scheme, host, err := SplitBackend(def.Backend, def.BackendType, def.Shunt)
534 if err != nil {
535 return nil, fmt.Errorf("%w: failed to parse backend address %q: %w", errFailedBackendSplit, def.Backend, err)
536 }
537
538 fs, err := createFilters(o, def.Filters, cpm)
539 if err != nil {
540 return nil, err
541 }
542
543 def, err = mergeLegacyNonTreePredicates(def)
544 if err != nil {
545 return nil, err
546 }
547
548 cps, weight, err := processPredicates(o, cpm, def.Predicates)
549 if err != nil {
550 return nil, err
551 }
552
553 r := &Route{Route: *def, Scheme: scheme, Host: host, Predicates: cps, Filters: fs, weight: weight}
554 if err := processTreePredicates(r, def.Predicates); err != nil {
555 return nil, err
556 }
557
558 return r, nil
559}
560
561// convert a slice of predicate specs to a map keyed by their names
562func mapPredicates(cps []PredicateSpec) map[string]PredicateSpec {

Callers 2

ValidateRouteFunction · 0.85
processRouteDefsFunction · 0.85

Calls 6

SplitBackendFunction · 0.85
createFiltersFunction · 0.85
processPredicatesFunction · 0.85
processTreePredicatesFunction · 0.85
ErrorfMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…