github.com/cloudfoundry-attic/cli-with-i18n@v6.32.1-0.20171002233121-7401370d3b85+incompatible/actor/v3action/application_with_process_summary.go (about)

     1  package v3action
     2  
     3  import (
     4  	"net/url"
     5  
     6  	"code.cloudfoundry.org/cli/api/cloudcontroller/ccv3"
     7  )
     8  
     9  type ApplicationWithProcessSummary struct {
    10  	Application
    11  	ProcessSummaries ProcessSummaries
    12  }
    13  
    14  func (actor Actor) GetApplicationsWithProcessesBySpace(spaceGUID string) ([]ApplicationWithProcessSummary, Warnings, error) {
    15  	var allWarnings Warnings
    16  
    17  	apps, warnings, err := actor.CloudControllerClient.GetApplications(url.Values{
    18  		ccv3.SpaceGUIDFilter: []string{spaceGUID},
    19  		ccv3.OrderBy:         []string{ccv3.NameOrder},
    20  	})
    21  	allWarnings = Warnings(warnings)
    22  	if err != nil {
    23  		return nil, allWarnings, err
    24  	}
    25  
    26  	var appSummaries []ApplicationWithProcessSummary
    27  
    28  	for _, app := range apps {
    29  		processSummaries, processWarnings, err := actor.getProcessSummariesForApp(app.GUID)
    30  		allWarnings = append(allWarnings, processWarnings...)
    31  		if err != nil {
    32  			return nil, allWarnings, err
    33  		}
    34  
    35  		appSummaries = append(appSummaries, ApplicationWithProcessSummary{
    36  			Application: Application{
    37  				Name:  app.Name,
    38  				GUID:  app.GUID,
    39  				State: app.State,
    40  				Lifecycle: AppLifecycle{
    41  					Type: AppLifecycleType(app.Lifecycle.Type),
    42  					Data: AppLifecycleData(app.Lifecycle.Data),
    43  				},
    44  			},
    45  			ProcessSummaries: processSummaries,
    46  		})
    47  	}
    48  
    49  	return appSummaries, allWarnings, nil
    50  }