Skip to content

Commit dcb09fa

Browse files
authored
feat(sqlserverflex): region adjustment (#639)
relates to STACKITCLI-121
1 parent 9f1881e commit dcb09fa

34 files changed

+273
-218
lines changed

go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ require (
3030
github.com/stackitcloud/stackit-sdk-go/services/serviceaccount v0.6.0
3131
github.com/stackitcloud/stackit-sdk-go/services/serviceenablement v0.5.0
3232
github.com/stackitcloud/stackit-sdk-go/services/ske v0.22.0
33-
github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v0.10.0
33+
github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.0.0
3434
github.com/zalando/go-keyring v0.2.6
3535
golang.org/x/mod v0.23.0
3636
golang.org/x/oauth2 v0.26.0

go.sum

+2-2
Original file line numberDiff line numberDiff line change
@@ -161,8 +161,8 @@ github.com/stackitcloud/stackit-sdk-go/services/serviceenablement v0.5.0 h1:QG+r
161161
github.com/stackitcloud/stackit-sdk-go/services/serviceenablement v0.5.0/go.mod h1:16dOVT052cMuHhUJ3NIcPuY7TrpCr9QlxmvvfjLZubA=
162162
github.com/stackitcloud/stackit-sdk-go/services/ske v0.22.0 h1:3KUVls8zXsbT2tOYRSHyp3/l0Kpjl4f3INmQKYTe65Y=
163163
github.com/stackitcloud/stackit-sdk-go/services/ske v0.22.0/go.mod h1:63IvXpBJTIVONAnGPSDo0sRJ+6n6tzO918OLqfYBxto=
164-
github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v0.10.0 h1:STq6VaVUeHLeXzl1r5E4+MK5lcNVtdKjjP7N0XOowY4=
165-
github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v0.10.0/go.mod h1:hdeLDwSCOmGIYtY4DGN15kjL44DQvo/txHXtTEvZidA=
164+
github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.0.0 h1:RYJO0rZea9+sxVfaJDWRo2zgfKNgiUcA5c0nbvZURiU=
165+
github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.0.0/go.mod h1:d2ICXCS2h3IMsZW0OanWkEH2XdLiY/XRKx2TcR940nw=
166166
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
167167
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
168168
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=

internal/cmd/beta/sqlserverflex/database/create/create.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ func parseInput(p *print.Printer, cmd *cobra.Command, inputArgs []string) (*inpu
121121
}
122122

123123
func buildRequest(ctx context.Context, model *inputModel, apiClient *sqlserverflex.APIClient) sqlserverflex.ApiCreateDatabaseRequest {
124-
req := apiClient.CreateDatabase(ctx, model.ProjectId, model.InstanceId)
124+
req := apiClient.CreateDatabase(ctx, model.ProjectId, model.InstanceId, model.Region)
125125
payload := sqlserverflex.CreateDatabasePayload{
126126
Name: &model.DatabaseName,
127127
Options: &sqlserverflex.DatabaseDocumentationCreateDatabaseRequestOptions{

internal/cmd/beta/sqlserverflex/database/create/create_test.go

+10-9
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@ import (
1212
"github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex"
1313
)
1414

15-
var projectIdFlag = globalflags.ProjectIdFlag
16-
1715
type testCtxKey struct{}
1816

1917
var testCtx = context.WithValue(context.Background(), testCtxKey{}, "foo")
@@ -22,6 +20,7 @@ var testProjectId = uuid.NewString()
2220
var testInstanceId = uuid.NewString()
2321
var testDatabaseName = "my-database"
2422
var testOwner = "owner"
23+
var testRegion = "eu01"
2524

2625
func fixtureArgValues(mods ...func(argValues []string)) []string {
2726
argValues := []string{
@@ -35,9 +34,10 @@ func fixtureArgValues(mods ...func(argValues []string)) []string {
3534

3635
func fixtureFlagValues(mods ...func(flagValues map[string]string)) map[string]string {
3736
flagValues := map[string]string{
38-
projectIdFlag: testProjectId,
39-
instanceIdFlag: testInstanceId,
40-
ownerFlag: testOwner,
37+
globalflags.ProjectIdFlag: testProjectId,
38+
globalflags.RegionFlag: testRegion,
39+
instanceIdFlag: testInstanceId,
40+
ownerFlag: testOwner,
4141
}
4242
for _, mod := range mods {
4343
mod(flagValues)
@@ -50,6 +50,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel {
5050
GlobalFlagModel: &globalflags.GlobalFlagModel{
5151
ProjectId: testProjectId,
5252
Verbosity: globalflags.VerbosityDefault,
53+
Region: testRegion,
5354
},
5455
DatabaseName: testDatabaseName,
5556
InstanceId: testInstanceId,
@@ -62,7 +63,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel {
6263
}
6364

6465
func fixtureRequest(mods ...func(request *sqlserverflex.ApiCreateDatabaseRequest)) sqlserverflex.ApiCreateDatabaseRequest {
65-
request := testClient.CreateDatabase(testCtx, testProjectId, testInstanceId)
66+
request := testClient.CreateDatabase(testCtx, testProjectId, testInstanceId, testRegion)
6667
payload := sqlserverflex.CreateDatabasePayload{
6768
Name: &testDatabaseName,
6869
Options: &sqlserverflex.DatabaseDocumentationCreateDatabaseRequestOptions{
@@ -113,23 +114,23 @@ func TestParseInput(t *testing.T) {
113114
description: "project id missing",
114115
argValues: fixtureArgValues(),
115116
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
116-
delete(flagValues, projectIdFlag)
117+
delete(flagValues, globalflags.ProjectIdFlag)
117118
}),
118119
isValid: false,
119120
},
120121
{
121122
description: "project id invalid 1",
122123
argValues: fixtureArgValues(),
123124
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
124-
flagValues[projectIdFlag] = ""
125+
flagValues[globalflags.ProjectIdFlag] = ""
125126
}),
126127
isValid: false,
127128
},
128129
{
129130
description: "project id invalid 2",
130131
argValues: fixtureArgValues(),
131132
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
132-
flagValues[projectIdFlag] = "invalid-uuid"
133+
flagValues[globalflags.ProjectIdFlag] = "invalid-uuid"
133134
}),
134135
isValid: false,
135136
},

internal/cmd/beta/sqlserverflex/database/delete/delete.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,6 @@ func parseInput(p *print.Printer, cmd *cobra.Command, inputArgs []string) (*inpu
116116
}
117117

118118
func buildRequest(ctx context.Context, model *inputModel, apiClient *sqlserverflex.APIClient) sqlserverflex.ApiDeleteDatabaseRequest {
119-
req := apiClient.DeleteDatabase(ctx, model.ProjectId, model.InstanceId, model.DatabaseName)
119+
req := apiClient.DeleteDatabase(ctx, model.ProjectId, model.InstanceId, model.DatabaseName, model.Region)
120120
return req
121121
}

internal/cmd/beta/sqlserverflex/database/delete/delete_test.go

+9-8
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,14 @@ import (
1313
"github.com/google/uuid"
1414
)
1515

16-
var projectIdFlag = globalflags.ProjectIdFlag
17-
1816
type testCtxKey struct{}
1917

2018
var testCtx = context.WithValue(context.Background(), testCtxKey{}, "foo")
2119
var testClient = &sqlserverflex.APIClient{}
2220
var testProjectId = uuid.NewString()
2321
var testInstanceId = uuid.NewString()
2422
var testDatabaseName = "my-database"
23+
var testRegion = "eu01"
2524

2625
func fixtureArgValues(mods ...func(argValues []string)) []string {
2726
argValues := []string{
@@ -35,8 +34,9 @@ func fixtureArgValues(mods ...func(argValues []string)) []string {
3534

3635
func fixtureFlagValues(mods ...func(flagValues map[string]string)) map[string]string {
3736
flagValues := map[string]string{
38-
projectIdFlag: testProjectId,
39-
instanceIdFlag: testInstanceId,
37+
globalflags.ProjectIdFlag: testProjectId,
38+
globalflags.RegionFlag: testRegion,
39+
instanceIdFlag: testInstanceId,
4040
}
4141
for _, mod := range mods {
4242
mod(flagValues)
@@ -48,6 +48,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel {
4848
model := &inputModel{
4949
GlobalFlagModel: &globalflags.GlobalFlagModel{
5050
ProjectId: testProjectId,
51+
Region: testRegion,
5152
Verbosity: globalflags.VerbosityDefault,
5253
},
5354
DatabaseName: testDatabaseName,
@@ -60,7 +61,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel {
6061
}
6162

6263
func fixtureRequest(mods ...func(request *sqlserverflex.ApiDeleteDatabaseRequest)) sqlserverflex.ApiDeleteDatabaseRequest {
63-
request := testClient.DeleteDatabase(testCtx, testProjectId, testInstanceId, testDatabaseName)
64+
request := testClient.DeleteDatabase(testCtx, testProjectId, testInstanceId, testDatabaseName, testRegion)
6465
for _, mod := range mods {
6566
mod(&request)
6667
}
@@ -104,23 +105,23 @@ func TestParseInput(t *testing.T) {
104105
description: "project id missing",
105106
argValues: fixtureArgValues(),
106107
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
107-
delete(flagValues, projectIdFlag)
108+
delete(flagValues, globalflags.ProjectIdFlag)
108109
}),
109110
isValid: false,
110111
},
111112
{
112113
description: "project id invalid 1",
113114
argValues: fixtureArgValues(),
114115
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
115-
flagValues[projectIdFlag] = ""
116+
flagValues[globalflags.ProjectIdFlag] = ""
116117
}),
117118
isValid: false,
118119
},
119120
{
120121
description: "project id invalid 2",
121122
argValues: fixtureArgValues(),
122123
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
123-
flagValues[projectIdFlag] = "invalid-uuid"
124+
flagValues[globalflags.ProjectIdFlag] = "invalid-uuid"
124125
}),
125126
isValid: false,
126127
},

internal/cmd/beta/sqlserverflex/database/describe/describe.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ func parseInput(p *print.Printer, cmd *cobra.Command, inputArgs []string) (*inpu
105105
}
106106

107107
func buildRequest(ctx context.Context, model *inputModel, apiClient *sqlserverflex.APIClient) sqlserverflex.ApiGetDatabaseRequest {
108-
req := apiClient.GetDatabase(ctx, model.ProjectId, model.InstanceId, model.DatabaseName)
108+
req := apiClient.GetDatabase(ctx, model.ProjectId, model.InstanceId, model.DatabaseName, model.Region)
109109
return req
110110
}
111111

internal/cmd/beta/sqlserverflex/database/describe/describe_test.go

+9-8
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,14 @@ import (
1212
"github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex"
1313
)
1414

15-
var projectIdFlag = globalflags.ProjectIdFlag
16-
1715
type testCtxKey struct{}
1816

1917
var testCtx = context.WithValue(context.Background(), testCtxKey{}, "foo")
2018
var testClient = &sqlserverflex.APIClient{}
2119
var testProjectId = uuid.NewString()
2220
var testInstanceId = uuid.NewString()
2321
var testDatabaseName = "my-database"
22+
var testRegion = "eu01"
2423

2524
func fixtureArgValues(mods ...func(argValues []string)) []string {
2625
argValues := []string{
@@ -34,8 +33,9 @@ func fixtureArgValues(mods ...func(argValues []string)) []string {
3433

3534
func fixtureFlagValues(mods ...func(flagValues map[string]string)) map[string]string {
3635
flagValues := map[string]string{
37-
projectIdFlag: testProjectId,
38-
instanceIdFlag: testInstanceId,
36+
globalflags.ProjectIdFlag: testProjectId,
37+
globalflags.RegionFlag: testRegion,
38+
instanceIdFlag: testInstanceId,
3939
}
4040
for _, mod := range mods {
4141
mod(flagValues)
@@ -47,6 +47,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel {
4747
model := &inputModel{
4848
GlobalFlagModel: &globalflags.GlobalFlagModel{
4949
ProjectId: testProjectId,
50+
Region: testRegion,
5051
Verbosity: globalflags.VerbosityDefault,
5152
},
5253
DatabaseName: testDatabaseName,
@@ -59,7 +60,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel {
5960
}
6061

6162
func fixtureRequest(mods ...func(request *sqlserverflex.ApiGetDatabaseRequest)) sqlserverflex.ApiGetDatabaseRequest {
62-
request := testClient.GetDatabase(testCtx, testProjectId, testInstanceId, testDatabaseName)
63+
request := testClient.GetDatabase(testCtx, testProjectId, testInstanceId, testDatabaseName, testRegion)
6364
for _, mod := range mods {
6465
mod(&request)
6566
}
@@ -103,23 +104,23 @@ func TestParseInput(t *testing.T) {
103104
description: "project id missing",
104105
argValues: fixtureArgValues(),
105106
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
106-
delete(flagValues, projectIdFlag)
107+
delete(flagValues, globalflags.ProjectIdFlag)
107108
}),
108109
isValid: false,
109110
},
110111
{
111112
description: "project id invalid 1",
112113
argValues: fixtureArgValues(),
113114
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
114-
flagValues[projectIdFlag] = ""
115+
flagValues[globalflags.ProjectIdFlag] = ""
115116
}),
116117
isValid: false,
117118
},
118119
{
119120
description: "project id invalid 2",
120121
argValues: fixtureArgValues(),
121122
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
122-
flagValues[projectIdFlag] = "invalid-uuid"
123+
flagValues[globalflags.ProjectIdFlag] = "invalid-uuid"
123124
}),
124125
isValid: false,
125126
},

internal/cmd/beta/sqlserverflex/database/list/list.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ func parseInput(p *print.Printer, cmd *cobra.Command) (*inputModel, error) {
132132
}
133133

134134
func buildRequest(ctx context.Context, model *inputModel, apiClient *sqlserverflex.APIClient) sqlserverflex.ApiListDatabasesRequest {
135-
req := apiClient.ListDatabases(ctx, model.ProjectId, model.InstanceId)
135+
req := apiClient.ListDatabases(ctx, model.ProjectId, model.InstanceId, model.Region)
136136
return req
137137
}
138138

internal/cmd/beta/sqlserverflex/database/list/list_test.go

+10-9
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,20 @@ import (
1414
"github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex"
1515
)
1616

17-
var projectIdFlag = globalflags.ProjectIdFlag
18-
1917
type testCtxKey struct{}
2018

2119
var testCtx = context.WithValue(context.Background(), testCtxKey{}, "foo")
2220
var testClient = &sqlserverflex.APIClient{}
2321
var testProjectId = uuid.NewString()
2422
var testInstanceId = uuid.NewString()
23+
var testRegion = "eu01"
2524

2625
func fixtureFlagValues(mods ...func(flagValues map[string]string)) map[string]string {
2726
flagValues := map[string]string{
28-
projectIdFlag: testProjectId,
29-
instanceIdFlag: testInstanceId,
30-
limitFlag: "10",
27+
globalflags.ProjectIdFlag: testProjectId,
28+
globalflags.RegionFlag: testRegion,
29+
instanceIdFlag: testInstanceId,
30+
limitFlag: "10",
3131
}
3232
for _, mod := range mods {
3333
mod(flagValues)
@@ -39,6 +39,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel {
3939
model := &inputModel{
4040
GlobalFlagModel: &globalflags.GlobalFlagModel{
4141
ProjectId: testProjectId,
42+
Region: testRegion,
4243
Verbosity: globalflags.VerbosityDefault,
4344
},
4445
InstanceId: testInstanceId,
@@ -51,7 +52,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel {
5152
}
5253

5354
func fixtureRequest(mods ...func(request *sqlserverflex.ApiListDatabasesRequest)) sqlserverflex.ApiListDatabasesRequest {
54-
request := testClient.ListDatabases(testCtx, testProjectId, testInstanceId)
55+
request := testClient.ListDatabases(testCtx, testProjectId, testInstanceId, testRegion)
5556
for _, mod := range mods {
5657
mod(&request)
5758
}
@@ -79,21 +80,21 @@ func TestParseInput(t *testing.T) {
7980
{
8081
description: "project id missing",
8182
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
82-
delete(flagValues, projectIdFlag)
83+
delete(flagValues, globalflags.ProjectIdFlag)
8384
}),
8485
isValid: false,
8586
},
8687
{
8788
description: "project id invalid 1",
8889
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
89-
flagValues[projectIdFlag] = ""
90+
flagValues[globalflags.ProjectIdFlag] = ""
9091
}),
9192
isValid: false,
9293
},
9394
{
9495
description: "project id invalid 2",
9596
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
96-
flagValues[projectIdFlag] = "invalid-uuid"
97+
flagValues[globalflags.ProjectIdFlag] = "invalid-uuid"
9798
}),
9899
isValid: false,
99100
},

0 commit comments

Comments
 (0)