MCPcopy
hub / github.com/cloudfoundry/cli / GetRouteSummaries

Method GetRouteSummaries

actor/v7action/route.go:222–326  ·  view source on GitHub ↗
(routes []resources.Route)

Source from the content-addressed store, hash-verified

220}
221
222func (actor Actor) GetRouteSummaries(routes []resources.Route) ([]RouteSummary, Warnings, error) {
223 var (
224 spaces []resources.Space
225 apps []resources.Application
226 routeBindings []resources.RouteBinding
227 serviceInstances []resources.ServiceInstance
228 )
229
230 warnings, err := railway.Sequentially(
231 func() (ccv3.Warnings, error) {
232 return batcher.RequestByGUID(
233 extract.UniqueList("SpaceGUID", routes),
234 func(guids []string) (ccv3.Warnings, error) {
235 batch, _, warnings, err := actor.CloudControllerClient.GetSpaces(ccv3.Query{
236 Key: ccv3.GUIDFilter,
237 Values: guids,
238 })
239 spaces = append(spaces, batch...)
240 return warnings, err
241 },
242 )
243 },
244 func() (warnings ccv3.Warnings, err error) {
245 var v7Warning Warnings
246 apps, v7Warning, err = actor.GetApplicationsByGUIDs(extract.UniqueList("Destinations.App.GUID", routes))
247 return ccv3.Warnings(v7Warning), err
248 },
249 func() (warnings ccv3.Warnings, err error) {
250 return batcher.RequestByGUID(
251 extract.UniqueList("GUID", routes),
252 func(guids []string) (ccv3.Warnings, error) {
253 batch, included, warnings, err := actor.CloudControllerClient.GetRouteBindings(
254 ccv3.Query{Key: ccv3.Include, Values: []string{"service_instance"}},
255 ccv3.Query{Key: ccv3.RouteGUIDFilter, Values: guids},
256 )
257 routeBindings = append(routeBindings, batch...)
258 serviceInstances = append(serviceInstances, included.ServiceInstances...)
259 return warnings, err
260 },
261 )
262 },
263 )
264
265 if err != nil {
266 return nil, Warnings(warnings), err
267 }
268
269 spaceNamesByGUID := lookuptable.NameFromGUID(spaces)
270 appNamesByGUID := lookuptable.NameFromGUID(apps)
271 serviceInstanceNameByGUID := lookuptable.NameFromGUID(serviceInstances)
272
273 serviceInstanceNameByRouteGUID := make(map[string]string)
274 for _, routeBinding := range routeBindings {
275 serviceInstanceNameByRouteGUID[routeBinding.RouteGUID] = serviceInstanceNameByGUID[routeBinding.ServiceInstanceGUID]
276 }
277
278 var routeSummaries []RouteSummary
279 for _, route := range routes {

Callers

nothing calls this directly

Implementers 1

FakeActorcommand/v7/v7fakes/fake_actor.go

Calls 11

SequentiallyFunction · 0.92
RequestByGUIDFunction · 0.92
UniqueListFunction · 0.92
WarningsTypeAlias · 0.92
NameFromGUIDFunction · 0.92
LessIgnoreCaseFunction · 0.92
getDomainNameFunction · 0.85
WarningsTypeAlias · 0.70
GetSpacesMethod · 0.65
GetRouteBindingsMethod · 0.65

Tested by

no test coverage detected