github.com/arunkumar7540/cli@v6.45.0+incompatible/actor/v7pushaction/update_application_settings.go (about)

     1  package v7pushaction
     2  
     3  import (
     4  	"code.cloudfoundry.org/cli/actor/v7action"
     5  
     6  	log "github.com/sirupsen/logrus"
     7  )
     8  
     9  // UpdateApplicationSettings syncs the Application state and GUID with the API.
    10  func (actor Actor) UpdateApplicationSettings(pushPlans []PushPlan) ([]PushPlan, Warnings, error) {
    11  	appNames := actor.getAppNames(pushPlans)
    12  	applications, getWarnings, err := actor.V7Actor.GetApplicationsByNamesAndSpace(appNames, pushPlans[0].SpaceGUID)
    13  	warnings := Warnings(getWarnings)
    14  	if err != nil {
    15  		log.Errorln("Looking up applications:", err)
    16  		return nil, warnings, err
    17  	}
    18  
    19  	nameToApp := actor.generateAppNameToApplicationMapping(applications)
    20  
    21  	var updatedPushPlans []PushPlan
    22  	for _, pushPlan := range pushPlans {
    23  		app := nameToApp[pushPlan.Application.Name]
    24  		pushPlan.Application.GUID = app.GUID
    25  		pushPlan.Application.State = app.State
    26  
    27  		updatedPushPlans = append(updatedPushPlans, pushPlan)
    28  	}
    29  
    30  	return updatedPushPlans, warnings, err
    31  }
    32  
    33  func (Actor) getAppNames(pushPlans []PushPlan) []string {
    34  	var appNames []string
    35  	for _, pushPlan := range pushPlans {
    36  		appNames = append(appNames, pushPlan.Application.Name)
    37  	}
    38  	return appNames
    39  }
    40  
    41  func (Actor) generateAppNameToApplicationMapping(applications []v7action.Application) map[string]v7action.Application {
    42  	nameToApp := map[string]v7action.Application{}
    43  	for _, currApp := range applications {
    44  		nameToApp[currApp.Name] = currApp
    45  	}
    46  	return nameToApp
    47  }