github.com/mook-as/cf-cli@v7.0.0-beta.28.0.20200120190804-b91c115fae48+incompatible/actor/v7pushaction/create_push_plans.go (about) 1 package v7pushaction 2 3 import ( 4 "code.cloudfoundry.org/cli/actor/v7action" 5 "code.cloudfoundry.org/cli/util/manifestparser" 6 ) 7 8 // CreatePushPlans returns a set of PushPlan objects based off the inputs 9 // provided. It's assumed that all flag and argument and manifest combinations 10 // have been validated prior to calling this function. 11 func (actor Actor) CreatePushPlans( 12 spaceGUID string, 13 orgGUID string, 14 manifest manifestparser.Manifest, 15 overrides FlagOverrides, 16 ) ([]PushPlan, v7action.Warnings, error) { 17 var pushPlans []PushPlan 18 19 apps, warnings, err := actor.V7Actor.GetApplicationsByNamesAndSpace(manifest.AppNames(), spaceGUID) 20 if err != nil { 21 return nil, warnings, err 22 } 23 nameToApp := actor.generateAppNameToApplicationMapping(apps) 24 25 for _, manifestApplication := range manifest.Applications { 26 plan := PushPlan{ 27 OrgGUID: orgGUID, 28 SpaceGUID: spaceGUID, 29 Application: nameToApp[manifestApplication.Name], 30 BitsPath: manifestApplication.Path, 31 } 32 33 if manifestApplication.Docker != nil { 34 plan.DockerImageCredentials = v7action.DockerImageCredentials{ 35 Path: manifestApplication.Docker.Image, 36 Username: manifestApplication.Docker.Username, 37 Password: overrides.DockerPassword, 38 } 39 } 40 41 // List of PreparePushPlanSequence is defined in NewActor 42 for _, updatePlan := range actor.PreparePushPlanSequence { 43 var err error 44 plan, err = updatePlan(plan, overrides) 45 if err != nil { 46 return nil, warnings, err 47 } 48 } 49 50 pushPlans = append(pushPlans, plan) 51 } 52 53 return pushPlans, warnings, nil 54 } 55 56 func (actor Actor) generateAppNameToApplicationMapping(applications []v7action.Application) map[string]v7action.Application { 57 nameToApp := make(map[string]v7action.Application, len(applications)) 58 for _, app := range applications { 59 nameToApp[app.Name] = app 60 } 61 return nameToApp 62 }