Skip to content

Commit 07c1e37

Browse files
refactor(secretsmanager): PR feedback
1 parent c9aee40 commit 07c1e37

8 files changed

Lines changed: 46 additions & 45 deletions

File tree

internal/cmd/secrets-manager/instance/create/create.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ func buildCreateInstanceRequest(ctx context.Context, model *inputModel, apiClien
154154
Name: model.InstanceName,
155155
}
156156

157-
if model.KmsKeyId != nil {
157+
if model.KmsKeyId != nil && model.KmsKeyringId != nil && model.KmsKeyVersion != nil && model.KmsServiceAccountEmail != nil {
158158
payload.KmsKey = &secretsmanager.KmsKeyPayload{
159159
KeyId: *model.KmsKeyId,
160160
KeyRingId: *model.KmsKeyringId,

internal/cmd/secrets-manager/instance/list/list.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,11 +77,11 @@ func NewCmd(params *types.CmdParams) *cobra.Command {
7777
}
7878

7979
// Truncate output
80-
if model.Limit != nil && len((resp.Instances)) > int(*model.Limit) {
81-
(resp.Instances) = resp.Instances[:*model.Limit]
80+
if model.Limit != nil && len(resp.Instances) > int(*model.Limit) {
81+
resp.Instances = resp.Instances[:*model.Limit]
8282
}
8383

84-
return outputResult(params.Printer, model.OutputFormat, (resp.Instances))
84+
return outputResult(params.Printer, model.OutputFormat, resp.Instances)
8585
},
8686
}
8787

internal/cmd/secrets-manager/instance/update/update.go

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -166,26 +166,26 @@ func parseInput(p *print.Printer, cmd *cobra.Command, inputArgs []string) (*inpu
166166
}
167167

168168
func buildUpdateInstanceRequest(ctx context.Context, model *inputModel, apiClient *secretsmanager.APIClient) (secretsmanager.ApiUpdateInstanceRequest, error) {
169-
if model.InstanceName != nil {
170-
req := apiClient.DefaultAPI.UpdateInstance(ctx, model.ProjectId, model.InstanceId)
169+
if model.InstanceName == nil {
170+
return secretsmanager.ApiUpdateInstanceRequest{}, fmt.Errorf("instanceName must not be null")
171+
}
172+
req := apiClient.DefaultAPI.UpdateInstance(ctx, model.ProjectId, model.InstanceId)
171173

172-
payload := secretsmanager.UpdateInstancePayload{
173-
Name: *model.InstanceName,
174-
}
174+
payload := secretsmanager.UpdateInstancePayload{
175+
Name: *model.InstanceName,
176+
}
175177

176-
if model.KmsKeyId != nil && model.KmsKeyringId != nil && model.KmsKeyVersion != nil && model.KmsServiceAccountEmail != nil {
177-
payload.KmsKey = &secretsmanager.KmsKeyPayload{
178-
KeyId: *model.KmsKeyId,
179-
KeyRingId: *model.KmsKeyringId,
180-
KeyVersion: *model.KmsKeyVersion,
181-
ServiceAccountEmail: *model.KmsServiceAccountEmail,
182-
}
178+
if model.KmsKeyId != nil && model.KmsKeyringId != nil && model.KmsKeyVersion != nil && model.KmsServiceAccountEmail != nil {
179+
payload.KmsKey = &secretsmanager.KmsKeyPayload{
180+
KeyId: *model.KmsKeyId,
181+
KeyRingId: *model.KmsKeyringId,
182+
KeyVersion: *model.KmsKeyVersion,
183+
ServiceAccountEmail: *model.KmsServiceAccountEmail,
183184
}
184-
req = req.UpdateInstancePayload(payload)
185-
186-
return req, nil
187185
}
188-
return secretsmanager.ApiUpdateInstanceRequest{}, fmt.Errorf("instanceName must not be null")
186+
req = req.UpdateInstancePayload(payload)
187+
188+
return req, nil
189189
}
190190

191191
func buildUpdateACLsRequest(ctx context.Context, model *inputModel, apiClient *secretsmanager.APIClient) secretsmanager.ApiUpdateACLsRequest {

internal/cmd/secrets-manager/instance/update/update_test.go

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -358,6 +358,7 @@ func TestBuildUpdateInstanceRequest(t *testing.T) {
358358
description string
359359
model *inputModel
360360
expectedRequest secretsmanager.ApiUpdateInstanceRequest
361+
wantErr bool
361362
}{
362363
{
363364
description: "with name only",
@@ -382,11 +383,21 @@ func TestBuildUpdateInstanceRequest(t *testing.T) {
382383
}),
383384
expectedRequest: fixtureUpdateInstanceRequest(),
384385
},
386+
{
387+
description: "nil instance name",
388+
model: fixtureInputModel(func(model *inputModel) {
389+
model.InstanceName = nil
390+
}),
391+
wantErr: true,
392+
},
385393
}
386394

387395
for _, tt := range tests {
388396
t.Run(tt.description, func(t *testing.T) {
389-
request, _ := buildUpdateInstanceRequest(testCtx, tt.model, testClient)
397+
request, err := buildUpdateInstanceRequest(testCtx, tt.model, testClient)
398+
if (err != nil) != tt.wantErr {
399+
t.Fatalf("buildUpdateInstanceRequest() error = %v, wantErr %v", err, tt.wantErr)
400+
}
390401

391402
diff := cmp.Diff(request, tt.expectedRequest,
392403
cmp.AllowUnexported(tt.expectedRequest),

internal/cmd/secrets-manager/user/create/create.go

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import (
1414
"github.com/stackitcloud/stackit-cli/internal/pkg/print"
1515
"github.com/stackitcloud/stackit-cli/internal/pkg/services/secrets-manager/client"
1616
secretsManagerUtils "github.com/stackitcloud/stackit-cli/internal/pkg/services/secrets-manager/utils"
17-
"github.com/stackitcloud/stackit-cli/internal/pkg/utils"
1817

1918
"github.com/spf13/cobra"
2019
secretsmanager "github.com/stackitcloud/stackit-sdk-go/services/secretsmanager/v1api"
@@ -30,8 +29,8 @@ type inputModel struct {
3029
*globalflags.GlobalFlagModel
3130

3231
InstanceId string
33-
Description *string
34-
Write *bool
32+
Description string
33+
Write bool
3534
}
3635

3736
func NewCmd(params *types.CmdParams) *cobra.Command {
@@ -110,8 +109,8 @@ func parseInput(p *print.Printer, cmd *cobra.Command, _ []string) (*inputModel,
110109
model := inputModel{
111110
GlobalFlagModel: globalFlags,
112111
InstanceId: flags.FlagToStringValue(p, cmd, instanceIdFlag),
113-
Description: utils.Ptr(flags.FlagToStringValue(p, cmd, descriptionFlag)),
114-
Write: utils.Ptr(flags.FlagToBoolValue(p, cmd, writeFlag)),
112+
Description: flags.FlagToStringValue(p, cmd, descriptionFlag),
113+
Write: flags.FlagToBoolValue(p, cmd, writeFlag),
115114
}
116115

117116
p.DebugInputModel(model)
@@ -120,17 +119,9 @@ func parseInput(p *print.Printer, cmd *cobra.Command, _ []string) (*inputModel,
120119

121120
func buildRequest(ctx context.Context, model *inputModel, apiClient *secretsmanager.APIClient) secretsmanager.ApiCreateUserRequest {
122121
req := apiClient.DefaultAPI.CreateUser(ctx, model.ProjectId, model.InstanceId)
123-
var description string
124-
var write bool
125-
if model.Description != nil {
126-
description = *model.Description
127-
}
128-
if model.Write != nil {
129-
write = *model.Write
130-
}
131122
req = req.CreateUserPayload(secretsmanager.CreateUserPayload{
132-
Description: description,
133-
Write: write,
123+
Description: model.Description,
124+
Write: model.Write,
134125
})
135126
return req
136127
}

internal/cmd/secrets-manager/user/create/create_test.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import (
77
"github.com/stackitcloud/stackit-cli/internal/pkg/globalflags"
88
"github.com/stackitcloud/stackit-cli/internal/pkg/testparams"
99
"github.com/stackitcloud/stackit-cli/internal/pkg/testutils"
10-
"github.com/stackitcloud/stackit-cli/internal/pkg/utils"
1110

1211
"github.com/google/go-cmp/cmp"
1312
"github.com/google/go-cmp/cmp/cmpopts"
@@ -46,8 +45,8 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel {
4645
Verbosity: globalflags.VerbosityDefault,
4746
},
4847
InstanceId: testInstanceId,
49-
Description: utils.Ptr("sample description"),
50-
Write: utils.Ptr(false),
48+
Description: "sample description",
49+
Write: false,
5150
}
5251
for _, mod := range mods {
5352
mod(model)
@@ -90,7 +89,7 @@ func TestParseInput(t *testing.T) {
9089
}),
9190
isValid: true,
9291
expectedModel: fixtureInputModel(func(model *inputModel) {
93-
model.Description = utils.Ptr("")
92+
model.Description = ""
9493
}),
9594
},
9695
{
@@ -148,7 +147,7 @@ func TestParseInput(t *testing.T) {
148147
}),
149148
isValid: true,
150149
expectedModel: fixtureInputModel(func(model *inputModel) {
151-
model.Write = utils.Ptr(true)
150+
model.Write = true
152151
}),
153152
},
154153
}

internal/cmd/secrets-manager/user/list/list.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,8 @@ func NewCmd(params *types.CmdParams) *cobra.Command {
7979
}
8080

8181
// Truncate output
82-
if model.Limit != nil && len((resp.Users)) > int(*model.Limit) {
83-
(resp.Users) = resp.Users[:*model.Limit]
82+
if model.Limit != nil && len(resp.Users) > int(*model.Limit) {
83+
resp.Users = resp.Users[:*model.Limit]
8484
}
8585

8686
return outputResult(params.Printer, model.OutputFormat, (resp.Users))

internal/pkg/services/secrets-manager/utils/utils_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,12 +74,12 @@ func TestGetInstanceName(t *testing.T) {
7474

7575
for _, tt := range tests {
7676
t.Run(tt.description, func(t *testing.T) {
77-
mockOptions := &apiClientMockOptions{
77+
mockOptions := apiClientMockOptions{
7878
getInstanceFails: tt.getInstanceFails,
7979
getInstanceResp: tt.getInstanceResp,
8080
}
8181

82-
output, err := GetInstanceName(context.Background(), newAPIClient(*mockOptions).DefaultAPI, testProjectId, testInstanceId)
82+
output, err := GetInstanceName(context.Background(), newAPIClient(mockOptions).DefaultAPI, testProjectId, testInstanceId)
8383

8484
if tt.isValid && err != nil {
8585
t.Errorf("failed on valid input")

0 commit comments

Comments
 (0)