github.com/arunkumar7540/cli@v6.45.0+incompatible/actor/v7pushaction/create_push_plans.go (about) 1 package v7pushaction 2 3 import ( 4 "code.cloudfoundry.org/cli/util/manifestparser" 5 ) 6 7 // CreatePushPlans returns a set of PushPlan objects based off the inputs 8 // provided. It's assumed that all flag and argument and manifest combinations 9 // have been validated prior to calling this function. 10 func (actor Actor) CreatePushPlans(appNameArg string, spaceGUID string, orgGUID string, parser ManifestParser, overrides FlagOverrides) ([]PushPlan, error) { 11 var pushPlans []PushPlan 12 13 eligibleApps, err := actor.getEligibleApplications(parser, appNameArg) 14 if err != nil { 15 return nil, err 16 } 17 18 for _, manifestApplication := range eligibleApps { 19 plan := PushPlan{ 20 OrgGUID: orgGUID, 21 SpaceGUID: spaceGUID, 22 } 23 24 // List of PreparePushPlanSequence is defined in NewActor 25 for _, updatePlan := range actor.PreparePushPlanSequence { 26 var err error 27 plan, err = updatePlan(plan, overrides, manifestApplication) 28 if err != nil { 29 return nil, err 30 } 31 } 32 33 pushPlans = append(pushPlans, plan) 34 } 35 36 return pushPlans, nil 37 } 38 39 func (Actor) getEligibleApplications(parser ManifestParser, appNameArg string) ([]manifestparser.Application, error) { 40 if parser.ContainsManifest() { 41 return parser.Apps(appNameArg) 42 } 43 manifestApp := manifestparser.Application{} 44 manifestApp.Name = appNameArg 45 return []manifestparser.Application{manifestApp}, nil 46 }