github.com/arunkumar7540/cli@v6.45.0+incompatible/actor/v7pushaction/sequence.go (about) 1 package v7pushaction 2 3 import "code.cloudfoundry.org/cli/api/cloudcontroller/ccv3/constant" 4 5 func ShouldUpdateApplication(plan PushPlan) bool { 6 return plan.ApplicationNeedsUpdate 7 } 8 9 func ShouldUpdateRoutes(plan PushPlan) bool { 10 return !(plan.SkipRouteCreation || plan.NoRouteFlag) 11 } 12 13 func ShouldScaleWebProcess(plan PushPlan) bool { 14 return plan.ScaleWebProcessNeedsUpdate 15 } 16 17 func ShouldUpdateWebProcess(plan PushPlan) bool { 18 return plan.UpdateWebProcessNeedsUpdate 19 } 20 21 func ShouldCreateBitsPackage(plan PushPlan) bool { 22 return plan.DropletPath == "" && !plan.DockerImageCredentialsNeedsUpdate 23 } 24 25 func ShouldCreateDockerPackage(plan PushPlan) bool { 26 return plan.DropletPath == "" && plan.DockerImageCredentialsNeedsUpdate 27 } 28 29 func ShouldCreateDroplet(plan PushPlan) bool { 30 return plan.DropletPath != "" 31 } 32 33 func ShouldStagePackage(plan PushPlan) bool { 34 return !plan.NoStart && plan.DropletPath == "" 35 } 36 37 func ShouldStopApplication(plan PushPlan) bool { 38 return plan.NoStart && plan.Application.State == constant.ApplicationStarted 39 } 40 41 func ShouldSetDroplet(plan PushPlan) bool { 42 return !plan.NoStart || plan.DropletPath != "" 43 } 44 45 func ShouldRestart(plan PushPlan) bool { 46 return !plan.NoStart 47 } 48 49 func (actor Actor) GetUpdateSequence(plan PushPlan) []ChangeApplicationFunc { 50 var updateSequence []ChangeApplicationFunc 51 52 if ShouldUpdateApplication(plan) { 53 updateSequence = append(updateSequence, actor.UpdateApplication) 54 } 55 56 if ShouldUpdateRoutes(plan) { 57 updateSequence = append(updateSequence, actor.UpdateRoutesForApplication) 58 } 59 60 if ShouldScaleWebProcess(plan) { 61 updateSequence = append(updateSequence, actor.ScaleWebProcessForApplication) 62 } 63 64 if ShouldUpdateWebProcess(plan) { 65 updateSequence = append(updateSequence, actor.UpdateWebProcessForApplication) 66 } 67 68 return updateSequence 69 } 70 71 func (actor Actor) GetPrepareApplicationSourceSequence(plan PushPlan) []ChangeApplicationFunc { 72 var prepareSourceSequence []ChangeApplicationFunc 73 switch { 74 case ShouldCreateBitsPackage(plan): 75 prepareSourceSequence = append(prepareSourceSequence, actor.CreateBitsPackageForApplication) 76 case ShouldCreateDockerPackage(plan): 77 prepareSourceSequence = append(prepareSourceSequence, actor.CreateDockerPackageForApplication) 78 case ShouldCreateDroplet(plan): 79 prepareSourceSequence = append(prepareSourceSequence, actor.CreateDropletForApplication) 80 } 81 return prepareSourceSequence 82 } 83 84 func (actor Actor) GetRuntimeSequence(plan PushPlan) []ChangeApplicationFunc { 85 var runtimeSequence []ChangeApplicationFunc 86 87 if ShouldStagePackage(plan) { 88 runtimeSequence = append(runtimeSequence, actor.StagePackageForApplication) 89 } 90 91 if ShouldStopApplication(plan) { 92 runtimeSequence = append(runtimeSequence, actor.StopApplication) 93 } 94 95 if ShouldSetDroplet(plan) { 96 runtimeSequence = append(runtimeSequence, actor.SetDropletForApplication) 97 } 98 99 if ShouldRestart(plan) { 100 runtimeSequence = append(runtimeSequence, actor.RestartApplication) 101 } 102 103 return runtimeSequence 104 }