Skip to content

Commit 1fde5b3

Browse files
authored
rdb: add color rendering for status (#1218)
1 parent b130ae7 commit 1fde5b3

File tree

4 files changed

+51
-0
lines changed

4 files changed

+51
-0
lines changed

internal/namespaces/rdb/v1/custom.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@ func GetCommands() *core.Commands {
2424
human.RegisterMarshalerFunc(rdb.Instance{}, instanceMarshalerFunc)
2525
human.RegisterMarshalerFunc(rdb.BackupSchedule{}, backupScheduleMarshalerFunc)
2626

27+
human.RegisterMarshalerFunc(rdb.InstanceStatus(0), human.EnumMarshalFunc(instanceStatusMarshalSpecs))
28+
human.RegisterMarshalerFunc(rdb.DatabaseBackupStatus(0), human.EnumMarshalFunc(backupStatusMarshalSpecs))
29+
human.RegisterMarshalerFunc(rdb.InstanceLogStatus(0), human.EnumMarshalFunc(logStatusMarshalSpecs))
30+
2731
cmds.Merge(core.NewCommands(
2832
instanceWaitCommand(),
2933
instanceConnectCommand(),

internal/namespaces/rdb/v1/custom_backup.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@ import (
55
"reflect"
66
"time"
77

8+
"github.com/fatih/color"
89
"github.com/scaleway/scaleway-cli/internal/core"
10+
"github.com/scaleway/scaleway-cli/internal/human"
911
"github.com/scaleway/scaleway-sdk-go/api/rdb/v1"
1012
"github.com/scaleway/scaleway-sdk-go/scw"
1113
)
@@ -14,6 +16,18 @@ const (
1416
backupActionTimeout = 20 * time.Minute
1517
)
1618

19+
var (
20+
backupStatusMarshalSpecs = human.EnumMarshalSpecs{
21+
rdb.DatabaseBackupStatusUnknown: &human.EnumMarshalSpec{Attribute: color.Faint, Value: "unknown"},
22+
rdb.DatabaseBackupStatusCreating: &human.EnumMarshalSpec{Attribute: color.FgBlue, Value: "creating"},
23+
rdb.DatabaseBackupStatusReady: &human.EnumMarshalSpec{Attribute: color.FgGreen, Value: "ready"},
24+
rdb.DatabaseBackupStatusRestoring: &human.EnumMarshalSpec{Attribute: color.FgBlue, Value: "restoring"},
25+
rdb.DatabaseBackupStatusDeleting: &human.EnumMarshalSpec{Attribute: color.FgBlue, Value: "deleting"},
26+
rdb.DatabaseBackupStatusError: &human.EnumMarshalSpec{Attribute: color.FgRed, Value: "error"},
27+
rdb.DatabaseBackupStatusExporting: &human.EnumMarshalSpec{Attribute: color.FgBlue, Value: "exporting"},
28+
}
29+
)
30+
1731
type backupWaitRequest struct {
1832
DatabaseBackupID string
1933
Region scw.Region

internal/namespaces/rdb/v1/custom_instance.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
"strings"
1212
"time"
1313

14+
"github.com/fatih/color"
1415
"github.com/scaleway/scaleway-cli/internal/core"
1516
"github.com/scaleway/scaleway-cli/internal/human"
1617
"github.com/scaleway/scaleway-cli/internal/interactive"
@@ -22,6 +23,22 @@ const (
2223
instanceActionTimeout = 20 * time.Minute
2324
)
2425

26+
var (
27+
instanceStatusMarshalSpecs = human.EnumMarshalSpecs{
28+
rdb.InstanceStatusUnknown: &human.EnumMarshalSpec{Attribute: color.Faint, Value: "unknown"},
29+
rdb.InstanceStatusReady: &human.EnumMarshalSpec{Attribute: color.FgGreen, Value: "ready"},
30+
rdb.InstanceStatusProvisioning: &human.EnumMarshalSpec{Attribute: color.FgBlue, Value: "provisioning"},
31+
rdb.InstanceStatusConfiguring: &human.EnumMarshalSpec{Attribute: color.FgBlue, Value: "configuring"},
32+
rdb.InstanceStatusDeleting: &human.EnumMarshalSpec{Attribute: color.FgBlue, Value: "deleting"},
33+
rdb.InstanceStatusError: &human.EnumMarshalSpec{Attribute: color.FgRed, Value: "error"},
34+
rdb.InstanceStatusAutohealing: &human.EnumMarshalSpec{Attribute: color.FgBlue, Value: "auto-healing"},
35+
rdb.InstanceStatusLocked: &human.EnumMarshalSpec{Attribute: color.FgRed, Value: "locked"},
36+
rdb.InstanceStatusInitializing: &human.EnumMarshalSpec{Attribute: color.FgBlue, Value: "initialized"},
37+
rdb.InstanceStatusDiskFull: &human.EnumMarshalSpec{Attribute: color.FgRed, Value: "disk_full"},
38+
rdb.InstanceStatusBackuping: &human.EnumMarshalSpec{Attribute: color.FgBlue, Value: "backuping"},
39+
}
40+
)
41+
2542
type serverWaitRequest struct {
2643
InstanceID string
2744
Region scw.Region
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package rdb
2+
3+
import (
4+
"github.com/fatih/color"
5+
"github.com/scaleway/scaleway-cli/internal/human"
6+
"github.com/scaleway/scaleway-sdk-go/api/rdb/v1"
7+
)
8+
9+
var (
10+
logStatusMarshalSpecs = human.EnumMarshalSpecs{
11+
rdb.InstanceLogStatusUnknown: &human.EnumMarshalSpec{Attribute: color.Faint, Value: "unknown"},
12+
rdb.InstanceLogStatusReady: &human.EnumMarshalSpec{Attribute: color.FgGreen, Value: "ready"},
13+
rdb.InstanceLogStatusCreating: &human.EnumMarshalSpec{Attribute: color.FgBlue, Value: "creating"},
14+
rdb.InstanceLogStatusError: &human.EnumMarshalSpec{Attribute: color.FgRed, Value: "error"},
15+
}
16+
)

0 commit comments

Comments
 (0)