github.com/cloudfoundry-attic/cli-with-i18n@v6.32.1-0.20171002233121-7401370d3b85+incompatible/actor/v3action/application_summary.go (about) 1 package v3action 2 3 import "net/url" 4 5 // ApplicationSummary represents an application with its processes and droplet. 6 type ApplicationSummary struct { 7 Application 8 ProcessSummaries ProcessSummaries 9 CurrentDroplet Droplet 10 } 11 12 // GetApplicationSummaryByNameAndSpace returns an application with process and 13 // instance stats. 14 func (actor Actor) GetApplicationSummaryByNameAndSpace(appName string, 15 spaceGUID string) (ApplicationSummary, Warnings, error) { 16 app, allWarnings, err := actor.GetApplicationByNameAndSpace(appName, spaceGUID) 17 if err != nil { 18 return ApplicationSummary{}, allWarnings, err 19 } 20 21 processSummaries, processWarnings, err := actor.getProcessSummariesForApp(app.GUID) 22 allWarnings = append(allWarnings, processWarnings...) 23 if err != nil { 24 return ApplicationSummary{}, allWarnings, err 25 } 26 27 var droplet Droplet 28 ccv3Droplets, warnings, err := actor.CloudControllerClient.GetApplicationDroplets( 29 app.GUID, 30 url.Values{"current": []string{"true"}}, 31 ) 32 allWarnings = append(allWarnings, Warnings(warnings)...) 33 if err != nil { 34 return ApplicationSummary{}, allWarnings, err 35 } 36 37 if len(ccv3Droplets) == 1 { 38 droplet.Stack = ccv3Droplets[0].Stack 39 droplet.Image = ccv3Droplets[0].Image 40 for _, ccv3Buildpack := range ccv3Droplets[0].Buildpacks { 41 droplet.Buildpacks = append(droplet.Buildpacks, Buildpack(ccv3Buildpack)) 42 } 43 } 44 45 summary := ApplicationSummary{ 46 Application: app, 47 ProcessSummaries: processSummaries, 48 CurrentDroplet: droplet, 49 } 50 return summary, allWarnings, nil 51 }