Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 16 additions & 15 deletions internal/cmd/server/backup/list/list.go
Original file line number Diff line number Diff line change
Expand Up @@ -67,27 +67,24 @@ func NewCmd(params *types.CmdParams) *cobra.Command {
if err != nil {
return fmt.Errorf("list server backups: %w", err)
}
backups := *resp.Items
if len(backups) == 0 {
serverLabel := model.ServerId
// Get server name
if iaasApiClient, err := iaasClient.ConfigureClient(params.Printer, params.CliVersion); err == nil {
serverName, err := iaasUtils.GetServerName(ctx, iaasApiClient, model.ProjectId, model.Region, model.ServerId)
if err != nil {
params.Printer.Debug(print.ErrorLevel, "get server name: %v", err)
} else if serverName != "" {
serverLabel = serverName
}
backups := resp.GetItems()

// Get server name
serverLabel := model.ServerId
if iaasApiClient, err := iaasClient.ConfigureClient(params.Printer, params.CliVersion); err == nil {
serverName, err := iaasUtils.GetServerName(ctx, iaasApiClient, model.ProjectId, model.Region, model.ServerId)
if err != nil {
params.Printer.Debug(print.ErrorLevel, "get server name: %v", err)
} else if serverName != "" {
serverLabel = serverName
}
params.Printer.Info("No backups found for server %s\n", serverLabel)
return nil
}

// Truncate output
if model.Limit != nil && len(backups) > int(*model.Limit) {
backups = backups[:*model.Limit]
}
return outputResult(params.Printer, model.OutputFormat, backups)
return outputResult(params.Printer, model.OutputFormat, serverLabel, backups)
},
}
configureFlags(cmd)
Expand Down Expand Up @@ -131,8 +128,12 @@ func buildRequest(ctx context.Context, model *inputModel, apiClient *serverbacku
return req
}

func outputResult(p *print.Printer, outputFormat string, backups []serverbackup.Backup) error {
func outputResult(p *print.Printer, outputFormat, serverLabel string, backups []serverbackup.Backup) error {
return p.OutputResult(outputFormat, backups, func() error {
if len(backups) == 0 {
p.Outputf("No backups found for server %s\n", serverLabel)
return nil
}
table := tables.NewTable()
table.SetHeader("ID", "NAME", "SIZE (GB)", "STATUS", "CREATED AT", "EXPIRES AT", "LAST RESTORED AT", "VOLUME BACKUPS")
for i := range backups {
Expand Down
3 changes: 2 additions & 1 deletion internal/cmd/server/backup/list/list_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,7 @@ func TestBuildRequest(t *testing.T) {
func TestOutputResult(t *testing.T) {
type args struct {
outputFormat string
serverLabel string
backups []serverbackup.Backup
}
tests := []struct {
Expand All @@ -179,7 +180,7 @@ func TestOutputResult(t *testing.T) {
params := testparams.NewTestParams()
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if err := outputResult(params.Printer, tt.args.outputFormat, tt.args.backups); (err != nil) != tt.wantErr {
if err := outputResult(params.Printer, tt.args.outputFormat, tt.args.serverLabel, tt.args.backups); (err != nil) != tt.wantErr {
t.Errorf("outputResult() error = %v, wantErr %v", err, tt.wantErr)
}
})
Expand Down
14 changes: 7 additions & 7 deletions internal/cmd/server/backup/schedule/list/list.go
Original file line number Diff line number Diff line change
Expand Up @@ -78,17 +78,13 @@ func NewCmd(params *types.CmdParams) *cobra.Command {
if err != nil {
return fmt.Errorf("list server backup schedules: %w", err)
}
schedules := *resp.Items
if len(schedules) == 0 {
params.Printer.Info("No backup schedules found for server %s\n", serverLabel)
return nil
}
schedules := resp.GetItems()

// Truncate output
if model.Limit != nil && len(schedules) > int(*model.Limit) {
schedules = schedules[:*model.Limit]
}
return outputResult(params.Printer, model.OutputFormat, schedules)
return outputResult(params.Printer, model.OutputFormat, serverLabel, schedules)
},
}
configureFlags(cmd)
Expand Down Expand Up @@ -132,8 +128,12 @@ func buildRequest(ctx context.Context, model *inputModel, apiClient *serverbacku
return req
}

func outputResult(p *print.Printer, outputFormat string, schedules []serverbackup.BackupSchedule) error {
func outputResult(p *print.Printer, outputFormat, serverLabel string, schedules []serverbackup.BackupSchedule) error {
return p.OutputResult(outputFormat, schedules, func() error {
if len(schedules) == 0 {
p.Outputf("No backup schedules found for server %s\n", serverLabel)
return nil
}
table := tables.NewTable()
table.SetHeader("SCHEDULE ID", "SCHEDULE NAME", "ENABLED", "RRULE", "BACKUP NAME", "BACKUP RETENTION DAYS", "BACKUP VOLUME IDS")
for i := range schedules {
Expand Down
3 changes: 2 additions & 1 deletion internal/cmd/server/backup/schedule/list/list_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,7 @@ func TestBuildRequest(t *testing.T) {
func TestOutputResult(t *testing.T) {
type args struct {
outputFormat string
serverLabel string
schedules []serverbackup.BackupSchedule
}
tests := []struct {
Expand Down Expand Up @@ -191,7 +192,7 @@ func TestOutputResult(t *testing.T) {
params := testparams.NewTestParams()
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if err := outputResult(params.Printer, tt.args.outputFormat, tt.args.schedules); (err != nil) != tt.wantErr {
if err := outputResult(params.Printer, tt.args.outputFormat, tt.args.serverLabel, tt.args.schedules); (err != nil) != tt.wantErr {
t.Errorf("outputResult() error = %v, wantErr %v", err, tt.wantErr)
}
})
Expand Down