processes a route definition for the routing table
(o *Options, cpm map[string]PredicateSpec, def *eskip.Route)
| 530 | |
| 531 | // processes a route definition for the routing table |
| 532 | func 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 |
| 562 | func mapPredicates(cps []PredicateSpec) map[string]PredicateSpec { |
no test coverage detected
searching dependent graphs…