Skip to content

Commit 1e56d56

Browse files
feat(sqlserverflex): migrate to v3 API (#1492)
1 parent 95a9977 commit 1e56d56

39 files changed

Lines changed: 637 additions & 615 deletions

docs/stackit_beta_sqlserverflex_instance_create.md

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,29 +13,26 @@ stackit beta sqlserverflex instance create [flags]
1313
### Examples
1414

1515
```
16-
Create a SQLServer Flex instance with name "my-instance" and specify flavor by CPU and RAM. Other parameters are set to default values
17-
$ stackit beta sqlserverflex instance create --name my-instance --cpu 1 --ram 4
18-
1916
Create a SQLServer Flex instance with name "my-instance" and specify flavor by ID. Other parameters are set to default values.
2017
The flavor ID can be retrieved by running "$ stackit beta sqlserverflex options --flavors"
21-
$ stackit beta sqlserverflex instance create --name my-instance --flavor-id xxx
18+
$ stackit beta sqlserverflex instance create --name my-instance --flavor-id xxx --backup-schedule "0 1-3 * * *" --retention-days 30 --storage-class premium-perf2-stackit --storage-size 10 --version 2022
2219
2320
Create a SQLServer Flex instance with name "my-instance", specify flavor by CPU and RAM, set storage size to 20 GB, and restrict access to a specific range of IP addresses. Other parameters are set to default values
24-
$ stackit beta sqlserverflex instance create --name my-instance --cpu 1 --ram 4 --storage-size 20 --acl 1.2.3.0/24
21+
$ stackit beta sqlserverflex instance create --name my-instance --cpu 1 --ram 4 --storage-size 20 --backup-schedule "0 1-3 * * *" --retention-days 30 --storage-class premium-perf2-stackit --storage-size 10 --version 2022 --acl 1.2.3.0/24
2522
```
2623

2724
### Options
2825

2926
```
3027
--acl strings The access control list (ACL). Must contain at least one valid subnet, for instance '0.0.0.0/0' for open access (discouraged), '1.2.3.0/24 for a public IP range of an organization, '1.2.3.4/32' for a single IP range, etc. (default [])
3128
--backup-schedule string Backup schedule
32-
--cpu int32 Number of CPUs
29+
--cpu int Number of CPUs
3330
--edition string Edition of the SQLServer instance
3431
--flavor-id string ID of the flavor
3532
-h, --help Help for "stackit beta sqlserverflex instance create"
3633
-n, --name string Instance name
37-
--ram int32 Amount of RAM (in GB)
38-
--retention-days int The days for how long the backup files should be stored before being cleaned up
34+
--ram int Amount of RAM (in GB)
35+
--retention-days int32 The days for how long the backup files should be stored before being cleaned up
3936
--storage-class string Storage class
4037
--storage-size int Storage size (in GB)
4138
--version string SQLServer version

docs/stackit_beta_sqlserverflex_instance_update.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,11 @@ stackit beta sqlserverflex instance update INSTANCE_ID [flags]
2525
```
2626
--acl strings Lists of IP networks in CIDR notation which are allowed to access this instance (default [])
2727
--backup-schedule string Backup schedule
28-
--cpu int32 Number of CPUs
28+
--cpu int Number of CPUs
2929
--flavor-id string ID of the flavor
3030
-h, --help Help for "stackit beta sqlserverflex instance update"
3131
-n, --name string Instance name
32-
--ram int32 Amount of RAM (in GB)
32+
--ram int Amount of RAM (in GB)
3333
--version string Version
3434
```
3535

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ require (
3636
github.com/stackitcloud/stackit-sdk-go/services/serviceaccount v0.12.0
3737
github.com/stackitcloud/stackit-sdk-go/services/serviceenablement v1.7.0
3838
github.com/stackitcloud/stackit-sdk-go/services/ske v1.11.0
39-
github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.11.0
39+
github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.16.0
4040
github.com/stackitcloud/stackit-sdk-go/services/vpn v0.14.0
4141
github.com/zalando/go-keyring v0.2.8
4242
golang.org/x/mod v0.37.0

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -650,8 +650,8 @@ github.com/stackitcloud/stackit-sdk-go/services/sfs v0.9.0 h1:JWAFnskRbNKT8x62pZ
650650
github.com/stackitcloud/stackit-sdk-go/services/sfs v0.9.0/go.mod h1:jMlBoXqrPNX5nXbo6oT7exalqilw1jiLPoIp4Cn0CdI=
651651
github.com/stackitcloud/stackit-sdk-go/services/ske v1.11.0 h1:QoKyQPe8FqDqJLNgE5uRlZ/y1c1GUxjV1DDLu5QEBD8=
652652
github.com/stackitcloud/stackit-sdk-go/services/ske v1.11.0/go.mod h1:KhVYCR58wETqdI7Quwhe3OR3BhB2T/b7DzaMsfDnr8g=
653-
github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.11.0 h1:PwjQeupEnXxhu+uWCUzO/hUfL4yqNblOcZbP2jvaQtU=
654-
github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.11.0/go.mod h1:AiUoMAqQcOlMgDtkVJlqI7P/VGD5xjN3dYjERGnwN/M=
653+
github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.16.0 h1:A6zN5JUz5DOTigTxAyAC+4p5VpJzaYDftx2yIH0mgn8=
654+
github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.16.0/go.mod h1:AiUoMAqQcOlMgDtkVJlqI7P/VGD5xjN3dYjERGnwN/M=
655655
github.com/stackitcloud/stackit-sdk-go/services/vpn v0.14.0 h1:LMgbzhPunuelsIsfyEj/5O/aYfNcg/eGHsnZ7AZOhYg=
656656
github.com/stackitcloud/stackit-sdk-go/services/vpn v0.14.0/go.mod h1:toIjQk1dhxdUFVyCWJJja0w/0nFpDid8MWX0ukQfvfo=
657657
github.com/stbenjam/no-sprintf-host-port v0.3.1 h1:AyX7+dxI4IdLBPtDbsGAyqiTSLpCP9hWRrXQDU4Cm/g=

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

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import (
66

77
"github.com/stackitcloud/stackit-cli/internal/pkg/types"
88

9-
sqlserverflex "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex/v2api"
9+
sqlserverflex "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex/v3api"
1010

1111
"github.com/stackitcloud/stackit-cli/internal/pkg/args"
1212
"github.com/stackitcloud/stackit-cli/internal/pkg/errors"
@@ -108,12 +108,10 @@ func parseInput(p *print.Printer, cmd *cobra.Command, inputArgs []string) (*inpu
108108
}
109109

110110
func buildRequest(ctx context.Context, model *inputModel, apiClient *sqlserverflex.APIClient) sqlserverflex.ApiCreateDatabaseRequest {
111-
req := apiClient.DefaultAPI.CreateDatabase(ctx, model.ProjectId, model.InstanceId, model.Region)
111+
req := apiClient.DefaultAPI.CreateDatabase(ctx, model.ProjectId, model.Region, model.InstanceId)
112112
payload := sqlserverflex.CreateDatabasePayload{
113-
Name: model.DatabaseName,
114-
Options: sqlserverflex.DatabaseDocumentationCreateDatabaseRequestOptions{
115-
Owner: model.Owner,
116-
},
113+
Name: model.DatabaseName,
114+
Owner: model.Owner,
117115
}
118116
req = req.CreateDatabasePayload(payload)
119117
return req

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

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77
"github.com/google/go-cmp/cmp"
88
"github.com/google/go-cmp/cmp/cmpopts"
99
"github.com/google/uuid"
10-
sqlserverflex "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex/v2api"
10+
sqlserverflex "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex/v3api"
1111

1212
"github.com/stackitcloud/stackit-cli/internal/pkg/testparams"
1313

@@ -67,12 +67,10 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel {
6767
}
6868

6969
func fixtureRequest(mods ...func(request *sqlserverflex.ApiCreateDatabaseRequest)) sqlserverflex.ApiCreateDatabaseRequest {
70-
request := testClient.DefaultAPI.CreateDatabase(testCtx, testProjectId, testInstanceId, testRegion)
70+
request := testClient.DefaultAPI.CreateDatabase(testCtx, testProjectId, testRegion, testInstanceId)
7171
payload := sqlserverflex.CreateDatabasePayload{
72-
Name: testDatabaseName,
73-
Options: sqlserverflex.DatabaseDocumentationCreateDatabaseRequestOptions{
74-
Owner: testOwner,
75-
},
72+
Name: testDatabaseName,
73+
Owner: testOwner,
7674
}
7775
request = request.CreateDatabasePayload(payload)
7876
for _, mod := range mods {

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import (
1616
"github.com/stackitcloud/stackit-cli/internal/pkg/spinner"
1717

1818
"github.com/spf13/cobra"
19-
sqlserverflex "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex/v2api"
19+
sqlserverflex "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex/v3api"
2020
)
2121

2222
const (
@@ -107,6 +107,6 @@ func parseInput(p *print.Printer, cmd *cobra.Command, inputArgs []string) (*inpu
107107
}
108108

109109
func buildRequest(ctx context.Context, model *inputModel, apiClient *sqlserverflex.APIClient) sqlserverflex.ApiDeleteDatabaseRequest {
110-
req := apiClient.DefaultAPI.DeleteDatabase(ctx, model.ProjectId, model.InstanceId, model.DatabaseName, model.Region)
110+
req := apiClient.DefaultAPI.DeleteDatabase(ctx, model.ProjectId, model.Region, model.InstanceId, model.DatabaseName)
111111
return req
112112
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import (
44
"context"
55
"testing"
66

7-
sqlserverflex "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex/v2api"
7+
sqlserverflex "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex/v3api"
88

99
"github.com/stackitcloud/stackit-cli/internal/pkg/globalflags"
1010
"github.com/stackitcloud/stackit-cli/internal/pkg/testutils"
@@ -63,7 +63,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel {
6363
}
6464

6565
func fixtureRequest(mods ...func(request *sqlserverflex.ApiDeleteDatabaseRequest)) sqlserverflex.ApiDeleteDatabaseRequest {
66-
request := testClient.DefaultAPI.DeleteDatabase(testCtx, testProjectId, testInstanceId, testDatabaseName, testRegion)
66+
request := testClient.DefaultAPI.DeleteDatabase(testCtx, testProjectId, testRegion, testInstanceId, testDatabaseName)
6767
for _, mod := range mods {
6868
mod(&request)
6969
}

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

Lines changed: 13 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77
"github.com/stackitcloud/stackit-cli/internal/pkg/types"
88

99
"github.com/spf13/cobra"
10-
sqlserverflex "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex/v2api"
10+
sqlserverflex "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex/v3api"
1111

1212
"github.com/stackitcloud/stackit-cli/internal/pkg/args"
1313
"github.com/stackitcloud/stackit-cli/internal/pkg/errors"
@@ -17,7 +17,6 @@ import (
1717
"github.com/stackitcloud/stackit-cli/internal/pkg/print"
1818
"github.com/stackitcloud/stackit-cli/internal/pkg/services/sqlserverflex/client"
1919
"github.com/stackitcloud/stackit-cli/internal/pkg/tables"
20-
"github.com/stackitcloud/stackit-cli/internal/pkg/utils"
2120
)
2221

2322
const (
@@ -98,35 +97,26 @@ func parseInput(p *print.Printer, cmd *cobra.Command, inputArgs []string) (*inpu
9897
}
9998

10099
func buildRequest(ctx context.Context, model *inputModel, apiClient *sqlserverflex.APIClient) sqlserverflex.ApiGetDatabaseRequest {
101-
req := apiClient.DefaultAPI.GetDatabase(ctx, model.ProjectId, model.InstanceId, model.DatabaseName, model.Region)
100+
req := apiClient.DefaultAPI.GetDatabase(ctx, model.ProjectId, model.Region, model.InstanceId, model.DatabaseName)
102101
return req
103102
}
104103

105104
func outputResult(p *print.Printer, outputFormat string, resp *sqlserverflex.GetDatabaseResponse) error {
106-
if resp == nil || resp.Database == nil {
107-
return fmt.Errorf("database response is empty")
108-
}
109-
110105
return p.OutputResult(outputFormat, resp, func() error {
111-
database := resp.Database
106+
if resp == nil {
107+
return fmt.Errorf("database response is empty")
108+
}
109+
112110
table := tables.NewTable()
113-
table.AddRow("ID", utils.PtrString(database.Id))
111+
table.AddRow("ID", resp.Id)
114112
table.AddSeparator()
115-
table.AddRow("NAME", utils.PtrString(database.Name))
113+
table.AddRow("NAME", resp.Name)
116114
table.AddSeparator()
117-
if database.Options != nil {
118-
if database.Options.CompatibilityLevel != nil {
119-
table.AddRow("COMPATIBILITY LEVEL", *database.Options.CompatibilityLevel)
120-
table.AddSeparator()
121-
}
122-
if database.Options.Owner != nil {
123-
table.AddRow("OWNER", *database.Options.Owner)
124-
table.AddSeparator()
125-
}
126-
if database.Options.CollationName != nil {
127-
table.AddRow("COLLATION", *database.Options.CollationName)
128-
}
129-
}
115+
table.AddRow("COMPATIBILITY LEVEL", resp.CompatibilityLevel)
116+
table.AddSeparator()
117+
table.AddRow("OWNER", resp.Owner)
118+
table.AddSeparator()
119+
table.AddRow("COLLATION", resp.CollationName)
130120
err := table.Display(p)
131121
if err != nil {
132122
return fmt.Errorf("render table: %w", err)

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

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77
"github.com/google/go-cmp/cmp"
88
"github.com/google/go-cmp/cmp/cmpopts"
99
"github.com/google/uuid"
10-
sqlserverflex "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex/v2api"
10+
sqlserverflex "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex/v3api"
1111

1212
"github.com/stackitcloud/stackit-cli/internal/pkg/testparams"
1313

@@ -64,7 +64,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel {
6464
}
6565

6666
func fixtureRequest(mods ...func(request *sqlserverflex.ApiGetDatabaseRequest)) sqlserverflex.ApiGetDatabaseRequest {
67-
request := testClient.DefaultAPI.GetDatabase(testCtx, testProjectId, testInstanceId, testDatabaseName, testRegion)
67+
request := testClient.DefaultAPI.GetDatabase(testCtx, testProjectId, testRegion, testInstanceId, testDatabaseName)
6868
for _, mod := range mods {
6969
mod(&request)
7070
}
@@ -210,20 +210,6 @@ func TestOutputResult(t *testing.T) {
210210
args: args{},
211211
wantErr: true,
212212
},
213-
{
214-
name: "empty response",
215-
args: args{
216-
resp: &sqlserverflex.GetDatabaseResponse{},
217-
},
218-
wantErr: true,
219-
},
220-
{
221-
name: "only database as argument",
222-
args: args{
223-
resp: &sqlserverflex.GetDatabaseResponse{Database: &sqlserverflex.SingleDatabase{}},
224-
},
225-
wantErr: false,
226-
},
227213
}
228214
params := testparams.NewTestParams()
229215

0 commit comments

Comments
 (0)