Skip to content

Commit 64e076a

Browse files
authored
fix(lb): return correct message after successful crud (#3226)
1 parent 99df586 commit 64e076a

File tree

5 files changed

+76
-98
lines changed

5 files changed

+76
-98
lines changed

internal/namespaces/lb/v1/custom_acl.go

Lines changed: 13 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package lb
22

33
import (
44
"context"
5-
"strings"
65

76
"github.com/fatih/color"
87
"github.com/scaleway/scaleway-cli/v2/internal/core"
@@ -27,17 +26,6 @@ func lbACLMarshalerFunc(i interface{}, opt *human.MarshalOpt) (string, error) {
2726
},
2827
}
2928

30-
if len(acl.Frontend.LB.Tags) != 0 && acl.Frontend.LB.Tags[0] == kapsuleTag {
31-
ACLResp, err := human.Marshal(acl, opt)
32-
if err != nil {
33-
return "", err
34-
}
35-
return strings.Join([]string{
36-
ACLResp,
37-
warningKapsuleTaggedMessageView(),
38-
}, "\n\n"), nil
39-
}
40-
4129
str, err := human.Marshal(acl, opt)
4230
if err != nil {
4331
return "", err
@@ -68,22 +56,28 @@ func ACLDeleteBuilder(c *core.Command) *core.Command {
6856

6957
func interceptACL() core.CommandInterceptor {
7058
return func(ctx context.Context, argsI interface{}, runner core.CommandRunner) (interface{}, error) {
59+
var getACL *lb.ACL
60+
var err error
61+
7162
client := core.ExtractClient(ctx)
7263
api := lb.NewZonedAPI(client)
7364

74-
res, err := runner(ctx, argsI)
75-
if err != nil {
76-
return nil, err
77-
}
78-
79-
if _, ok := res.(*core.SuccessResult); ok {
80-
getACL, err := api.GetACL(&lb.ZonedAPIGetACLRequest{
65+
if _, ok := argsI.(*lb.ZonedAPIDeleteCertificateRequest); ok {
66+
getACL, err = api.GetACL(&lb.ZonedAPIGetACLRequest{
8167
Zone: argsI.(*lb.ZonedAPIDeleteACLRequest).Zone,
8268
ACLID: argsI.(*lb.ZonedAPIDeleteACLRequest).ACLID,
8369
})
8470
if err != nil {
8571
return nil, err
8672
}
73+
}
74+
75+
res, err := runner(ctx, argsI)
76+
if err != nil {
77+
return nil, err
78+
}
79+
80+
if _, ok := res.(*core.SuccessResult); ok {
8781
if len(getACL.Frontend.LB.Tags) != 0 && getACL.Frontend.LB.Tags[0] == kapsuleTag {
8882
return warningKapsuleTaggedMessageView(), nil
8983
}

internal/namespaces/lb/v1/custom_backend.go

Lines changed: 24 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -48,18 +48,6 @@ func lbBackendMarshalerFunc(i interface{}, opt *human.MarshalOpt) (string, error
4848
},
4949
}
5050

51-
if len(backend.LB.Tags) != 0 && backend.LB.Tags[0] == kapsuleTag {
52-
backendResp, err := human.Marshal(backend, opt)
53-
if err != nil {
54-
return "", err
55-
}
56-
57-
return strings.Join([]string{
58-
backendResp,
59-
warningKapsuleTaggedMessageView(),
60-
}, "\n\n"), nil
61-
}
62-
6351
str, err := human.Marshal(backend, opt)
6452
if err != nil {
6553
return "", err
@@ -781,6 +769,11 @@ func interceptBackend() core.CommandInterceptor {
781769
client := core.ExtractClient(ctx)
782770
api := lb.NewZonedAPI(client)
783771

772+
backend, err := getBackendBeforeAction(api, argsI)
773+
if err != nil {
774+
return nil, err
775+
}
776+
784777
res, err := runner(ctx, argsI)
785778
if err != nil {
786779
var invalidArgErr *scw.InvalidArgumentsError
@@ -802,32 +795,29 @@ func interceptBackend() core.CommandInterceptor {
802795
}
803796

804797
switch res.(type) {
805-
case *core.SuccessResult:
806-
getBackend, err := api.GetBackend(&lb.ZonedAPIGetBackendRequest{
807-
Zone: argsI.(*lb.ZonedAPIDeleteBackendRequest).Zone,
808-
BackendID: argsI.(*lb.ZonedAPIDeleteBackendRequest).BackendID,
809-
})
810-
if err != nil {
811-
return nil, err
812-
}
813-
814-
if len(getBackend.LB.Tags) != 0 && getBackend.LB.Tags[0] == kapsuleTag {
815-
return warningKapsuleTaggedMessageView(), nil
816-
}
817-
case *lb.HealthCheck:
818-
getBackend, err := api.GetBackend(&lb.ZonedAPIGetBackendRequest{
819-
Zone: argsI.(*lb.ZonedAPIUpdateHealthCheckRequest).Zone,
820-
BackendID: argsI.(*lb.ZonedAPIUpdateHealthCheckRequest).BackendID,
821-
})
822-
if err != nil {
823-
return nil, err
824-
}
825-
826-
if len(getBackend.LB.Tags) != 0 && getBackend.LB.Tags[0] == kapsuleTag {
798+
case *core.SuccessResult, *lb.HealthCheck:
799+
if len(backend.LB.Tags) != 0 && backend.LB.Tags[0] == kapsuleTag {
827800
return warningKapsuleTaggedMessageView(), nil
828801
}
829802
}
830803

831804
return res, nil
832805
}
833806
}
807+
808+
func getBackendBeforeAction(api *lb.ZonedAPI, argsI interface{}) (*lb.Backend, error) {
809+
switch args := argsI.(type) {
810+
case *lb.ZonedAPIDeleteBackendRequest:
811+
return api.GetBackend(&lb.ZonedAPIGetBackendRequest{
812+
Zone: args.Zone,
813+
BackendID: args.BackendID,
814+
})
815+
case *lb.ZonedAPIUpdateHealthCheckRequest:
816+
return api.GetBackend(&lb.ZonedAPIGetBackendRequest{
817+
Zone: args.Zone,
818+
BackendID: args.BackendID,
819+
})
820+
default:
821+
return nil, nil
822+
}
823+
}

internal/namespaces/lb/v1/custom_certificate.go

Lines changed: 13 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import (
44
"context"
55
"fmt"
66
"reflect"
7-
"strings"
87

98
"github.com/fatih/color"
109
"github.com/scaleway/scaleway-cli/v2/internal/core"
@@ -31,17 +30,6 @@ func lbCertificateMarshalerFunc(i interface{}, opt *human.MarshalOpt) (string, e
3130
},
3231
}
3332

34-
if len(certificate.LB.Tags) != 0 && certificate.LB.Tags[0] == kapsuleTag {
35-
certificateResp, err := human.Marshal(certificate, opt)
36-
if err != nil {
37-
return "", err
38-
}
39-
return strings.Join([]string{
40-
certificateResp,
41-
warningKapsuleTaggedMessageView(),
42-
}, "\n\n"), nil
43-
}
44-
4533
str, err := human.Marshal(certificate, opt)
4634
if err != nil {
4735
return "", err
@@ -152,22 +140,28 @@ func certificateDeleteBuilder(c *core.Command) *core.Command {
152140

153141
func interceptCertificate() core.CommandInterceptor {
154142
return func(ctx context.Context, argsI interface{}, runner core.CommandRunner) (interface{}, error) {
143+
var getCertificate *lb.Certificate
144+
var err error
145+
155146
client := core.ExtractClient(ctx)
156147
api := lb.NewZonedAPI(client)
157148

158-
res, err := runner(ctx, argsI)
159-
if err != nil {
160-
return nil, err
161-
}
162-
163-
if _, ok := res.(*core.SuccessResult); ok {
164-
getCertificate, err := api.GetCertificate(&lb.ZonedAPIGetCertificateRequest{
149+
if _, ok := argsI.(*lb.ZonedAPIDeleteCertificateRequest); ok {
150+
getCertificate, err = api.GetCertificate(&lb.ZonedAPIGetCertificateRequest{
165151
Zone: argsI.(*lb.ZonedAPIDeleteCertificateRequest).Zone,
166152
CertificateID: argsI.(*lb.ZonedAPIDeleteCertificateRequest).CertificateID,
167153
})
168154
if err != nil {
169155
return nil, err
170156
}
157+
}
158+
159+
res, err := runner(ctx, argsI)
160+
if err != nil {
161+
return nil, err
162+
}
163+
164+
if _, ok := res.(*core.SuccessResult); ok {
171165
if len(getCertificate.LB.Tags) != 0 && getCertificate.LB.Tags[0] == kapsuleTag {
172166
return warningKapsuleTaggedMessageView(), nil
173167
}

internal/namespaces/lb/v1/custom_frontend.go

Lines changed: 13 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package lb
22

33
import (
44
"context"
5-
"strings"
65

76
"github.com/scaleway/scaleway-cli/v2/internal/core"
87
"github.com/scaleway/scaleway-cli/v2/internal/human"
@@ -22,17 +21,6 @@ func lbFrontendMarshalerFunc(i interface{}, opt *human.MarshalOpt) (string, erro
2221
},
2322
}
2423

25-
if len(frontend.LB.Tags) != 0 && frontend.LB.Tags[0] == kapsuleTag {
26-
frontendResp, err := human.Marshal(frontend, opt)
27-
if err != nil {
28-
return "", err
29-
}
30-
return strings.Join([]string{
31-
frontendResp,
32-
warningKapsuleTaggedMessageView(),
33-
}, "\n\n"), nil
34-
}
35-
3624
str, err := human.Marshal(frontend, opt)
3725
if err != nil {
3826
return "", err
@@ -63,22 +51,28 @@ func frontendDeleteBuilder(c *core.Command) *core.Command {
6351

6452
func interceptFrontend() core.CommandInterceptor {
6553
return func(ctx context.Context, argsI interface{}, runner core.CommandRunner) (interface{}, error) {
54+
var getFrontend *lb.Frontend
55+
var err error
56+
6657
client := core.ExtractClient(ctx)
6758
api := lb.NewZonedAPI(client)
6859

69-
res, err := runner(ctx, argsI)
70-
if err != nil {
71-
return nil, err
72-
}
73-
74-
if _, ok := res.(*core.SuccessResult); ok {
75-
getFrontend, err := api.GetFrontend(&lb.ZonedAPIGetFrontendRequest{
60+
if _, ok := argsI.(*lb.ZonedAPIDeleteFrontendRequest); ok {
61+
getFrontend, err = api.GetFrontend(&lb.ZonedAPIGetFrontendRequest{
7662
Zone: argsI.(*lb.ZonedAPIDeleteFrontendRequest).Zone,
7763
FrontendID: argsI.(*lb.ZonedAPIDeleteFrontendRequest).FrontendID,
7864
})
7965
if err != nil {
8066
return nil, err
8167
}
68+
}
69+
70+
res, err := runner(ctx, argsI)
71+
if err != nil {
72+
return nil, err
73+
}
74+
75+
if _, ok := res.(*core.SuccessResult); ok {
8276
if len(getFrontend.LB.Tags) != 0 && getFrontend.LB.Tags[0] == kapsuleTag {
8377
return warningKapsuleTaggedMessageView(), nil
8478
}

internal/namespaces/lb/v1/custom_lb.go

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -164,22 +164,28 @@ func lbGetStatsBuilder(c *core.Command) *core.Command {
164164

165165
func interceptLB() core.CommandInterceptor {
166166
return func(ctx context.Context, argsI interface{}, runner core.CommandRunner) (interface{}, error) {
167+
var getLB *lb.LB
168+
var err error
169+
167170
client := core.ExtractClient(ctx)
168171
api := lb.NewZonedAPI(client)
169172

170-
res, err := runner(ctx, argsI)
171-
if err != nil {
172-
return nil, err
173-
}
174-
175-
if _, ok := res.(*core.SuccessResult); ok {
176-
getLB, err := api.GetLB(&lb.ZonedAPIGetLBRequest{
173+
if _, ok := argsI.(*lb.ZonedAPIDeleteLBRequest); ok {
174+
getLB, err = api.GetLB(&lb.ZonedAPIGetLBRequest{
177175
Zone: argsI.(*lb.ZonedAPIDeleteLBRequest).Zone,
178176
LBID: argsI.(*lb.ZonedAPIDeleteLBRequest).LBID,
179177
})
180178
if err != nil {
181179
return nil, err
182180
}
181+
}
182+
183+
res, err := runner(ctx, argsI)
184+
if err != nil {
185+
return nil, err
186+
}
187+
188+
if _, ok := res.(*core.SuccessResult); ok {
183189
if len(getLB.Tags) != 0 && getLB.Tags[0] == kapsuleTag {
184190
return warningKapsuleTaggedMessageView(), nil
185191
}

0 commit comments

Comments
 (0)