Skip to content

Commit 288cd95

Browse files
committed
Rename to backupPreviousVersion and fix comments
1 parent 43e41b9 commit 288cd95

File tree

5 files changed

+83
-44
lines changed

5 files changed

+83
-44
lines changed

commands/blue_green_deploy_command.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ func (c *BlueGreenDeployCommand) GetPluginCommand() plugin.Command {
6464
util.GetShortOption(uploadTimeoutOpt): "Upload app timeout in seconds",
6565
util.GetShortOption(taskExecutionTimeoutOpt): "Task execution timeout in seconds",
6666
util.CombineFullAndShortParameters(startTimeoutOpt, timeoutOpt): "Start app timeout in seconds",
67-
util.GetShortOption(shouldBackupExistingApps): "Should backup existing applications (only for blue-green)",
67+
util.GetShortOption(shouldBackupPreviousVersionOpt): "(EXPERIMENTAL) Backup previous version of applications, use new cli command \"rollback-mta\" to rollback to the previous version",
6868
},
6969
},
7070
}

commands/deploy_command.go

Lines changed: 26 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -29,30 +29,30 @@ import (
2929
)
3030

3131
const (
32-
extDescriptorsOpt = "e"
33-
timeoutOpt = "t"
34-
versionRuleOpt = "version-rule"
35-
noStartOpt = "no-start"
36-
deleteServiceKeysOpt = "delete-service-keys"
37-
keepFilesOpt = "keep-files"
38-
skipOwnershipValidationOpt = "skip-ownership-validation"
39-
moduleOpt = "m"
40-
resourceOpt = "r"
41-
allModulesOpt = "all-modules"
42-
allResourcesOpt = "all-resources"
43-
strategyOpt = "strategy"
44-
skipTestingPhase = "skip-testing-phase"
45-
skipIdleStart = "skip-idle-start"
46-
startTimeoutOpt = "apps-start-timeout"
47-
stageTimeoutOpt = "apps-stage-timeout"
48-
uploadTimeoutOpt = "apps-upload-timeout"
49-
taskExecutionTimeoutOpt = "apps-task-execution-timeout"
50-
applyNamespaceAppNamesOpt = "apply-namespace-app-names"
51-
applyNamespaceServiceNamesOpt = "apply-namespace-service-names"
52-
applyNamespaceAppRoutesOpt = "apply-namespace-app-routes"
53-
applyNamespaceAsSuffix = "apply-namespace-as-suffix"
54-
maxNamespaceSize = 36
55-
shouldBackupExistingApps = "backup-existing-apps"
32+
extDescriptorsOpt = "e"
33+
timeoutOpt = "t"
34+
versionRuleOpt = "version-rule"
35+
noStartOpt = "no-start"
36+
deleteServiceKeysOpt = "delete-service-keys"
37+
keepFilesOpt = "keep-files"
38+
skipOwnershipValidationOpt = "skip-ownership-validation"
39+
moduleOpt = "m"
40+
resourceOpt = "r"
41+
allModulesOpt = "all-modules"
42+
allResourcesOpt = "all-resources"
43+
strategyOpt = "strategy"
44+
skipTestingPhase = "skip-testing-phase"
45+
skipIdleStart = "skip-idle-start"
46+
startTimeoutOpt = "apps-start-timeout"
47+
stageTimeoutOpt = "apps-stage-timeout"
48+
uploadTimeoutOpt = "apps-upload-timeout"
49+
taskExecutionTimeoutOpt = "apps-task-execution-timeout"
50+
applyNamespaceAppNamesOpt = "apply-namespace-app-names"
51+
applyNamespaceServiceNamesOpt = "apply-namespace-service-names"
52+
applyNamespaceAppRoutesOpt = "apply-namespace-app-routes"
53+
applyNamespaceAsSuffix = "apply-namespace-as-suffix"
54+
maxNamespaceSize = 36
55+
shouldBackupPreviousVersionOpt = "backup-previous-version"
5656
)
5757

5858
type listFlag struct {
@@ -146,7 +146,7 @@ func (c *DeployCommand) GetPluginCommand() plugin.Command {
146146
util.GetShortOption(uploadTimeoutOpt): "Upload app timeout in seconds",
147147
util.GetShortOption(taskExecutionTimeoutOpt): "Task execution timeout in seconds",
148148
util.CombineFullAndShortParameters(startTimeoutOpt, timeoutOpt): "Start app timeout in seconds",
149-
util.GetShortOption(shouldBackupExistingApps): "Should backup existing applications (only for blue-green)",
149+
util.GetShortOption(shouldBackupPreviousVersionOpt): "(STRATEGY: BLUE-GREEN, (EXPERIMENTAL) INCREMENTAL-BLUE-GREEN) Backup previous version of applications, use new cli command \"rollback-mta\" to rollback to the previous version",
150150
},
151151
},
152152
}
@@ -172,7 +172,6 @@ func deployProcessParametersSetter() ProcessParametersSetter {
172172
processBuilder.Parameter("appsStageTimeout", GetStringOpt(stageTimeoutOpt, flags))
173173
processBuilder.Parameter("appsUploadTimeout", GetStringOpt(uploadTimeoutOpt, flags))
174174
processBuilder.Parameter("appsTaskExecutionTimeout", GetStringOpt(taskExecutionTimeoutOpt, flags))
175-
processBuilder.Parameter("shouldBackupExistingApps", strconv.FormatBool(GetBoolOpt(shouldBackupExistingApps, flags)))
176175

177176
var lastSetValue string = ""
178177
for i := 0; i < len(os.Args); i++ {
@@ -226,7 +225,7 @@ func (c *DeployCommand) defineCommandOptions(flags *flag.FlagSet) {
226225
flags.String(stageTimeoutOpt, "", "")
227226
flags.String(uploadTimeoutOpt, "", "")
228227
flags.String(taskExecutionTimeoutOpt, "", "")
229-
flags.Bool(shouldBackupExistingApps, false, "")
228+
flags.Bool(shouldBackupPreviousVersionOpt, false, "")
230229
}
231230

232231
func (c *DeployCommand) executeInternal(positionalArgs []string, dsHost string, flags *flag.FlagSet, cfTarget util.CloudFoundryTarget) ExecutionStatus {

commands/deployment_strategy.go

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,10 @@ func (d *DeployCommandDeploymentStrategy) CreateProcessBuilder() *util.ProcessBu
2020
}
2121

2222
type BlueGreenDeployCommandDeploymentStrategy struct {
23-
noConfirm bool
24-
skipIdleStart bool
25-
incrementalDeploy bool
23+
noConfirm bool
24+
skipIdleStart bool
25+
incrementalDeploy bool
26+
shouldBackupPreviousVersion bool
2627
}
2728

2829
func (b *BlueGreenDeployCommandDeploymentStrategy) CreateProcessBuilder() *util.ProcessBuilder {
@@ -32,21 +33,22 @@ func (b *BlueGreenDeployCommandDeploymentStrategy) CreateProcessBuilder() *util.
3233
processBuilder.Parameter("skipIdleStart", strconv.FormatBool(b.skipIdleStart))
3334
processBuilder.Parameter("keepOriginalAppNamesAfterDeploy", strconv.FormatBool(true))
3435
processBuilder.Parameter("shouldApplyIncrementalInstancesUpdate", strconv.FormatBool(b.incrementalDeploy))
36+
processBuilder.Parameter("shouldBackupPreviousVersion", strconv.FormatBool(b.shouldBackupPreviousVersion))
3537
return processBuilder
3638
}
3739

3840
func NewDeploymentStrategy(flags *flag.FlagSet, typeProvider ProcessTypeProvider) DeploymentStrategy {
3941
if typeProvider.GetProcessType() == (blueGreenDeployCommandProcessTypeProvider{}).GetProcessType() {
40-
return &BlueGreenDeployCommandDeploymentStrategy{GetBoolOpt(noConfirmOpt, flags), GetBoolOpt(skipIdleStart, flags), isIncrementalBlueGreen(flags)}
42+
return &BlueGreenDeployCommandDeploymentStrategy{GetBoolOpt(noConfirmOpt, flags), GetBoolOpt(skipIdleStart, flags), isIncrementalBlueGreen(flags), GetBoolOpt(shouldBackupPreviousVersionOpt, flags)}
4143
}
4244
strategy := GetStringOpt(strategyOpt, flags)
4345
if strategy == "default" {
4446
return &DeployCommandDeploymentStrategy{}
4547
}
4648
if GetBoolOpt(skipIdleStart, flags) {
47-
return &BlueGreenDeployCommandDeploymentStrategy{true, true, isIncrementalBlueGreen(flags)}
49+
return &BlueGreenDeployCommandDeploymentStrategy{true, true, isIncrementalBlueGreen(flags), GetBoolOpt(shouldBackupPreviousVersionOpt, flags)}
4850
}
49-
return &BlueGreenDeployCommandDeploymentStrategy{GetBoolOpt(skipTestingPhase, flags), false, isIncrementalBlueGreen(flags)}
51+
return &BlueGreenDeployCommandDeploymentStrategy{GetBoolOpt(skipTestingPhase, flags), false, isIncrementalBlueGreen(flags), GetBoolOpt(shouldBackupPreviousVersionOpt, flags)}
5052
}
5153

5254
func isIncrementalBlueGreen(flags *flag.FlagSet) bool {

commands/deployment_strategy_test.go

Lines changed: 46 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,23 +15,25 @@ var _ = Describe("Deployment Strategy", func() {
1515
const noConfirmOpt = "noConfirm"
1616
const keepOriginalNamesAfterDeploy = "keepOriginalAppNamesAfterDeploy"
1717
const skipIdleStart = "skipIdleStart"
18+
const shouldBackupPreviousVersion = "shouldBackupPreviousVersion"
1819

1920
var deployProcessTypeProvider = &fakes.FakeDeployCommandProcessTypeProvider{}
2021
var bgDeployProcessTypeProvider = &fakes.FakeBlueGreenCommandProcessTypeProvider{}
2122

22-
var createFlags = func(noConfirm bool, skipIdleStart bool, strategy string) *flag.FlagSet {
23+
var createFlags = func(noConfirm bool, skipIdleStart bool, strategy string, backupPreviousVersion bool) *flag.FlagSet {
2324
flags := flag.NewFlagSet("", flag.ContinueOnError)
2425
flags.SetOutput(io.Discard)
2526

2627
flags.String("strategy", strategy, "")
2728
flags.Bool("no-confirm", noConfirm, "")
2829
flags.Bool("skip-testing-phase", true, "")
2930
flags.Bool("skip-idle-start", skipIdleStart, "")
31+
flags.Bool("backup-previous-version", backupPreviousVersion, "")
3032
return flags
3133
}
3234

3335
var testInputAndOperationProcessTypesMatch = func(provider commands.ProcessTypeProvider) {
34-
flags := createFlags(false, false, "default")
36+
flags := createFlags(false, false, "default", false)
3537
processBuilder := commands.NewDeploymentStrategy(flags, provider).CreateProcessBuilder()
3638
operation := processBuilder.Build()
3739
Expect(operation.ProcessType).To(Equal(provider.GetProcessType()))
@@ -45,7 +47,7 @@ var _ = Describe("Deployment Strategy", func() {
4547

4648
Context("with a blue-green deploy command and --no-confirm flag", func() {
4749
It("should build a blue-green deploy operation with the noConfirm parameter set to true", func() {
48-
flags := createFlags(true, false, "default")
50+
flags := createFlags(true, false, "default", false)
4951

5052
processBuilder := commands.NewDeploymentStrategy(flags, bgDeployProcessTypeProvider).CreateProcessBuilder()
5153
operation := processBuilder.Build()
@@ -56,7 +58,7 @@ var _ = Describe("Deployment Strategy", func() {
5658

5759
Context("with a blue-green deploy command and --skip-idle-start flag", func() {
5860
It("should build a blue-green deploy operation with the skipIdleStart parameter set to true", func() {
59-
flags := createFlags(false, true, "default")
61+
flags := createFlags(false, true, "default", false)
6062

6163
processBuilder := commands.NewDeploymentStrategy(flags, bgDeployProcessTypeProvider).CreateProcessBuilder()
6264
operation := processBuilder.Build()
@@ -73,7 +75,7 @@ var _ = Describe("Deployment Strategy", func() {
7375

7476
Context("with a deploy command with strategy flag set to blue-green", func() {
7577
It("should build a blue-green deploy operation", func() {
76-
flags := createFlags(false, false, "blue-green")
78+
flags := createFlags(false, false, "blue-green", false)
7779

7880
processBuilder := commands.NewDeploymentStrategy(flags, deployProcessTypeProvider).CreateProcessBuilder()
7981
operation := processBuilder.Build()
@@ -85,7 +87,7 @@ var _ = Describe("Deployment Strategy", func() {
8587

8688
Context("with a deploy command with strategy flag set to blue-green and --no-confirm flag present", func() {
8789
It("should build a blue-green deploy operation with the noConfirm parameter set to true", func() {
88-
flags := createFlags(true, false, "blue-green")
90+
flags := createFlags(true, false, "blue-green", false)
8991

9092
processBuilder := commands.NewDeploymentStrategy(flags, deployProcessTypeProvider).CreateProcessBuilder()
9193
operation := processBuilder.Build()
@@ -98,7 +100,7 @@ var _ = Describe("Deployment Strategy", func() {
98100

99101
Context("with a deploy command with strategy flag set to blue-green and skip-idl-start set to true", func() {
100102
It("should build a blue-green deploy operation", func() {
101-
flags := createFlags(false, true, "blue-green")
103+
flags := createFlags(false, true, "blue-green", false)
102104

103105
processBuilder := commands.NewDeploymentStrategy(flags, deployProcessTypeProvider).CreateProcessBuilder()
104106
operation := processBuilder.Build()
@@ -108,4 +110,41 @@ var _ = Describe("Deployment Strategy", func() {
108110
Expect(operation.Parameters[skipIdleStart]).To(Equal(strconv.FormatBool(true)))
109111
})
110112
})
113+
114+
Context("with a deploy command with strategy flag set to blue-green and backup-previous-version set to true", func() {
115+
It("should build a blue-green deploy operation with set backup-previous-version flag", func() {
116+
flags := createFlags(true, false, "blue-green", true)
117+
118+
processBuilder := commands.NewDeploymentStrategy(flags, deployProcessTypeProvider).CreateProcessBuilder()
119+
operation := processBuilder.Build()
120+
121+
Expect(operation.ProcessType).To(Equal(bgDeployProcessTypeProvider.GetProcessType()))
122+
Expect(operation.Parameters[shouldBackupPreviousVersion]).To(Equal(strconv.FormatBool(true)))
123+
})
124+
})
125+
126+
Context("with a deploy command with strategy flag set to incremental-blue-green and backup-previous-version set to true", func() {
127+
It("should build a blue-green deploy operation with set incremental-blue-green to true and backup-previous-version to true", func() {
128+
flags := createFlags(true, false, "incremental-blue-green", true)
129+
130+
processBuilder := commands.NewDeploymentStrategy(flags, deployProcessTypeProvider).CreateProcessBuilder()
131+
operation := processBuilder.Build()
132+
133+
Expect(operation.ProcessType).To(Equal(bgDeployProcessTypeProvider.GetProcessType()))
134+
Expect(operation.Parameters[shouldBackupPreviousVersion]).To(Equal(strconv.FormatBool(true)))
135+
Expect(operation.Parameters["shouldApplyIncrementalInstancesUpdate"]).To(Equal(strconv.FormatBool(true)))
136+
})
137+
})
138+
139+
Context("with a deploy command with default strategy flag and backup-previous-version flag", func() {
140+
It("should build a deploy operation without backup-previous-version flag", func() {
141+
flags := createFlags(false, false, "default", true)
142+
143+
processBuilder := commands.NewDeploymentStrategy(flags, deployProcessTypeProvider).CreateProcessBuilder()
144+
operation := processBuilder.Build()
145+
146+
Expect(operation.ProcessType).To(Equal(deployProcessTypeProvider.GetProcessType()))
147+
Expect(operation.Parameters).NotTo(HaveKey(shouldBackupPreviousVersion))
148+
})
149+
})
111150
})

commands/rollback_mta_command.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,16 +33,15 @@ func NewRollbackMtaCommand() *RollbackMtaCommand {
3333
func (c *RollbackMtaCommand) GetPluginCommand() plugin.Command {
3434
return plugin.Command{
3535
Name: "rollback-mta",
36-
HelpText: "Rollback of a multi-target app",
36+
HelpText: "Rollback of a multi-target app works only if [--backup-previous-version] flag was used during blue-green deployment and backup applications exists in the space",
3737
UsageDetails: plugin.Usage{
3838
Usage: `Rollback of a multi-target app
39-
cf rollback-mta MTA_ID [-t TIMEOUT] [--version-rule VERSION_RULE] [-f] [--retries RETRIES] [--namespace NAMESPACE] [--do-not-fail-on-missing-permissions] [--abort-on-error] [--apps-start-timeout TIMEOUT] [--apps-stage-timeout TIMEOUT] [--apps-upload-timeout TIMEOUT] [--apps-task-execution-timeout TIMEOUT]
39+
cf rollback-mta MTA_ID [-t TIMEOUT] [-f] [--retries RETRIES] [--namespace NAMESPACE] [--do-not-fail-on-missing-permissions] [--abort-on-error] [--apps-start-timeout TIMEOUT] [--apps-stage-timeout TIMEOUT] [--apps-upload-timeout TIMEOUT] [--apps-task-execution-timeout TIMEOUT]
4040
4141
Perform action on an active deploy operation
4242
cf rollback-mta -i OPERATION_ID -a ACTION [-u URL]`,
4343
Options: map[string]string{
4444
deployServiceURLOpt: "Deploy service URL, by default 'deploy-service.<system-domain>'",
45-
versionRuleOpt: "Version rule (HIGHER, SAME_HIGHER, ALL)",
4645
operationIDOpt: "Active deploy operation ID",
4746
actionOpt: "Action to perform on active deploy operation (abort, retry, resume, monitor)",
4847
forceOpt: "Force deploy without confirmation for aborting conflicting processes",

0 commit comments

Comments
 (0)