diff --git a/internal/cmd/beta/public-ip/associate/associate.go b/internal/cmd/beta/public-ip/associate/associate.go index 1c33b2b8d..d50bafb8d 100644 --- a/internal/cmd/beta/public-ip/associate/associate.go +++ b/internal/cmd/beta/public-ip/associate/associate.go @@ -59,6 +59,8 @@ func NewCmd(p *print.Printer) *cobra.Command { if err != nil { p.Debug(print.ErrorLevel, "get public IP: %v", err) publicIpLabel = model.PublicIpId + } else if publicIpLabel == "" { + publicIpLabel = model.PublicIpId } if !model.AssumeYes { diff --git a/internal/cmd/beta/public-ip/create/create.go b/internal/cmd/beta/public-ip/create/create.go index ad6196e82..9bc05ab3d 100644 --- a/internal/cmd/beta/public-ip/create/create.go +++ b/internal/cmd/beta/public-ip/create/create.go @@ -67,6 +67,8 @@ func NewCmd(p *print.Printer) *cobra.Command { if err != nil { p.Debug(print.ErrorLevel, "get project name: %v", err) projectLabel = model.ProjectId + } else if projectLabel == "" { + projectLabel = model.ProjectId } if !model.AssumeYes { @@ -84,7 +86,7 @@ func NewCmd(p *print.Printer) *cobra.Command { return fmt.Errorf("create public IP: %w", err) } - return outputResult(p, model, projectLabel, resp) + return outputResult(p, model.OutputFormat, projectLabel, *resp) }, } configureFlags(cmd) @@ -140,8 +142,8 @@ func buildRequest(ctx context.Context, model *inputModel, apiClient *iaas.APICli return req.CreatePublicIPPayload(payload) } -func outputResult(p *print.Printer, model *inputModel, projectLabel string, publicIp *iaas.PublicIp) error { - switch model.OutputFormat { +func outputResult(p *print.Printer, outputFormat, projectLabel string, publicIp iaas.PublicIp) error { + switch outputFormat { case print.JSONOutputFormat: details, err := json.MarshalIndent(publicIp, "", " ") if err != nil { diff --git a/internal/cmd/beta/public-ip/create/create_test.go b/internal/cmd/beta/public-ip/create/create_test.go index 7411c0a9f..b204d561f 100644 --- a/internal/cmd/beta/public-ip/create/create_test.go +++ b/internal/cmd/beta/public-ip/create/create_test.go @@ -213,3 +213,31 @@ func TestBuildRequest(t *testing.T) { }) } } + +func Test_outputResult(t *testing.T) { + type args struct { + outputFormat string + projectLabel string + publicIp iaas.PublicIp + } + tests := []struct { + name string + args args + wantErr bool + }{ + { + name: "empty", + args: args{}, + wantErr: false, + }, + } + p := print.NewPrinter() + p.Cmd = NewCmd(p) + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if err := outputResult(p, tt.args.outputFormat, tt.args.projectLabel, tt.args.publicIp); (err != nil) != tt.wantErr { + t.Errorf("outputResult() error = %v, wantErr %v", err, tt.wantErr) + } + }) + } +} diff --git a/internal/cmd/beta/public-ip/delete/delete.go b/internal/cmd/beta/public-ip/delete/delete.go index bd87419da..0f257d8f0 100644 --- a/internal/cmd/beta/public-ip/delete/delete.go +++ b/internal/cmd/beta/public-ip/delete/delete.go @@ -57,6 +57,8 @@ func NewCmd(p *print.Printer) *cobra.Command { if err != nil { p.Debug(print.ErrorLevel, "get public IP: %v", err) publicIpLabel = model.PublicIpId + } else if publicIpLabel == "" { + publicIpLabel = model.PublicIpId } if !model.AssumeYes { @@ -74,7 +76,7 @@ func NewCmd(p *print.Printer) *cobra.Command { return fmt.Errorf("delete public IP: %w", err) } - p.Info("Deleted public IP %q\n", model.PublicIpId) + p.Info("Deleted public IP %q\n", publicIpLabel) return nil }, } diff --git a/internal/cmd/beta/public-ip/describe/describe.go b/internal/cmd/beta/public-ip/describe/describe.go index c07e9e981..bc532fd6b 100644 --- a/internal/cmd/beta/public-ip/describe/describe.go +++ b/internal/cmd/beta/public-ip/describe/describe.go @@ -66,7 +66,7 @@ func NewCmd(p *print.Printer) *cobra.Command { return fmt.Errorf("read public IP: %w", err) } - return outputResult(p, model.OutputFormat, resp) + return outputResult(p, model.OutputFormat, *resp) }, } return cmd @@ -101,7 +101,7 @@ func buildRequest(ctx context.Context, model *inputModel, apiClient *iaas.APICli return apiClient.GetPublicIP(ctx, model.ProjectId, model.PublicIpId) } -func outputResult(p *print.Printer, outputFormat string, publicIp *iaas.PublicIp) error { +func outputResult(p *print.Printer, outputFormat string, publicIp iaas.PublicIp) error { switch outputFormat { case print.JSONOutputFormat: details, err := json.MarshalIndent(publicIp, "", " ") diff --git a/internal/cmd/beta/public-ip/describe/describe_test.go b/internal/cmd/beta/public-ip/describe/describe_test.go index 9754de721..44ab876ff 100644 --- a/internal/cmd/beta/public-ip/describe/describe_test.go +++ b/internal/cmd/beta/public-ip/describe/describe_test.go @@ -216,3 +216,30 @@ func TestBuildRequest(t *testing.T) { }) } } + +func TestOutputResult(t *testing.T) { + type args struct { + outputFormat string + publicIp iaas.PublicIp + } + tests := []struct { + name string + args args + wantErr bool + }{ + { + name: "empty", + args: args{}, + wantErr: false, + }, + } + p := print.NewPrinter() + p.Cmd = NewCmd(p) + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if err := outputResult(p, tt.args.outputFormat, tt.args.publicIp); (err != nil) != tt.wantErr { + t.Errorf("outputResult() error = %v, wantErr %v", err, tt.wantErr) + } + }) + } +} diff --git a/internal/cmd/beta/public-ip/disassociate/disassociate.go b/internal/cmd/beta/public-ip/disassociate/disassociate.go index 0ad28d773..eb8872d80 100644 --- a/internal/cmd/beta/public-ip/disassociate/disassociate.go +++ b/internal/cmd/beta/public-ip/disassociate/disassociate.go @@ -55,6 +55,8 @@ func NewCmd(p *print.Printer) *cobra.Command { if err != nil { p.Debug(print.ErrorLevel, "get public IP: %v", err) publicIpLabel = model.PublicIpId + } else if publicIpLabel == "" { + publicIpLabel = model.PublicIpId } if !model.AssumeYes { diff --git a/internal/cmd/beta/public-ip/list/list.go b/internal/cmd/beta/public-ip/list/list.go index 2293600aa..c071e5069 100644 --- a/internal/cmd/beta/public-ip/list/list.go +++ b/internal/cmd/beta/public-ip/list/list.go @@ -81,6 +81,8 @@ func NewCmd(p *print.Printer) *cobra.Command { if err != nil { p.Debug(print.ErrorLevel, "get project name: %v", err) projectLabel = model.ProjectId + } else if projectLabel == "" { + projectLabel = model.ProjectId } p.Info("No public IPs found for project %q\n", projectLabel) return nil diff --git a/internal/cmd/beta/public-ip/list/list_test.go b/internal/cmd/beta/public-ip/list/list_test.go index b7f39f61d..0644d83e8 100644 --- a/internal/cmd/beta/public-ip/list/list_test.go +++ b/internal/cmd/beta/public-ip/list/list_test.go @@ -202,3 +202,30 @@ func TestBuildRequest(t *testing.T) { }) } } + +func TestOutputResult(t *testing.T) { + type args struct { + outputFormat string + publicIps []iaas.PublicIp + } + tests := []struct { + name string + args args + wantErr bool + }{ + { + name: "empty", + args: args{}, + wantErr: false, + }, + } + p := print.NewPrinter() + p.Cmd = NewCmd(p) + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if err := outputResult(p, tt.args.outputFormat, tt.args.publicIps); (err != nil) != tt.wantErr { + t.Errorf("outputResult() error = %v, wantErr %v", err, tt.wantErr) + } + }) + } +}