Skip to content

Commit 83ff591

Browse files
chore(mongodbflex): move nil checks in outputResult into pretty print function, change version and flavorId to value type
1 parent 6fa0bcd commit 83ff591

4 files changed

Lines changed: 31 additions & 31 deletions

File tree

internal/cmd/mongodbflex/backup/describe/describe.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -119,10 +119,10 @@ func buildRequest(ctx context.Context, model *inputModel, apiClient *mongodbflex
119119
}
120120

121121
func outputResult(p *print.Printer, outputFormat, restoreStatus string, backup *mongodbflex.Backup) error {
122-
if backup == nil {
123-
return fmt.Errorf("API response is nil")
124-
}
125122
return p.OutputResult(outputFormat, backup, func() error {
123+
if backup == nil {
124+
return fmt.Errorf("API response is nil")
125+
}
126126
table := tables.NewTable()
127127
table.AddRow("ID", utils.PtrString(backup.Id))
128128
table.AddSeparator()

internal/cmd/mongodbflex/instance/create/create.go

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -54,12 +54,12 @@ type inputModel struct {
5454
InstanceName string
5555
ACL []string
5656
BackupSchedule string
57-
FlavorId *string
57+
FlavorId string
5858
CPU *int32
5959
RAM *int32
6060
StorageClass *string
6161
StorageSize *int64
62-
Version *string
62+
Version string
6363
Type *string
6464
}
6565

@@ -107,12 +107,12 @@ func NewCmd(params *types.CmdParams) *cobra.Command {
107107
}
108108

109109
// Fill in version, if needed
110-
if model.Version == nil {
110+
if model.Version == "" {
111111
version, err := mongodbflexUtils.GetLatestMongoDBVersion(ctx, apiClient.DefaultAPI, model.ProjectId, model.Region)
112112
if err != nil {
113113
return fmt.Errorf("get latest MongoDB version: %w", err)
114114
}
115-
model.Version = &version
115+
model.Version = version
116116
}
117117

118118
// Call API
@@ -168,16 +168,16 @@ func parseInput(p *print.Printer, cmd *cobra.Command, _ []string) (*inputModel,
168168

169169
storageSize := flags.FlagWithDefaultToInt64Value(p, cmd, storageSizeFlag)
170170

171-
flavorId := flags.FlagToStringPointer(p, cmd, flavorIdFlag)
171+
flavorId := flags.FlagToStringValue(p, cmd, flavorIdFlag)
172172
cpu := flags.FlagToInt32Pointer(p, cmd, cpuFlag)
173173
ram := flags.FlagToInt32Pointer(p, cmd, ramFlag)
174174

175-
if flavorId == nil && (cpu == nil || ram == nil) {
175+
if flavorId == "" && (cpu == nil || ram == nil) {
176176
return nil, &cliErr.DatabaseInputFlavorError{
177177
Cmd: cmd,
178178
}
179179
}
180-
if flavorId != nil && (cpu != nil || ram != nil) {
180+
if flavorId != "" && (cpu != nil || ram != nil) {
181181
return nil, &cliErr.DatabaseInputFlavorError{
182182
Cmd: cmd,
183183
}
@@ -193,7 +193,7 @@ func parseInput(p *print.Printer, cmd *cobra.Command, _ []string) (*inputModel,
193193
RAM: ram,
194194
StorageClass: utils.Ptr(flags.FlagWithDefaultToStringValue(p, cmd, storageClassFlag)),
195195
StorageSize: &storageSize,
196-
Version: flags.FlagToStringPointer(p, cmd, versionFlag),
196+
Version: flags.FlagToStringValue(p, cmd, versionFlag),
197197
Type: typeFlag.Ptr(),
198198
}
199199

@@ -210,36 +210,37 @@ type MongoDBFlexClient interface {
210210
func buildRequest(ctx context.Context, model *inputModel, apiClient MongoDBFlexClient) (mongodbflex.ApiCreateInstanceRequest, error) {
211211
req := apiClient.CreateInstance(ctx, model.ProjectId, model.Region)
212212

213-
var flavorId *string
213+
var flavorId string
214214
var err error
215215

216216
flavors, err := apiClient.ListFlavors(ctx, model.ProjectId, model.Region).Execute()
217217
if err != nil {
218218
return req, fmt.Errorf("get MongoDB Flex flavors: %w", err)
219219
}
220220

221-
if model.FlavorId == nil {
222-
flavorId, err = mongodbflexUtils.LoadFlavorId(*model.CPU, *model.RAM, &flavors.Flavors)
221+
if model.FlavorId == "" {
222+
foundFlavorId, err := mongodbflexUtils.LoadFlavorId(*model.CPU, *model.RAM, &flavors.Flavors)
223223
if err != nil {
224224
var dsaInvalidPlanError *cliErr.DSAInvalidPlanError
225225
if !errors.As(err, &dsaInvalidPlanError) {
226226
return req, fmt.Errorf("load flavor ID: %w", err)
227227
}
228228
return req, err
229229
}
230+
flavorId = *foundFlavorId
230231
} else {
231-
err := mongodbflexUtils.ValidateFlavorId(*model.FlavorId, flavors.Flavors)
232+
err := mongodbflexUtils.ValidateFlavorId(model.FlavorId, flavors.Flavors)
232233
if err != nil {
233234
return req, err
234235
}
235236
flavorId = model.FlavorId
236237
}
237238

238-
storages, err := apiClient.ListStorages(ctx, model.ProjectId, *flavorId, model.Region).Execute()
239+
storages, err := apiClient.ListStorages(ctx, model.ProjectId, flavorId, model.Region).Execute()
239240
if err != nil {
240241
return req, fmt.Errorf("get MongoDB Flex storages: %w", err)
241242
}
242-
err = mongodbflexUtils.ValidateStorage(model.StorageClass, model.StorageSize, storages, *flavorId)
243+
err = mongodbflexUtils.ValidateStorage(model.StorageClass, model.StorageSize, storages, flavorId)
243244
if err != nil {
244245
return req, err
245246
}
@@ -253,13 +254,13 @@ func buildRequest(ctx context.Context, model *inputModel, apiClient MongoDBFlexC
253254
Name: model.InstanceName,
254255
Acl: mongodbflex.ACL{Items: model.ACL},
255256
BackupSchedule: model.BackupSchedule,
256-
FlavorId: *flavorId,
257+
FlavorId: flavorId,
257258
Replicas: replicas,
258259
Storage: mongodbflex.Storage{
259260
Class: model.StorageClass,
260261
Size: model.StorageSize,
261262
},
262-
Version: *model.Version,
263+
Version: model.Version,
263264
Options: map[string]string{
264265
"type": *model.Type,
265266
},

internal/cmd/mongodbflex/instance/create/create_test.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -80,10 +80,10 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel {
8080
InstanceName: "example-name",
8181
ACL: []string{"0.0.0.0/0"},
8282
BackupSchedule: "0 0/6 * * *",
83-
FlavorId: utils.Ptr(testFlavorId),
83+
FlavorId: testFlavorId,
8484
StorageClass: utils.Ptr("premium-perf4-mongodb"),
8585
StorageSize: utils.Ptr(int64(10)),
86-
Version: utils.Ptr("6.0"),
86+
Version: "6.0",
8787
Type: utils.Ptr("Replica"),
8888
}
8989
for _, mod := range mods {
@@ -156,7 +156,7 @@ func TestParseInput(t *testing.T) {
156156
}),
157157
isValid: true,
158158
expectedModel: fixtureInputModel(func(model *inputModel) {
159-
model.FlavorId = nil
159+
model.FlavorId = ""
160160
model.CPU = utils.Ptr(int32(2))
161161
model.RAM = utils.Ptr(int32(4))
162162
}),
@@ -216,7 +216,7 @@ func TestParseInput(t *testing.T) {
216216
}),
217217
isValid: true,
218218
expectedModel: fixtureInputModel(func(model *inputModel) {
219-
model.Version = nil
219+
model.Version = ""
220220
}),
221221
},
222222
{
@@ -294,7 +294,7 @@ func TestBuildRequest(t *testing.T) {
294294
description: "with CPU and RAM",
295295
model: fixtureInputModel(
296296
func(model *inputModel) {
297-
model.FlavorId = nil
297+
model.FlavorId = ""
298298
model.CPU = utils.Ptr(int32(2))
299299
model.RAM = utils.Ptr(int32(4))
300300
},
@@ -383,7 +383,7 @@ func TestBuildRequest(t *testing.T) {
383383
description: "get flavors fails",
384384
model: fixtureInputModel(
385385
func(model *inputModel) {
386-
model.FlavorId = nil
386+
model.FlavorId = ""
387387
model.CPU = utils.Ptr(int32(2))
388388
model.RAM = utils.Ptr(int32(4))
389389
},
@@ -397,7 +397,7 @@ func TestBuildRequest(t *testing.T) {
397397
description: "flavor id not found",
398398
model: fixtureInputModel(
399399
func(model *inputModel) {
400-
model.FlavorId = nil
400+
model.FlavorId = ""
401401
model.CPU = utils.Ptr(int32(5))
402402
model.RAM = utils.Ptr(int32(9))
403403
},
@@ -424,7 +424,7 @@ func TestBuildRequest(t *testing.T) {
424424
description: "get storages fails",
425425
model: fixtureInputModel(
426426
func(model *inputModel) {
427-
model.FlavorId = nil
427+
model.FlavorId = ""
428428
model.CPU = utils.Ptr(int32(2))
429429
model.RAM = utils.Ptr(int32(4))
430430
},

internal/cmd/mongodbflex/instance/describe/describe.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,11 +92,10 @@ func buildRequest(ctx context.Context, model *inputModel, apiClient *mongodbflex
9292
}
9393

9494
func outputResult(p *print.Printer, outputFormat string, instance *mongodbflex.Instance) error {
95-
if instance == nil {
96-
return fmt.Errorf("instance is nil")
97-
}
98-
9995
return p.OutputResult(outputFormat, instance, func() error {
96+
if instance == nil {
97+
return fmt.Errorf("instance is nil")
98+
}
10099
var instanceType string
101100
if instance.HasReplicas() {
102101
var err error

0 commit comments

Comments
 (0)