MCPcopy Create free account
hub / github.com/cloudfoundry/cli / FindAndBindRoute

Method FindAndBindRoute

cf/actors/routes.go:191–232  ·  view source on GitHub ↗
(routeName string, app models.Application, appParamsFromContext models.AppParams)

Source from the content-addressed store, hash-verified

189}
190
191func (routeActor routeActor) FindAndBindRoute(routeName string, app models.Application, appParamsFromContext models.AppParams) error {
192 routeWithoutPath, path := routeActor.FindPath(routeName)
193
194 routeWithoutPathAndPort, port, err := routeActor.FindPort(routeWithoutPath)
195 if err != nil {
196 return err
197 }
198
199 if len(appParamsFromContext.Domains) == 1 {
200 routeWithoutPathAndPort, err = routeActor.replaceDomain(routeWithoutPathAndPort, appParamsFromContext.Domains[0])
201 if err != nil {
202 return err
203 }
204 }
205
206 hostname, domain, err := routeActor.FindDomain(routeWithoutPathAndPort)
207 if err != nil {
208 return err
209 }
210
211 if appParamsFromContext.RoutePath != nil && *appParamsFromContext.RoutePath != "" && domain.RouterGroupType != tcp {
212 path = *appParamsFromContext.RoutePath
213 }
214
215 if appParamsFromContext.UseRandomRoute && domain.RouterGroupType != tcp {
216 hostname = randomword.NewGenerator().Babble()
217 }
218
219 replaceHostname(domain.RouterGroupType, appParamsFromContext.Hosts, &hostname)
220
221 err = validateRoute(domain.Name, domain.RouterGroupType, port, path)
222 if err != nil {
223 return err
224 }
225
226 route, err := routeActor.FindOrCreateRoute(hostname, domain, path, port, appParamsFromContext.UseRandomRoute)
227 if err != nil {
228 return err
229 }
230
231 return routeActor.BindRoute(app, route)
232}
233
234func validateRoute(routeName string, domainType string, port int, path string) error {
235 if domainType == tcp && path != "" {

Callers

nothing calls this directly

Calls 10

FindPathMethod · 0.95
FindPortMethod · 0.95
replaceDomainMethod · 0.95
FindDomainMethod · 0.95
FindOrCreateRouteMethod · 0.95
BindRouteMethod · 0.95
NewGeneratorFunction · 0.92
replaceHostnameFunction · 0.85
validateRouteFunction · 0.85
BabbleMethod · 0.65

Tested by

no test coverage detected