github.com/liamawhite/cli-with-i18n@v6.32.1-0.20171122084555-dede0a5c3448+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  }