Skip to content

Commit e2a2dfd

Browse files
authored
CLOUDP-153329 Update the atlas setup to mimic atlas deployments setup (#3410)
1 parent ad8dc96 commit e2a2dfd

File tree

3 files changed

+48
-19
lines changed

3 files changed

+48
-19
lines changed

internal/cli/setup/confirm_default_setup.go

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,27 @@ import (
1919
"fmt"
2020
"strings"
2121

22+
"github.com/AlecAivazis/survey/v2"
2223
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/telemetry"
2324
)
2425

26+
var errCancel = errors.New("user-aborted. Not creating cluster")
27+
28+
func (opts *Opts) promptSettings() error {
29+
opts.settings = defaultSettings
30+
31+
p := &survey.Select{
32+
Message: "How do you want to set up your Atlas cluster?",
33+
Options: settingOptions,
34+
Default: opts.settings,
35+
Description: func(value string, _ int) string {
36+
return settingsDescription[value]
37+
},
38+
}
39+
40+
return telemetry.TrackAskOne(p, &opts.settings, nil)
41+
}
42+
2543
func (opts *Opts) askConfirmDefaultQuestion(values *clusterSettings) error {
2644
if opts.Confirm {
2745
return nil
@@ -47,6 +65,7 @@ Cluster Name: %s%s
4765
Cloud Provider and Region: %s - %s
4866
Database User Username: %s%s
4967
Allow connections from (IP Address): %s
68+
5069
`,
5170
values.ClusterName,
5271
clusterTier,
@@ -57,13 +76,15 @@ Allow connections from (IP Address): %s
5776
strings.Join(values.IPAddresses, ", "),
5877
)
5978

60-
q := newClusterDefaultConfirm(opts.Tier)
61-
if err := telemetry.TrackAskOne(q, &opts.Confirm); err != nil {
79+
if err := opts.promptSettings(); err != nil {
6280
return err
6381
}
6482

65-
if !opts.Confirm {
66-
return errors.New("user-aborted. Not creating cluster")
83+
if opts.settings == cancelSettings {
84+
return errCancel
6785
}
86+
87+
opts.Confirm = opts.settings == defaultSettings // acts same as --force
88+
6889
return nil
6990
}

internal/cli/setup/prompt.go

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -92,15 +92,3 @@ func newClusterCreateConfirm() survey.Prompt {
9292
Default: true,
9393
}
9494
}
95-
96-
func newClusterDefaultConfirm(tier string) survey.Prompt {
97-
message := "Do you want to set up your Atlas database with default settings?"
98-
if tier != DefaultAtlasTier {
99-
message = "Are you ready to create your Atlas cluster with the above settings?"
100-
}
101-
102-
return &survey.Confirm{
103-
Message: message,
104-
Default: true,
105-
}
106-
}

internal/cli/setup/setup_cmd.go

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,18 @@ const (
5353
defaultRegionGCP = "US_EAST_4"
5454
defaultRegionAzure = "US_EAST_2"
5555
defaultRegionGov = "US_GOV_EAST_1"
56+
defaultSettings = "default"
57+
customSettings = "custom"
58+
cancelSettings = "cancel"
59+
)
60+
61+
var (
62+
settingOptions = []string{defaultSettings, customSettings, cancelSettings}
63+
settingsDescription = map[string]string{
64+
defaultSettings: "With default settings",
65+
customSettings: "With custom settings",
66+
cancelSettings: "Cancel setup",
67+
}
5668
)
5769

5870
var errNeedsProject = errors.New("ensure you select or add a project to the profile")
@@ -127,6 +139,7 @@ type Opts struct {
127139
EnableTerminationProtection bool
128140
flags *pflag.FlagSet
129141
flagSet map[string]struct{}
142+
settings string
130143

131144
// control
132145
skipRegister bool
@@ -439,11 +452,18 @@ func (opts *Opts) setupCluster() error {
439452
return dErr
440453
}
441454

442-
if err := opts.askConfirmDefaultQuestion(values); err != nil || !opts.Confirm {
455+
if err := opts.askConfirmDefaultQuestion(values); err != nil {
456+
if errors.Is(err, errCancel) {
457+
_, _ = fmt.Println(err.Error())
458+
return nil
459+
}
460+
return err
461+
}
462+
463+
if !opts.Confirm {
443464
fmt.Print(setupTemplateIntro)
444465

445-
err = opts.interactiveSetup()
446-
if err != nil {
466+
if err := opts.interactiveSetup(); err != nil {
447467
return err
448468
}
449469
} else {

0 commit comments

Comments
 (0)