Skip to content

Commit 785ba29

Browse files
authored
rdb: refactor engine list output (#1178)
1 parent 34df89a commit 785ba29

File tree

5 files changed

+268
-0
lines changed

5 files changed

+268
-0
lines changed

internal/namespaces/rdb/v1/custom.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,7 @@ func GetCommands() *core.Commands {
2626

2727
cmds.MustFind("rdb", "instance", "upgrade").Override(instanceUpgradeBuilder)
2828

29+
cmds.MustFind("rdb", "engine", "list").Override(engineListBuilder)
30+
2931
return cmds
3032
}
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
package rdb
2+
3+
import (
4+
"context"
5+
"time"
6+
7+
"github.com/scaleway/scaleway-cli/internal/core"
8+
"github.com/scaleway/scaleway-sdk-go/api/rdb/v1"
9+
)
10+
11+
func engineListBuilder(c *core.Command) *core.Command {
12+
type customEngine struct {
13+
Name string `json:"name"`
14+
EngineType string `json:"engine_type"`
15+
EndOfLife time.Time `json:"end_of_life"`
16+
}
17+
18+
c.View = &core.View{
19+
Fields: []*core.ViewField{
20+
{
21+
Label: "Name",
22+
FieldName: "Name",
23+
},
24+
{
25+
Label: "Engine Type",
26+
FieldName: "EngineType",
27+
},
28+
{
29+
Label: "End of Life",
30+
FieldName: "EndOfLife",
31+
},
32+
},
33+
}
34+
35+
c.AddInterceptors(func(ctx context.Context, argsI interface{}, runner core.CommandRunner) (i interface{}, err error) {
36+
listEngineResp, err := runner(ctx, argsI)
37+
if err != nil {
38+
return listEngineResp, err
39+
}
40+
engineList := listEngineResp.([]*rdb.DatabaseEngine)
41+
var res []customEngine
42+
for _, engine := range engineList {
43+
for _, version := range engine.Versions {
44+
res = append(res, customEngine{
45+
Name: version.Name,
46+
EngineType: engine.Name,
47+
EndOfLife: version.EndOfLife,
48+
})
49+
}
50+
}
51+
52+
return res, nil
53+
})
54+
55+
return c
56+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package rdb
2+
3+
import (
4+
"testing"
5+
6+
"github.com/scaleway/scaleway-cli/internal/core"
7+
)
8+
9+
func Test_EngineList(t *testing.T) {
10+
t.Run("Simple", core.Test(&core.TestConfig{
11+
Commands: GetCommands(),
12+
Cmd: "scw rdb engine list",
13+
Check: core.TestCheckGolden(),
14+
}))
15+
}

0 commit comments

Comments
 (0)