Skip to content

Commit 6d3be8e

Browse files
authored
fix(serverbackup): print valid JSON/YAML output for list cmds (#1379)
relates to STACKITCLI-386 and #893
1 parent 1e8c409 commit 6d3be8e

4 files changed

Lines changed: 27 additions & 24 deletions

File tree

internal/cmd/server/backup/list/list.go

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -67,27 +67,24 @@ func NewCmd(params *types.CmdParams) *cobra.Command {
6767
if err != nil {
6868
return fmt.Errorf("list server backups: %w", err)
6969
}
70-
backups := *resp.Items
71-
if len(backups) == 0 {
72-
serverLabel := model.ServerId
73-
// Get server name
74-
if iaasApiClient, err := iaasClient.ConfigureClient(params.Printer, params.CliVersion); err == nil {
75-
serverName, err := iaasUtils.GetServerName(ctx, iaasApiClient, model.ProjectId, model.Region, model.ServerId)
76-
if err != nil {
77-
params.Printer.Debug(print.ErrorLevel, "get server name: %v", err)
78-
} else if serverName != "" {
79-
serverLabel = serverName
80-
}
70+
backups := resp.GetItems()
71+
72+
// Get server name
73+
serverLabel := model.ServerId
74+
if iaasApiClient, err := iaasClient.ConfigureClient(params.Printer, params.CliVersion); err == nil {
75+
serverName, err := iaasUtils.GetServerName(ctx, iaasApiClient, model.ProjectId, model.Region, model.ServerId)
76+
if err != nil {
77+
params.Printer.Debug(print.ErrorLevel, "get server name: %v", err)
78+
} else if serverName != "" {
79+
serverLabel = serverName
8180
}
82-
params.Printer.Info("No backups found for server %s\n", serverLabel)
83-
return nil
8481
}
8582

8683
// Truncate output
8784
if model.Limit != nil && len(backups) > int(*model.Limit) {
8885
backups = backups[:*model.Limit]
8986
}
90-
return outputResult(params.Printer, model.OutputFormat, backups)
87+
return outputResult(params.Printer, model.OutputFormat, serverLabel, backups)
9188
},
9289
}
9390
configureFlags(cmd)
@@ -131,8 +128,12 @@ func buildRequest(ctx context.Context, model *inputModel, apiClient *serverbacku
131128
return req
132129
}
133130

134-
func outputResult(p *print.Printer, outputFormat string, backups []serverbackup.Backup) error {
131+
func outputResult(p *print.Printer, outputFormat, serverLabel string, backups []serverbackup.Backup) error {
135132
return p.OutputResult(outputFormat, backups, func() error {
133+
if len(backups) == 0 {
134+
p.Outputf("No backups found for server %s\n", serverLabel)
135+
return nil
136+
}
136137
table := tables.NewTable()
137138
table.SetHeader("ID", "NAME", "SIZE (GB)", "STATUS", "CREATED AT", "EXPIRES AT", "LAST RESTORED AT", "VOLUME BACKUPS")
138139
for i := range backups {

internal/cmd/server/backup/list/list_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@ func TestBuildRequest(t *testing.T) {
154154
func TestOutputResult(t *testing.T) {
155155
type args struct {
156156
outputFormat string
157+
serverLabel string
157158
backups []serverbackup.Backup
158159
}
159160
tests := []struct {
@@ -179,7 +180,7 @@ func TestOutputResult(t *testing.T) {
179180
params := testparams.NewTestParams()
180181
for _, tt := range tests {
181182
t.Run(tt.name, func(t *testing.T) {
182-
if err := outputResult(params.Printer, tt.args.outputFormat, tt.args.backups); (err != nil) != tt.wantErr {
183+
if err := outputResult(params.Printer, tt.args.outputFormat, tt.args.serverLabel, tt.args.backups); (err != nil) != tt.wantErr {
183184
t.Errorf("outputResult() error = %v, wantErr %v", err, tt.wantErr)
184185
}
185186
})

internal/cmd/server/backup/schedule/list/list.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -78,17 +78,13 @@ func NewCmd(params *types.CmdParams) *cobra.Command {
7878
if err != nil {
7979
return fmt.Errorf("list server backup schedules: %w", err)
8080
}
81-
schedules := *resp.Items
82-
if len(schedules) == 0 {
83-
params.Printer.Info("No backup schedules found for server %s\n", serverLabel)
84-
return nil
85-
}
81+
schedules := resp.GetItems()
8682

8783
// Truncate output
8884
if model.Limit != nil && len(schedules) > int(*model.Limit) {
8985
schedules = schedules[:*model.Limit]
9086
}
91-
return outputResult(params.Printer, model.OutputFormat, schedules)
87+
return outputResult(params.Printer, model.OutputFormat, serverLabel, schedules)
9288
},
9389
}
9490
configureFlags(cmd)
@@ -132,8 +128,12 @@ func buildRequest(ctx context.Context, model *inputModel, apiClient *serverbacku
132128
return req
133129
}
134130

135-
func outputResult(p *print.Printer, outputFormat string, schedules []serverbackup.BackupSchedule) error {
131+
func outputResult(p *print.Printer, outputFormat, serverLabel string, schedules []serverbackup.BackupSchedule) error {
136132
return p.OutputResult(outputFormat, schedules, func() error {
133+
if len(schedules) == 0 {
134+
p.Outputf("No backup schedules found for server %s\n", serverLabel)
135+
return nil
136+
}
137137
table := tables.NewTable()
138138
table.SetHeader("SCHEDULE ID", "SCHEDULE NAME", "ENABLED", "RRULE", "BACKUP NAME", "BACKUP RETENTION DAYS", "BACKUP VOLUME IDS")
139139
for i := range schedules {

internal/cmd/server/backup/schedule/list/list_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,7 @@ func TestBuildRequest(t *testing.T) {
155155
func TestOutputResult(t *testing.T) {
156156
type args struct {
157157
outputFormat string
158+
serverLabel string
158159
schedules []serverbackup.BackupSchedule
159160
}
160161
tests := []struct {
@@ -191,7 +192,7 @@ func TestOutputResult(t *testing.T) {
191192
params := testparams.NewTestParams()
192193
for _, tt := range tests {
193194
t.Run(tt.name, func(t *testing.T) {
194-
if err := outputResult(params.Printer, tt.args.outputFormat, tt.args.schedules); (err != nil) != tt.wantErr {
195+
if err := outputResult(params.Printer, tt.args.outputFormat, tt.args.serverLabel, tt.args.schedules); (err != nil) != tt.wantErr {
195196
t.Errorf("outputResult() error = %v, wantErr %v", err, tt.wantErr)
196197
}
197198
})

0 commit comments

Comments
 (0)