Skip to content

Commit 7e2f057

Browse files
authored
feat(serverbackup): Region adjustment (#667)
Signed-off-by: Alexander Dahmen <[email protected]>
1 parent d583439 commit 7e2f057

File tree

32 files changed

+161
-146
lines changed

32 files changed

+161
-146
lines changed

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ require (
2525
github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.13.1
2626
github.com/stackitcloud/stackit-sdk-go/services/runcommand v1.0.0
2727
github.com/stackitcloud/stackit-sdk-go/services/secretsmanager v0.11.2
28-
github.com/stackitcloud/stackit-sdk-go/services/serverbackup v0.6.0
28+
github.com/stackitcloud/stackit-sdk-go/services/serverbackup v1.0.1
2929
github.com/stackitcloud/stackit-sdk-go/services/serverupdate v1.0.0
3030
github.com/stackitcloud/stackit-sdk-go/services/serviceaccount v0.6.1
3131
github.com/stackitcloud/stackit-sdk-go/services/serviceenablement v1.0.1

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,8 +145,8 @@ github.com/stackitcloud/stackit-sdk-go/services/runcommand v1.0.0 h1:tKUyddNszci
145145
github.com/stackitcloud/stackit-sdk-go/services/runcommand v1.0.0/go.mod h1:5n31cpeYcz2DSax4ygpZICEHDoHCTbWHrNGNYWwlRA8=
146146
github.com/stackitcloud/stackit-sdk-go/services/secretsmanager v0.11.2 h1:SZoWUDUA8foNbu+cwRa67VxJXJJx4M8oiHeykVh8Wlg=
147147
github.com/stackitcloud/stackit-sdk-go/services/secretsmanager v0.11.2/go.mod h1:PrD0nNG94Dd5D9pu7HJ0bAg8ccDz6/7KaIts7K9p7as=
148-
github.com/stackitcloud/stackit-sdk-go/services/serverbackup v0.6.0 h1:cESGAkm0ftADRBfdbiyx3pp/KVQ8JgmUQdRzpwG61wE=
149-
github.com/stackitcloud/stackit-sdk-go/services/serverbackup v0.6.0/go.mod h1:aYPLsiImzWaYXEfYIZ0wJnV56PwcR+buy8Xu9jjbfGA=
148+
github.com/stackitcloud/stackit-sdk-go/services/serverbackup v1.0.1 h1:qujhShugc1290NQlPoNqsembqzot8aTToAdSsJg5WrM=
149+
github.com/stackitcloud/stackit-sdk-go/services/serverbackup v1.0.1/go.mod h1:e1fsQL24gTPXcMWptuslNscawmXv/PLUAFuw+sOofbc=
150150
github.com/stackitcloud/stackit-sdk-go/services/serverupdate v1.0.0 h1:a8logPoRcMCgwa9rCtuzWF6DLiuCIdJgcacZKThFsks=
151151
github.com/stackitcloud/stackit-sdk-go/services/serverupdate v1.0.0/go.mod h1:zDdYYQVHGlju9cnMISX/Ty73Yh/qYcZGcJSOYWRZCbw=
152152
github.com/stackitcloud/stackit-sdk-go/services/serviceaccount v0.6.1 h1:VKgxgjsbaUVMCnntq+MLQ/c1Emn5crVr11B3gJnyHN4=

internal/cmd/server/backup/create/create.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ func parseInput(p *print.Printer, cmd *cobra.Command) (*inputModel, error) {
140140
}
141141

142142
func buildRequest(ctx context.Context, model *inputModel, apiClient *serverbackup.APIClient) (serverbackup.ApiCreateBackupRequest, error) {
143-
req := apiClient.CreateBackup(ctx, model.ProjectId, model.ServerId)
143+
req := apiClient.CreateBackup(ctx, model.ProjectId, model.ServerId, model.Region)
144144
payload := serverbackup.CreateBackupPayload{
145145
Name: &model.BackupName,
146146
RetentionPeriod: &model.BackupRetentionPeriod,

internal/cmd/server/backup/create/create_test.go

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,6 @@ import (
1414
"github.com/stackitcloud/stackit-sdk-go/services/serverbackup"
1515
)
1616

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

2119
var testCtx = context.WithValue(context.Background(), testCtxKey{}, "foo")
@@ -24,10 +22,12 @@ var testClient = &serverbackup.APIClient{}
2422
var testProjectId = uuid.NewString()
2523
var testServerId = uuid.NewString()
2624
var testBackupVolumeId = uuid.NewString()
25+
var testRegion = "eu01"
2726

2827
func fixtureFlagValues(mods ...func(flagValues map[string]string)) map[string]string {
2928
flagValues := map[string]string{
30-
projectIdFlag: testProjectId,
29+
globalflags.ProjectIdFlag: testProjectId,
30+
globalflags.RegionFlag: testRegion,
3131
serverIdFlag: testServerId,
3232
backupNameFlag: "example-backup-name",
3333
backupRetentionPeriodFlag: "14",
@@ -43,6 +43,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel {
4343
model := &inputModel{
4444
GlobalFlagModel: &globalflags.GlobalFlagModel{
4545
ProjectId: testProjectId,
46+
Region: testRegion,
4647
Verbosity: globalflags.VerbosityDefault,
4748
},
4849
ServerId: testServerId,
@@ -57,7 +58,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel {
5758
}
5859

5960
func fixtureRequest(mods ...func(request *serverbackup.ApiCreateBackupRequest)) serverbackup.ApiCreateBackupRequest {
60-
request := testClient.CreateBackup(testCtx, testProjectId, testServerId)
61+
request := testClient.CreateBackup(testCtx, testProjectId, testServerId, testRegion)
6162
request = request.CreateBackupPayload(fixturePayload())
6263
for _, mod := range mods {
6364
mod(&request)
@@ -107,21 +108,21 @@ func TestParseInput(t *testing.T) {
107108
{
108109
description: "project id missing",
109110
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
110-
delete(flagValues, projectIdFlag)
111+
delete(flagValues, globalflags.ProjectIdFlag)
111112
}),
112113
isValid: false,
113114
},
114115
{
115116
description: "project id invalid 1",
116117
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
117-
flagValues[projectIdFlag] = ""
118+
flagValues[globalflags.ProjectIdFlag] = ""
118119
}),
119120
isValid: false,
120121
},
121122
{
122123
description: "project id invalid 2",
123124
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
124-
flagValues[projectIdFlag] = "invalid-uuid"
125+
flagValues[globalflags.ProjectIdFlag] = "invalid-uuid"
125126
}),
126127
isValid: false,
127128
},

internal/cmd/server/backup/delete/delete.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,6 @@ func parseInput(p *print.Printer, cmd *cobra.Command, inputArgs []string) (*inpu
109109
}
110110

111111
func buildRequest(ctx context.Context, model *inputModel, apiClient *serverbackup.APIClient) serverbackup.ApiDeleteBackupRequest {
112-
req := apiClient.DeleteBackup(ctx, model.ProjectId, model.ServerId, model.BackupId)
112+
req := apiClient.DeleteBackup(ctx, model.ProjectId, model.ServerId, model.Region, model.BackupId)
113113
return req
114114
}

internal/cmd/server/backup/delete/delete_test.go

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,14 @@ import (
1313
"github.com/stackitcloud/stackit-sdk-go/services/serverbackup"
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 = &serverbackup.APIClient{}
2220
var testProjectId = uuid.NewString()
2321
var testServerId = uuid.NewString()
2422
var testBackupId = uuid.NewString()
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-
serverIdFlag: testServerId,
37+
globalflags.ProjectIdFlag: testProjectId,
38+
globalflags.RegionFlag: testRegion,
39+
serverIdFlag: testServerId,
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
ServerId: testServerId,
@@ -60,7 +61,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel {
6061
}
6162

6263
func fixtureRequest(mods ...func(request *serverbackup.ApiDeleteBackupRequest)) serverbackup.ApiDeleteBackupRequest {
63-
request := testClient.DeleteBackup(testCtx, testProjectId, testServerId, testBackupId)
64+
request := testClient.DeleteBackup(testCtx, testProjectId, testServerId, testRegion, testBackupId)
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/server/backup/describe/describe.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ func parseInput(p *print.Printer, cmd *cobra.Command, inputArgs []string) (*inpu
106106
}
107107

108108
func buildRequest(ctx context.Context, model *inputModel, apiClient *serverbackup.APIClient) serverbackup.ApiGetBackupRequest {
109-
req := apiClient.GetBackup(ctx, model.ProjectId, model.ServerId, model.BackupId)
109+
req := apiClient.GetBackup(ctx, model.ProjectId, model.ServerId, model.Region, model.BackupId)
110110
return req
111111
}
112112

internal/cmd/server/backup/describe/describe_test.go

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,14 @@ import (
1313
"github.com/stackitcloud/stackit-sdk-go/services/serverbackup"
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 = &serverbackup.APIClient{}
2220
var testProjectId = uuid.NewString()
2321
var testServerId = uuid.NewString()
2422
var testBackupId = uuid.NewString()
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-
serverIdFlag: testServerId,
37+
globalflags.ProjectIdFlag: testProjectId,
38+
globalflags.RegionFlag: testRegion,
39+
serverIdFlag: testServerId,
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
ServerId: testServerId,
@@ -60,7 +61,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel {
6061
}
6162

6263
func fixtureRequest(mods ...func(request *serverbackup.ApiGetBackupRequest)) serverbackup.ApiGetBackupRequest {
63-
request := testClient.GetBackup(testCtx, testProjectId, testServerId, testBackupId)
64+
request := testClient.GetBackup(testCtx, testProjectId, testServerId, testRegion, testBackupId)
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/server/backup/disable/disable.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ func NewCmd(p *print.Printer) *cobra.Command {
6363
}
6464
}
6565

66-
canDisable, err := serverbackupUtils.CanDisableBackupService(ctx, apiClient, model.ProjectId, model.ServerId)
66+
canDisable, err := serverbackupUtils.CanDisableBackupService(ctx, apiClient, model.ProjectId, model.ServerId, model.Region)
6767
if err != nil {
6868
return err
6969
}
@@ -125,7 +125,7 @@ func parseInput(p *print.Printer, cmd *cobra.Command) (*inputModel, error) {
125125
return &model, nil
126126
}
127127

128-
func buildRequest(ctx context.Context, model *inputModel, apiClient *serverbackup.APIClient) serverbackup.ApiDisableServiceRequest {
129-
req := apiClient.DisableService(ctx, model.ProjectId, model.ServerId)
128+
func buildRequest(ctx context.Context, model *inputModel, apiClient *serverbackup.APIClient) serverbackup.ApiDisableServiceResourceRequest {
129+
req := apiClient.DisableServiceResource(ctx, model.ProjectId, model.ServerId, model.Region)
130130
return req
131131
}

internal/cmd/server/backup/disable/disable_test.go

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,18 +14,18 @@ import (
1414
"github.com/stackitcloud/stackit-sdk-go/services/serverbackup"
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 = &serverbackup.APIClient{}
2321
var testProjectId = uuid.NewString()
2422
var testServerId = 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,
27+
globalflags.ProjectIdFlag: testProjectId,
28+
globalflags.RegionFlag: testRegion,
2929
}
3030
for _, mod := range mods {
3131
mod(flagValues)
@@ -37,6 +37,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel {
3737
model := &inputModel{
3838
GlobalFlagModel: &globalflags.GlobalFlagModel{
3939
ProjectId: testProjectId,
40+
Region: testRegion,
4041
Verbosity: globalflags.VerbosityDefault,
4142
},
4243
ServerId: testServerId,
@@ -47,8 +48,8 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel {
4748
return model
4849
}
4950

50-
func fixtureRequest(mods ...func(request *serverbackup.ApiDisableServiceRequest)) serverbackup.ApiDisableServiceRequest {
51-
request := testClient.DisableService(testCtx, testProjectId, testServerId)
51+
func fixtureRequest(mods ...func(request *serverbackup.ApiDisableServiceResourceRequest)) serverbackup.ApiDisableServiceResourceRequest {
52+
request := testClient.DisableServiceResource(testCtx, testProjectId, testServerId, testRegion)
5253
for _, mod := range mods {
5354
mod(&request)
5455
}
@@ -78,21 +79,21 @@ func TestParseInput(t *testing.T) {
7879
{
7980
description: "project id missing",
8081
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
81-
delete(flagValues, projectIdFlag)
82+
delete(flagValues, globalflags.ProjectIdFlag)
8283
}),
8384
isValid: false,
8485
},
8586
{
8687
description: "project id invalid 1",
8788
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
88-
flagValues[projectIdFlag] = ""
89+
flagValues[globalflags.ProjectIdFlag] = ""
8990
}),
9091
isValid: false,
9192
},
9293
{
9394
description: "project id invalid 2",
9495
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
95-
flagValues[projectIdFlag] = "invalid-uuid"
96+
flagValues[globalflags.ProjectIdFlag] = "invalid-uuid"
9697
}),
9798
isValid: false,
9899
},
@@ -148,7 +149,7 @@ func TestBuildRequest(t *testing.T) {
148149
tests := []struct {
149150
description string
150151
model *inputModel
151-
expectedRequest serverbackup.ApiDisableServiceRequest
152+
expectedRequest serverbackup.ApiDisableServiceResourceRequest
152153
}{
153154
{
154155
description: "base",

0 commit comments

Comments
 (0)