Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(lb): improve backend get output #2575

Merged
merged 12 commits into from
Nov 21, 2022
2 changes: 2 additions & 0 deletions internal/namespaces/lb/v1/custom.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ func GetCommands() *core.Commands {
human.RegisterMarshalerFunc(lb.ACLActionType(""), human.EnumMarshalFunc(aclMarshalSpecs))
human.RegisterMarshalerFunc(lb.BackendServerStatsHealthCheckStatus(""), human.EnumMarshalFunc(backendServerStatsHealthCheckStatusMarshalSpecs))
human.RegisterMarshalerFunc(lb.BackendServerStatsServerState(""), human.EnumMarshalFunc(backendServerStatsServerStateMarshalSpecs))
human.RegisterMarshalerFunc(lb.LB{}, lbMarshalerFunc)
human.RegisterMarshalerFunc(lb.Backend{}, lbBackendMarshalerFunc)

cmds := GetGeneratedCommands()

Expand Down
24 changes: 24 additions & 0 deletions internal/namespaces/lb/v1/custom_backend.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,27 @@ var (
lb.BackendServerStatsServerStateStopping: &human.EnumMarshalSpec{Attribute: color.FgBlue, Value: "stopping"},
}
)

func lbBackendMarshalerFunc(i interface{}, opt *human.MarshalOpt) (string, error) {
type tmp lb.Backend
backend := tmp(i.(lb.Backend))

opt.Sections = []*human.MarshalSection{
{
FieldName: "HealthCheck",
},
{
FieldName: "Pool",
},
{
FieldName: "LB",
},
}

str, err := human.Marshal(backend, opt)
if err != nil {
return "", err
}

return str, nil
}
29 changes: 29 additions & 0 deletions internal/namespaces/lb/v1/custom_backend_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package lb

import (
"testing"

"github.com/scaleway/scaleway-cli/v2/internal/core"
"github.com/scaleway/scaleway-cli/v2/internal/namespaces/instance/v1"
)

func Test_GetBackend(t *testing.T) {
cmds := GetCommands()
cmds.Merge(instance.GetCommands())

t.Run("Simple", core.Test(&core.TestConfig{
Commands: cmds,
BeforeFunc: core.BeforeFuncCombine(
createLB(),
createInstance(),
createBackend(80),
addIP2Backend("{{ .Instance.PublicIP.Address }}"),
),
Cmd: "scw lb backend get {{ .Backend.ID }}",
Check: core.TestCheckGolden(),
AfterFunc: core.AfterFuncCombine(
deleteLB(),
deleteInstance(),
),
}))
}
8 changes: 8 additions & 0 deletions internal/namespaces/lb/v1/custom_certificate.go
Original file line number Diff line number Diff line change
Expand Up @@ -84,5 +84,13 @@ func certificateCreateBuilder(c *core.Command) *core.Command {
}
}

c.View = &core.View{
Sections: []*core.ViewSection{
{
FieldName: "LB",
},
},
}

return c
}
164 changes: 82 additions & 82 deletions internal/namespaces/lb/v1/custom_certificate_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,89 +13,89 @@ func Test_CreateCertificate(t *testing.T) {
// openssl x509 -req -sha256 -days 365 -in csr.txt -signkey private_key.txt -out certificate.txt -extensions req_ext

customCertificateChain := `
-----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY-----
-----BEGIN PRIVATE KEY-----
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
MepiPn3PLfsjd0iqJJ/3k3oqCMAUrw==
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIFszCCA5ugAwIBAgIJANBJxhjW9oz3MA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNV
BAYTAkZSMRYwFAYDVQQIDA1JbGUtZGUtRnJhbmNlMQ4wDAYDVQQHDAVQYXJpczEW
MBQGA1UECgwNTXlDb21wYW55TmFtZTESMBAGA1UEAwwJbG9jYWxob3N0MRswGQYJ
KoZIhvcNAQkBFgxtZUBlbWFpbC5jb20wHhcNMjAwNzIyMDk0MzA1WhcNMjEwNzIy
MDk0MzA1WjB+MQswCQYDVQQGEwJGUjEWMBQGA1UECAwNSWxlLWRlLUZyYW5jZTEO
MAwGA1UEBwwFUGFyaXMxFjAUBgNVBAoMDU15Q29tcGFueU5hbWUxEjAQBgNVBAMM
CWxvY2FsaG9zdDEbMBkGCSqGSIb3DQEJARYMbWVAZW1haWwuY29tMIICIjANBgkq
hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAwM6FCUSBpmsDoNktO6E5EgxwqRU+q14u
97MAiEKYFPWeEEz2F7nBKd4LT7agpG4kCCQIWohlqmYiWg6JJiEv2inKTTlYCYyU
1VT0ZcP6xpkCL8r7oN4b3pwCPIjyRimo1Pf3DnvoyfDmL/O7MkafAJhFQ6STys7a
KB9Q08mmc2nbCfjC1r+PIsYEI4OQRhDpZwSI4kJdLjjZS+lMaGv/US/yxYFnTju5
MaSeIiQhrXQ9mXd1xHGAICrOut4aRN60qHCvTHF+fKjYj41L6CCjdVPB7kVSNdg1
/hdEPMOL6mTL7oitporsneljhuhmkKCmVMtYwfyCr/Z3TiBIs2yD0ZrIkjdYSlkZ
vbM2Fy2aSoGc+lYguCH36RaiLSKL5rXj63/EcRnYmm4/Qutjdl1ZVSzVB4V30cxh
HedAZ1LQ77v9cFJKVthFxHGDa1uvCoRPbXMVP5zp6nIZWh2e39aClIniYKBTvHmN
I6Ta9zI0DvpNQHnPJUkYfdbSq6cvopXgtucPF16oLw2e82PpfBy6bfzhKZ8Rlh3d
1lRXYcx5NGo74vCiAEn8RorOMqB6Y22rVA7ugvAkd2j2x+3dXLixa2W2gunYBBIH
3ZpXVWf3e8ityPL4ElWakU7S1p0qYLtLTSTQN/q93al4pd8sVeMWvYNlga8oZQVC
Hqo5wJl6Xn0CAwEAAaM0MDIwMAYDVR0RBCkwJ4ISc2VydmVyLmV4YW1wbGUuY29t
ghFhbGlhcy5leGFtcGxlLmNvbTANBgkqhkiG9w0BAQsFAAOCAgEAdPU0tVV1ryKL
zsGZaCKeEM+izrXL6Mg2W/BjQJmyDVGgCW4WTNrXHwhINuT3gBdGOdc0FjI5lOwu
jRyCVkWfxQANusClG4jJ3V90s2C//bT3VkQIT6Ajl2VYsEoSHE+/hN/8S7U6MCUz
ezvhfyGKiTj7pD3pGyb47Gys4kXY1p5t/TO1kVoaAfhnEXFSYMeMQLYGct5VB59o
NAQpSlt54umebbcHXz4V3M4/2R6RLQkkl1Jw9Xwq6uRRE52y3M/wAdVTpsRHixx/
ueyUqjx+ctPEXvZ7uvRuqYELV2gY/bFlNpR2J2mRw9Unw3sxSoDQG/CYmoiOIypF
fhdM7aVQMAyiKlCCVEj4mo67kR6Phnr6mOHm6oappJxhqMS7476+SQMGgMj4E8Zm
4jrDB1OC1Xk5f+DaNNH3RC2ONi8ujgjdlm6/kvSX7/9Qv/VXEnl4j0lwFTS0+uWA
ULsDgtZDL5rbIzyjHYsp3IsNStyTbgILVRzeG7ec8RQ9ywUQzdAgkUPnhZZCXeYa
enQQD5IHhCPymbX1YaJtOrIIWxgstt4jM74fbke4RBTYjfdd/St0e0QT77x2nPSD
W+PRZGQr+hGmvVf5TwVxOMNcwhVzBsFmo/fIwCef/F9N0j+8UUd8iv+LZ5DcWWCB
u7hOptIAnzVMFt9d/EhtaU6+KoWS/sI=
MIIFijCCA3KgAwIBAgIJAI+myVDGPxI7MA0GCSqGSIb3DQEBCwUAMG4xCzAJBgNV
BAYTAkZSMRYwFAYDVQQIDA1JbGUtZGUtRnJhbmNlMQ4wDAYDVQQHDAVQYXJpczEd
MBsGA1UECgwUTXlJbnRlcm5ldENvbXBhbnlMVEQxGDAWBgNVBAMMD3d3dy5leGFt
cGxlLmNvbTAeFw0yMjExMTQxNjA5MTFaFw0yMzExMTQxNjA5MTFaMG4xCzAJBgNV
BAYTAkZSMRYwFAYDVQQIDA1JbGUtZGUtRnJhbmNlMQ4wDAYDVQQHDAVQYXJpczEd
MBsGA1UECgwUTXlJbnRlcm5ldENvbXBhbnlMVEQxGDAWBgNVBAMMD3d3dy5leGFt
cGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKOJJZJWGKyR
MBTSwA1dzTz7NGoJLXLWQyOq2rOiqfG2uZ3Djy+ATjb6/mP+/SgEFHiS4ETCmvZZ
PWU4bITm+FgEiOzyQ8EqdplH5Jrw54xim428ETydiASgghoiSSE+M9qzK4ROIrrf
LHQPmrBGyb0Chr87mQo6kDDXs3Pdssk1ORhaPAul9vsnIbZWEX09rZ1+vuxqFjVM
G70Zjwc1W9elYIYRYI1bwNCncHLbdHoGxSvAx6t/zxd/mGTEzji4dUJPAlrNx0yE
8RiGzixruer+1YNRYXHeg9Y/FxhgQ2gIIm7pVQgac9wNcBcUxqiUFIPvyjiPSgK3
SoBml4GAl3d1nP5+zAahV0UMty9Ez35lJq/qeLBTj2vyU34B7dEABG9JMllKxVLc
n97xDjSL22cSSWB63wDHB1oVWLBnlSLZDZFLuWdAW3t05qvnkwieqgtrrIubxClF
9VP92cyeggYNPmF3YspqYCxps22Y9JPU4m/cw6XRc/uBJUA6AMnw2OHUk3lfiq07
ca9NTMGiN+pt6Bwwt7wZTxlSLc9MSOon7TGddeLhkdOfevVrAhXKaYJU4/+ldsNS
J+V8FtVZk5C7k4XSUk8h6glLkDHlHcLS4OkK3w7T8LaSVrwVOw6BIWit359s43/7
SuNA8revIlYJgq33KeWDGv9vnZqHZTiLAgMBAAGjKzApMCcGA1UdEQQgMB6CC2V4
YW1wbGUuY29tgg93d3cuZXhhbXBsZS5jb20wDQYJKoZIhvcNAQELBQADggIBAD/F
iIwu462RaaN8dZ7G0vhTGoz70hGsaLw7Qi8mOCN1hUfMrxh+oxLNUu9A/pNCx9zA
g4N/8xvA3L85kv4RkvPDP5KQ9h/zIKgV2ADv8Swu67fclEVa6Mk4BmRPghfhs/h/
9TEc3oyEyG6TQx5msPz9z9ghQyhgbYlo4DigAv8Gjz7RyGg1stD0LOeVg6pSVhK0
37+dg55hox5mMN36g2O+xEM85u4uB4dqp4ibvKPapq+wAYg0YK3R79+KmlsbCVC1
zFWyDwaH3H3VLb1a/aAHxUqvpTMmrJpeZWTPeVcsIKsml9NpjQgeIy4MjkjcHBJk
ZfZ9/R3OaM9Bl/OtUWEDadEXhMA/neJ0bZh8Bt2ql1GnKUYJPH0qWKgMwFThykcU
l54C512JDGk8tBiNAh2cqbbKX+M0jqTuDmSeLZOcvWM+k0T/VbeERalPdH3xXO3L
x4FFaqNY5W1sndunzYeWCpVNfK2unwcocj8hXl+Vcm0YgzDhz8CrgFQgp7qmtGH8
eewzvqkUm8i+N4c7Rax25M06EcT8dCfjHG0ScC+iOOrgm9V8bVNNsnUQzAqhwozp
FKQ9WcK8j+KuYrWQJihn/omlWXSQ+zs12N7yKVLVRuY8aw4XuWZwvuu4EkRLYcUD
5h467I4rNC2+9W+AcNkzCE2i/dCyt3f3y1Rtu8l0
-----END CERTIFICATE-----
`
t.Run("Import", core.Test(&core.TestConfig{
Expand Down
23 changes: 23 additions & 0 deletions internal/namespaces/lb/v1/custom_lb.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,29 @@ var (
}
)

func lbMarshalerFunc(i interface{}, opt *human.MarshalOpt) (string, error) {
type tmp lb.LB
loadbalancer := tmp(i.(lb.LB))

opt.Sections = []*human.MarshalSection{
{
FieldName: "IP",
Title: "IPs",
},
{
FieldName: "Instances",
Title: "Backends",
},
}

str, err := human.Marshal(loadbalancer, opt)
if err != nil {
return "", err
}

return str, nil
}

func lbWaitCommand() *core.Command {
return &core.Command{
Short: `Wait for a load balancer to reach a stable state`,
Expand Down
Loading