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/os-update/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 os-update: %w", err)
}
updates := *resp.Items
if len(updates) == 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
}
updates := resp.GetItems()

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
}
params.Printer.Info("No os-updates found for server %s\n", serverLabel)
return nil
}

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

func outputResult(p *print.Printer, outputFormat string, updates []serverupdate.Update) error {
func outputResult(p *print.Printer, outputFormat, serverLabel string, updates []serverupdate.Update) error {
return p.OutputResult(outputFormat, updates, func() error {
if len(updates) == 0 {
p.Outputf("No os-updates found for server %s\n", serverLabel)
return nil
}
table := tables.NewTable()
table.SetHeader("ID", "STATUS", "INSTALLED UPDATES", "FAILED UPDATES", "START DATE", "END DATE")
for i := range updates {
Expand Down
3 changes: 2 additions & 1 deletion internal/cmd/server/os-update/list/list_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,7 @@ func TestBuildRequest(t *testing.T) {
func TestOutputResult(t *testing.T) {
type args struct {
outputFormat string
serverLabel string
updates []serverupdate.Update
}
tests := []struct {
Expand All @@ -173,7 +174,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.updates); (err != nil) != tt.wantErr {
if err := outputResult(params.Printer, tt.args.outputFormat, tt.args.serverLabel, tt.args.updates); (err != nil) != tt.wantErr {
t.Errorf("outputResult() error = %v, wantErr %v", err, tt.wantErr)
}
})
Expand Down
32 changes: 17 additions & 15 deletions internal/cmd/server/os-update/schedule/list/list.go
Original file line number Diff line number Diff line change
Expand Up @@ -67,27 +67,25 @@ func NewCmd(params *types.CmdParams) *cobra.Command {
if err != nil {
return fmt.Errorf("list server os-update schedules: %w", err)
}
schedules := *resp.Items
if len(schedules) == 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
}

schedules := resp.GetItems()

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
}
params.Printer.Info("No os-update schedules found for server %s\n", serverLabel)
return nil
}

// 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 @@ -131,8 +129,12 @@ func buildRequest(ctx context.Context, model *inputModel, apiClient *serverupdat
return req
}

func outputResult(p *print.Printer, outputFormat string, schedules []serverupdate.UpdateSchedule) error {
func outputResult(p *print.Printer, outputFormat, serverLabel string, schedules []serverupdate.UpdateSchedule) error {
return p.OutputResult(outputFormat, schedules, func() error {
if len(schedules) == 0 {
p.Outputf("No os-update schedules found for server %s\n", serverLabel)
return nil
}
table := tables.NewTable()
table.SetHeader("SCHEDULE ID", "SCHEDULE NAME", "ENABLED", "RRULE", "MAINTENANCE WINDOW")
for i := range schedules {
Expand Down
3 changes: 2 additions & 1 deletion internal/cmd/server/os-update/schedule/list/list_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,7 @@ func TestBuildRequest(t *testing.T) {
func TestOutputResult(t *testing.T) {
type args struct {
outputFormat string
serverLabel string
schedules []serverupdate.UpdateSchedule
}
tests := []struct {
Expand All @@ -173,7 +174,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