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 }