Skip to content

Commit 8ebf466

Browse files
authored
chore(loadbalancer): regional adjustment (#652)
* fix(loadbalancer): show correct number of listeners & targets in list cmd relates to STACKITCLI-127
1 parent 5e95596 commit 8ebf466

File tree

37 files changed

+290
-212
lines changed

37 files changed

+290
-212
lines changed

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ require (
7979
github.com/sourcegraph/conc v0.3.0 // indirect
8080
github.com/spf13/afero v1.11.0 // indirect
8181
github.com/spf13/cast v1.6.0 // indirect
82-
github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v0.18.0
82+
github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.0.0
8383
github.com/stackitcloud/stackit-sdk-go/services/logme v0.21.0
8484
github.com/stackitcloud/stackit-sdk-go/services/mariadb v0.21.0
8585
github.com/stackitcloud/stackit-sdk-go/services/objectstorage v1.1.0

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,8 +125,8 @@ github.com/stackitcloud/stackit-sdk-go/services/dns v0.13.0 h1:gEoA2oj3OcDg3XI0K
125125
github.com/stackitcloud/stackit-sdk-go/services/dns v0.13.0/go.mod h1:JE8POcTfSxTo+g1MkgVQ+OjT4jWEr08MIY8qx3Hi+Tw=
126126
github.com/stackitcloud/stackit-sdk-go/services/iaas v0.21.1 h1:ZFFJr54FcYTUBjE+5E3Cx92jTDdHGKT2DTIvvJSRrTc=
127127
github.com/stackitcloud/stackit-sdk-go/services/iaas v0.21.1/go.mod h1:9p5IIdOKOM5/DIjbenKrWvz6GlSps4jsPJZkH7QJuRU=
128-
github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v0.18.0 h1:7nNjIIcBQRDVnW4NL7+R8DaCKEqxxxsmVsgOVe50ZMU=
129-
github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v0.18.0/go.mod h1:UFujBT+JlNvl6JNrY96UpLGqp+lZTD+JWL7siqhGPlw=
128+
github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.0.0 h1:z2p0OobEAgSE5bQr+KR+4Y1QTvDbSC2a7w2eCV/oSp4=
129+
github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.0.0/go.mod h1:x0jgrL+/K2cE4BvcIQByFUf0nOPVZRqq5Z074kjjr64=
130130
github.com/stackitcloud/stackit-sdk-go/services/logme v0.21.0 h1:P7bxaVzkZPGMWItLynKIvc88Xh6jCnK4dPTTT+L607o=
131131
github.com/stackitcloud/stackit-sdk-go/services/logme v0.21.0/go.mod h1:os4Kp2+jkMUJ2dZtgU9A91N3EJSw3MMh2slxgK1609g=
132132
github.com/stackitcloud/stackit-sdk-go/services/mariadb v0.21.0 h1:ks1i+cfD/YPRss//4aq6uvxbLvUwb5QvcUrOPeboLFY=

internal/cmd/load-balancer/create/create.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ func NewCmd(p *print.Printer) *cobra.Command {
9595
if !model.Async {
9696
s := spinner.New(p)
9797
s.Start("Creating load balancer")
98-
_, err = wait.CreateLoadBalancerWaitHandler(ctx, apiClient, model.ProjectId, *model.Payload.Name).WaitWithContext(ctx)
98+
_, err = wait.CreateLoadBalancerWaitHandler(ctx, apiClient, model.ProjectId, model.Region, *model.Payload.Name).WaitWithContext(ctx)
9999
if err != nil {
100100
return fmt.Errorf("wait for load balancer creation: %w", err)
101101
}
@@ -155,7 +155,7 @@ func parseInput(p *print.Printer, cmd *cobra.Command) (*inputModel, error) {
155155
}
156156

157157
func buildRequest(ctx context.Context, model *inputModel, apiClient *loadbalancer.APIClient) loadbalancer.ApiCreateLoadBalancerRequest {
158-
req := apiClient.CreateLoadBalancer(ctx, model.ProjectId)
158+
req := apiClient.CreateLoadBalancer(ctx, model.ProjectId, model.Region)
159159
req = req.CreateLoadBalancerPayload(*model.Payload)
160160
req = req.XRequestID(xRequestId)
161161
return req

internal/cmd/load-balancer/create/create_test.go

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,18 @@ import (
1515
"github.com/google/uuid"
1616
)
1717

18-
var projectIdFlag = globalflags.ProjectIdFlag
18+
const (
19+
testRegion = "eu02"
20+
)
1921

2022
type testCtxKey struct{}
2123

22-
var testCtx = context.WithValue(context.Background(), testCtxKey{}, "foo")
23-
var testClient = &loadbalancer.APIClient{}
24-
var testProjectId = uuid.NewString()
25-
var testRequestId = xRequestId
24+
var (
25+
testCtx = context.WithValue(context.Background(), testCtxKey{}, "foo")
26+
testClient = &loadbalancer.APIClient{}
27+
testProjectId = uuid.NewString()
28+
testRequestId = xRequestId
29+
)
2630

2731
var testPayload = &loadbalancer.CreateLoadBalancerPayload{
2832
ExternalAddress: utils.Ptr(""),
@@ -98,7 +102,8 @@ var testPayload = &loadbalancer.CreateLoadBalancerPayload{
98102

99103
func fixtureFlagValues(mods ...func(flagValues map[string]string)) map[string]string {
100104
flagValues := map[string]string{
101-
projectIdFlag: testProjectId,
105+
globalflags.ProjectIdFlag: testProjectId,
106+
globalflags.RegionFlag: testRegion,
102107
payloadFlag: `{
103108
"externalAddress": "",
104109
"listeners": [
@@ -180,6 +185,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel {
180185
model := &inputModel{
181186
GlobalFlagModel: &globalflags.GlobalFlagModel{
182187
ProjectId: testProjectId,
188+
Region: testRegion,
183189
Verbosity: globalflags.VerbosityDefault,
184190
},
185191
Payload: testPayload,
@@ -191,7 +197,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel {
191197
}
192198

193199
func fixtureRequest(mods ...func(request *loadbalancer.ApiCreateLoadBalancerRequest)) loadbalancer.ApiCreateLoadBalancerRequest {
194-
request := testClient.CreateLoadBalancer(testCtx, testProjectId)
200+
request := testClient.CreateLoadBalancer(testCtx, testProjectId, testRegion)
195201
request = request.CreateLoadBalancerPayload(*testPayload)
196202
request = request.XRequestID(testRequestId)
197203
for _, mod := range mods {
@@ -226,21 +232,21 @@ func TestParseInput(t *testing.T) {
226232
{
227233
description: "project id missing",
228234
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
229-
delete(flagValues, projectIdFlag)
235+
delete(flagValues, globalflags.ProjectIdFlag)
230236
}),
231237
isValid: false,
232238
},
233239
{
234240
description: "project id invalid 1",
235241
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
236-
flagValues[projectIdFlag] = ""
242+
flagValues[globalflags.ProjectIdFlag] = ""
237243
}),
238244
isValid: false,
239245
},
240246
{
241247
description: "project id invalid 2",
242248
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
243-
flagValues[projectIdFlag] = "invalid-uuid"
249+
flagValues[globalflags.ProjectIdFlag] = "invalid-uuid"
244250
}),
245251
isValid: false,
246252
},

internal/cmd/load-balancer/delete/delete.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ func NewCmd(p *print.Printer) *cobra.Command {
6868
if !model.Async {
6969
s := spinner.New(p)
7070
s.Start("Deleting load balancer")
71-
_, err = wait.DeleteLoadBalancerWaitHandler(ctx, apiClient, model.ProjectId, model.LoadBalancerName).WaitWithContext(ctx)
71+
_, err = wait.DeleteLoadBalancerWaitHandler(ctx, apiClient, model.ProjectId, model.Region, model.LoadBalancerName).WaitWithContext(ctx)
7272
if err != nil {
7373
return fmt.Errorf("wait for load balancer deletion: %w", err)
7474
}
@@ -112,6 +112,6 @@ func parseInput(p *print.Printer, cmd *cobra.Command, inputArgs []string) (*inpu
112112
}
113113

114114
func buildRequest(ctx context.Context, model *inputModel, apiClient *loadbalancer.APIClient) loadbalancer.ApiDeleteLoadBalancerRequest {
115-
req := apiClient.DeleteLoadBalancer(ctx, model.ProjectId, model.LoadBalancerName)
115+
req := apiClient.DeleteLoadBalancer(ctx, model.ProjectId, model.Region, model.LoadBalancerName)
116116
return req
117117
}

internal/cmd/load-balancer/delete/delete_test.go

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@ import (
1313
"github.com/stackitcloud/stackit-sdk-go/services/loadbalancer"
1414
)
1515

16-
var projectIdFlag = globalflags.ProjectIdFlag
16+
const (
17+
testRegion = "eu02"
18+
)
1719

1820
type testCtxKey struct{}
1921

@@ -34,7 +36,8 @@ func fixtureArgValues(mods ...func(argValues []string)) []string {
3436

3537
func fixtureFlagValues(mods ...func(flagValues map[string]string)) map[string]string {
3638
flagValues := map[string]string{
37-
projectIdFlag: testProjectId,
39+
globalflags.ProjectIdFlag: testProjectId,
40+
globalflags.RegionFlag: testRegion,
3841
}
3942
for _, mod := range mods {
4043
mod(flagValues)
@@ -46,6 +49,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel {
4649
model := &inputModel{
4750
GlobalFlagModel: &globalflags.GlobalFlagModel{
4851
ProjectId: testProjectId,
52+
Region: testRegion,
4953
Verbosity: globalflags.VerbosityDefault,
5054
},
5155
LoadBalancerName: testLoadBalancerName,
@@ -57,7 +61,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel {
5761
}
5862

5963
func fixtureRequest(mods ...func(request *loadbalancer.ApiDeleteLoadBalancerRequest)) loadbalancer.ApiDeleteLoadBalancerRequest {
60-
request := testClient.DeleteLoadBalancer(testCtx, testProjectId, testLoadBalancerName)
64+
request := testClient.DeleteLoadBalancer(testCtx, testProjectId, testRegion, testLoadBalancerName)
6165
for _, mod := range mods {
6266
mod(&request)
6367
}
@@ -101,23 +105,23 @@ func TestParseInput(t *testing.T) {
101105
description: "project id missing",
102106
argValues: fixtureArgValues(),
103107
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
104-
delete(flagValues, projectIdFlag)
108+
delete(flagValues, globalflags.ProjectIdFlag)
105109
}),
106110
isValid: false,
107111
},
108112
{
109113
description: "project id invalid 1",
110114
argValues: fixtureArgValues(),
111115
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
112-
flagValues[projectIdFlag] = ""
116+
flagValues[globalflags.ProjectIdFlag] = ""
113117
}),
114118
isValid: false,
115119
},
116120
{
117121
description: "project id invalid 2",
118122
argValues: fixtureArgValues(),
119123
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
120-
flagValues[projectIdFlag] = "invalid-uuid"
124+
flagValues[globalflags.ProjectIdFlag] = "invalid-uuid"
121125
}),
122126
isValid: false,
123127
},

internal/cmd/load-balancer/describe/describe.go

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

9696
func buildRequest(ctx context.Context, model *inputModel, apiClient *loadbalancer.APIClient) loadbalancer.ApiGetLoadBalancerRequest {
97-
req := apiClient.GetLoadBalancer(ctx, model.ProjectId, model.LoadBalancerName)
97+
req := apiClient.GetLoadBalancer(ctx, model.ProjectId, model.Region, model.LoadBalancerName)
9898
return req
9999
}
100100

internal/cmd/load-balancer/describe/describe_test.go

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,16 @@ import (
1212
"github.com/stackitcloud/stackit-sdk-go/services/loadbalancer"
1313
)
1414

15-
var projectIdFlag = globalflags.ProjectIdFlag
15+
const (
16+
testRegion = "eu02"
17+
testloadBalancerName = "loadBalancer"
18+
)
1619

1720
type testCtxKey struct{}
1821

1922
var testCtx = context.WithValue(context.Background(), testCtxKey{}, "foo")
2023
var testClient = &loadbalancer.APIClient{}
2124
var testProjectId = uuid.NewString()
22-
var testloadBalancerName = "loadBalancer"
2325

2426
func fixtureArgValues(mods ...func(argValues []string)) []string {
2527
argValues := []string{
@@ -33,7 +35,8 @@ func fixtureArgValues(mods ...func(argValues []string)) []string {
3335

3436
func fixtureFlagValues(mods ...func(flagValues map[string]string)) map[string]string {
3537
flagValues := map[string]string{
36-
projectIdFlag: testProjectId,
38+
globalflags.ProjectIdFlag: testProjectId,
39+
globalflags.RegionFlag: testRegion,
3740
}
3841
for _, mod := range mods {
3942
mod(flagValues)
@@ -45,6 +48,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel {
4548
model := &inputModel{
4649
GlobalFlagModel: &globalflags.GlobalFlagModel{
4750
ProjectId: testProjectId,
51+
Region: testRegion,
4852
Verbosity: globalflags.VerbosityDefault,
4953
},
5054
LoadBalancerName: testloadBalancerName,
@@ -56,7 +60,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel {
5660
}
5761

5862
func fixtureRequest(mods ...func(request *loadbalancer.ApiGetLoadBalancerRequest)) loadbalancer.ApiGetLoadBalancerRequest {
59-
request := testClient.GetLoadBalancer(testCtx, testProjectId, testloadBalancerName)
63+
request := testClient.GetLoadBalancer(testCtx, testProjectId, testRegion, testloadBalancerName)
6064
for _, mod := range mods {
6165
mod(&request)
6266
}
@@ -100,23 +104,23 @@ func TestParseInput(t *testing.T) {
100104
description: "project id missing",
101105
argValues: fixtureArgValues(),
102106
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
103-
delete(flagValues, projectIdFlag)
107+
delete(flagValues, globalflags.ProjectIdFlag)
104108
}),
105109
isValid: false,
106110
},
107111
{
108112
description: "project id invalid 1",
109113
argValues: fixtureArgValues(),
110114
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
111-
flagValues[projectIdFlag] = ""
115+
flagValues[globalflags.ProjectIdFlag] = ""
112116
}),
113117
isValid: false,
114118
},
115119
{
116120
description: "project id invalid 2",
117121
argValues: fixtureArgValues(),
118122
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
119-
flagValues[projectIdFlag] = "invalid-uuid"
123+
flagValues[globalflags.ProjectIdFlag] = "invalid-uuid"
120124
}),
121125
isValid: false,
122126
},

internal/cmd/load-balancer/generate-payload/generate_payload.go

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

210210
func buildRequest(ctx context.Context, model *inputModel, apiClient *loadbalancer.APIClient) loadbalancer.ApiGetLoadBalancerRequest {
211-
req := apiClient.GetLoadBalancer(ctx, model.ProjectId, *model.LoadBalancerName)
211+
req := apiClient.GetLoadBalancer(ctx, model.ProjectId, model.Region, *model.LoadBalancerName)
212212
return req
213213
}
214214

internal/cmd/load-balancer/generate-payload/generate_payload_test.go

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@ import (
1313
"github.com/stackitcloud/stackit-sdk-go/services/loadbalancer"
1414
)
1515

16-
var projectIdFlag = globalflags.ProjectIdFlag
16+
const (
17+
testRegion = "eu02"
18+
)
1719

1820
type testCtxKey struct{}
1921

@@ -28,9 +30,10 @@ const (
2830

2931
func fixtureFlagValues(mods ...func(flagValues map[string]string)) map[string]string {
3032
flagValues := map[string]string{
31-
projectIdFlag: testProjectId,
32-
loadBalancerNameFlag: testLoadBalancerName,
33-
filePathFlag: testFilePath,
33+
globalflags.ProjectIdFlag: testProjectId,
34+
globalflags.RegionFlag: testRegion,
35+
loadBalancerNameFlag: testLoadBalancerName,
36+
filePathFlag: testFilePath,
3437
}
3538
for _, mod := range mods {
3639
mod(flagValues)
@@ -42,6 +45,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel {
4245
model := &inputModel{
4346
GlobalFlagModel: &globalflags.GlobalFlagModel{
4447
ProjectId: testProjectId,
48+
Region: testRegion,
4549
Verbosity: globalflags.VerbosityDefault,
4650
},
4751
LoadBalancerName: utils.Ptr(testLoadBalancerName),
@@ -54,7 +58,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel {
5458
}
5559

5660
func fixtureRequest(mods ...func(request *loadbalancer.ApiGetLoadBalancerRequest)) loadbalancer.ApiGetLoadBalancerRequest {
57-
request := testClient.GetLoadBalancer(testCtx, testProjectId, testLoadBalancerName)
61+
request := testClient.GetLoadBalancer(testCtx, testProjectId, testRegion, testLoadBalancerName)
5862
for _, mod := range mods {
5963
mod(&request)
6064
}
@@ -105,21 +109,21 @@ func TestParseInput(t *testing.T) {
105109
{
106110
description: "project id missing",
107111
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
108-
delete(flagValues, projectIdFlag)
112+
delete(flagValues, globalflags.ProjectIdFlag)
109113
}),
110114
isValid: false,
111115
},
112116
{
113117
description: "project id invalid 1",
114118
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
115-
flagValues[projectIdFlag] = ""
119+
flagValues[globalflags.ProjectIdFlag] = ""
116120
}),
117121
isValid: false,
118122
},
119123
{
120124
description: "project id invalid 2",
121125
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
122-
flagValues[projectIdFlag] = "invalid-uuid"
126+
flagValues[globalflags.ProjectIdFlag] = "invalid-uuid"
123127
}),
124128
isValid: false,
125129
},

0 commit comments

Comments
 (0)