diff --git a/internal/cmd/beta/network-area/create/create.go b/internal/cmd/beta/network-area/create/create.go index 2df562c6d..0987e96c4 100644 --- a/internal/cmd/beta/network-area/create/create.go +++ b/internal/cmd/beta/network-area/create/create.go @@ -83,6 +83,8 @@ func NewCmd(p *print.Printer) *cobra.Command { if err != nil { p.Debug(print.ErrorLevel, "get organization name: %v", err) orgLabel = *model.OrganizationId + } else if orgLabel == "" { + orgLabel = *model.OrganizationId } } else { p.Debug(print.ErrorLevel, "configure resource manager client: %v", err) @@ -103,7 +105,7 @@ func NewCmd(p *print.Printer) *cobra.Command { return fmt.Errorf("create network area: %w", err) } - return outputResult(p, model, orgLabel, resp) + return outputResult(p, model.OutputFormat, orgLabel, resp) }, } configureFlags(cmd) @@ -178,8 +180,11 @@ func buildRequest(ctx context.Context, model *inputModel, apiClient *iaas.APICli return req.CreateNetworkAreaPayload(payload) } -func outputResult(p *print.Printer, model *inputModel, orgLabel string, networkArea *iaas.NetworkArea) error { - switch model.OutputFormat { +func outputResult(p *print.Printer, outputFormat, orgLabel string, networkArea *iaas.NetworkArea) error { + if networkArea == nil { + return fmt.Errorf("network area is nil") + } + switch outputFormat { case print.JSONOutputFormat: details, err := json.MarshalIndent(networkArea, "", " ") if err != nil { diff --git a/internal/cmd/beta/network-area/create/create_test.go b/internal/cmd/beta/network-area/create/create_test.go index 2912000db..b6a34625f 100644 --- a/internal/cmd/beta/network-area/create/create_test.go +++ b/internal/cmd/beta/network-area/create/create_test.go @@ -246,3 +246,38 @@ func TestBuildRequest(t *testing.T) { }) } } + +func Test_outputResult(t *testing.T) { + type args struct { + outputFormat string + orgLabel string + networkArea *iaas.NetworkArea + } + tests := []struct { + name string + args args + wantErr bool + }{ + { + name: "empty", + args: args{}, + wantErr: true, + }, + { + name: "set empty network area", + args: args{ + networkArea: &iaas.NetworkArea{}, + }, + 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.orgLabel, tt.args.networkArea); (err != nil) != tt.wantErr { + t.Errorf("outputResult() error = %v, wantErr %v", err, tt.wantErr) + } + }) + } +} diff --git a/internal/cmd/beta/network-area/delete/delete.go b/internal/cmd/beta/network-area/delete/delete.go index db4ddd117..3952efc42 100644 --- a/internal/cmd/beta/network-area/delete/delete.go +++ b/internal/cmd/beta/network-area/delete/delete.go @@ -62,6 +62,8 @@ func NewCmd(p *print.Printer) *cobra.Command { if err != nil { p.Debug(print.ErrorLevel, "get network area name: %v", err) networkAreaLabel = model.AreaId + } else if networkAreaLabel == "" { + networkAreaLabel = model.AreaId } if !model.AssumeYes { diff --git a/internal/cmd/beta/network-area/describe/describe.go b/internal/cmd/beta/network-area/describe/describe.go index 13d2707d4..51be436b9 100644 --- a/internal/cmd/beta/network-area/describe/describe.go +++ b/internal/cmd/beta/network-area/describe/describe.go @@ -127,6 +127,9 @@ func buildRequest(ctx context.Context, model *inputModel, apiClient *iaas.APICli } func outputResult(p *print.Printer, outputFormat string, networkArea *iaas.NetworkArea, attachedProjects []string) error { + if networkArea == nil { + return fmt.Errorf("network area is nil") + } switch outputFormat { case print.JSONOutputFormat: details, err := json.MarshalIndent(networkArea, "", " ") @@ -146,16 +149,19 @@ func outputResult(p *print.Printer, outputFormat string, networkArea *iaas.Netwo return nil default: var routes []string - if networkArea.Ipv4.Routes != nil { - for _, route := range *networkArea.Ipv4.Routes { - routes = append(routes, fmt.Sprintf("next hop: %s\nprefix: %s", *route.Nexthop, *route.Prefix)) + var networkRanges []string + + if networkArea.Ipv4 != nil { + if networkArea.Ipv4.Routes != nil { + for _, route := range *networkArea.Ipv4.Routes { + routes = append(routes, fmt.Sprintf("next hop: %s\nprefix: %s", *route.Nexthop, *route.Prefix)) + } } - } - var networkRanges []string - if networkArea.Ipv4.NetworkRanges != nil { - for _, networkRange := range *networkArea.Ipv4.NetworkRanges { - networkRanges = append(networkRanges, *networkRange.Prefix) + if networkArea.Ipv4.NetworkRanges != nil { + for _, networkRange := range *networkArea.Ipv4.NetworkRanges { + networkRanges = append(networkRanges, *networkRange.Prefix) + } } } diff --git a/internal/cmd/beta/network-area/describe/describe_test.go b/internal/cmd/beta/network-area/describe/describe_test.go index 98975e10e..24c18cb06 100644 --- a/internal/cmd/beta/network-area/describe/describe_test.go +++ b/internal/cmd/beta/network-area/describe/describe_test.go @@ -227,3 +227,38 @@ func TestBuildRequest(t *testing.T) { }) } } + +func TestOutputResult(t *testing.T) { + type args struct { + outputFormat string + networkArea *iaas.NetworkArea + attachedProjects []string + } + tests := []struct { + name string + args args + wantErr bool + }{ + { + name: "empty", + args: args{}, + wantErr: true, + }, + { + name: "set networkArea", + args: args{ + networkArea: &iaas.NetworkArea{}, + }, + 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.networkArea, tt.args.attachedProjects); (err != nil) != tt.wantErr { + t.Errorf("outputResult() error = %v, wantErr %v", err, tt.wantErr) + } + }) + } +} diff --git a/internal/cmd/beta/network-area/list/list.go b/internal/cmd/beta/network-area/list/list.go index cb4916a79..2280da2ad 100644 --- a/internal/cmd/beta/network-area/list/list.go +++ b/internal/cmd/beta/network-area/list/list.go @@ -80,6 +80,8 @@ func NewCmd(p *print.Printer) *cobra.Command { if err != nil { p.Debug(print.ErrorLevel, "get organization name: %v", err) orgLabel = *model.OrganizationId + } else if orgLabel == "" { + orgLabel = *model.OrganizationId } } else { p.Debug(print.ErrorLevel, "configure resource manager client: %v", err) diff --git a/internal/cmd/beta/network-area/list/list_test.go b/internal/cmd/beta/network-area/list/list_test.go index 46282da26..01d94cb37 100644 --- a/internal/cmd/beta/network-area/list/list_test.go +++ b/internal/cmd/beta/network-area/list/list_test.go @@ -186,3 +186,44 @@ func TestBuildRequest(t *testing.T) { }) } } + +func TestOutputResult(t *testing.T) { + type args struct { + outputFormat string + networkAreas []iaas.NetworkArea + } + tests := []struct { + name string + args args + wantErr bool + }{ + { + name: "empty", + args: args{}, + wantErr: false, + }, + { + name: "empty network areas slice", + args: args{ + networkAreas: []iaas.NetworkArea{}, + }, + wantErr: false, + }, + { + name: "empty network area in network areas slice", + args: args{ + networkAreas: []iaas.NetworkArea{{}}, + }, + 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.networkAreas); (err != nil) != tt.wantErr { + t.Errorf("outputResult() error = %v, wantErr %v", err, tt.wantErr) + } + }) + } +} diff --git a/internal/cmd/beta/network-area/network-range/create/create.go b/internal/cmd/beta/network-area/network-range/create/create.go index 812ea18a7..297ee0e7f 100644 --- a/internal/cmd/beta/network-area/network-range/create/create.go +++ b/internal/cmd/beta/network-area/network-range/create/create.go @@ -88,7 +88,7 @@ func NewCmd(p *print.Printer) *cobra.Command { return err } - return outputResult(p, model, networkAreaLabel, networkRange) + return outputResult(p, model.OutputFormat, networkAreaLabel, networkRange) }, } configureFlags(cmd) @@ -138,8 +138,8 @@ func buildRequest(ctx context.Context, model *inputModel, apiClient *iaas.APICli return req.CreateNetworkAreaRangePayload(payload) } -func outputResult(p *print.Printer, model *inputModel, networkAreaLabel string, networkRange iaas.NetworkRange) error { - switch model.OutputFormat { +func outputResult(p *print.Printer, outputFormat, networkAreaLabel string, networkRange iaas.NetworkRange) error { + switch outputFormat { case print.JSONOutputFormat: details, err := json.MarshalIndent(networkRange, "", " ") if err != nil { diff --git a/internal/cmd/beta/network-area/network-range/create/create_test.go b/internal/cmd/beta/network-area/network-range/create/create_test.go index 028259648..f3eb51bf1 100644 --- a/internal/cmd/beta/network-area/network-range/create/create_test.go +++ b/internal/cmd/beta/network-area/network-range/create/create_test.go @@ -215,3 +215,38 @@ func TestBuildRequest(t *testing.T) { }) } } + +func TestOutputResult(t *testing.T) { + type args struct { + outputFormat string + networkAreaLabel string + networkRange iaas.NetworkRange + } + tests := []struct { + name string + args args + wantErr bool + }{ + { + name: "empty", + args: args{}, + wantErr: false, + }, + { + name: "empty network range", + args: args{ + networkRange: iaas.NetworkRange{}, + }, + 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.networkAreaLabel, tt.args.networkRange); (err != nil) != tt.wantErr { + t.Errorf("outputResult() error = %v, wantErr %v", err, tt.wantErr) + } + }) + } +} diff --git a/internal/cmd/beta/network-area/network-range/delete/delete.go b/internal/cmd/beta/network-area/network-range/delete/delete.go index 90fb8a486..b7740dd9e 100644 --- a/internal/cmd/beta/network-area/network-range/delete/delete.go +++ b/internal/cmd/beta/network-area/network-range/delete/delete.go @@ -60,11 +60,15 @@ func NewCmd(p *print.Printer) *cobra.Command { if err != nil { p.Debug(print.ErrorLevel, "get network area name: %v", err) networkAreaLabel = *model.NetworkAreaId + } else if networkAreaLabel == "" { + networkAreaLabel = *model.NetworkAreaId } networkRangeLabel, err := iaasUtils.GetNetworkRangePrefix(ctx, apiClient, *model.OrganizationId, *model.NetworkAreaId, model.NetworkRangeId) if err != nil { p.Debug(print.ErrorLevel, "get network range prefix: %v", err) networkRangeLabel = model.NetworkRangeId + } else if networkRangeLabel == "" { + networkRangeLabel = model.NetworkRangeId } if !model.AssumeYes { diff --git a/internal/cmd/beta/network-area/network-range/describe/describe.go b/internal/cmd/beta/network-area/network-range/describe/describe.go index f97fc0b57..a4c57f7eb 100644 --- a/internal/cmd/beta/network-area/network-range/describe/describe.go +++ b/internal/cmd/beta/network-area/network-range/describe/describe.go @@ -109,6 +109,9 @@ func buildRequest(ctx context.Context, model *inputModel, apiClient *iaas.APICli } func outputResult(p *print.Printer, outputFormat string, networkRange *iaas.NetworkRange) error { + if networkRange == nil { + return fmt.Errorf("network range is nil") + } switch outputFormat { case print.JSONOutputFormat: details, err := json.MarshalIndent(networkRange, "", " ") diff --git a/internal/cmd/beta/network-area/network-range/describe/describe_test.go b/internal/cmd/beta/network-area/network-range/describe/describe_test.go index bce857d1c..c03229238 100644 --- a/internal/cmd/beta/network-area/network-range/describe/describe_test.go +++ b/internal/cmd/beta/network-area/network-range/describe/describe_test.go @@ -234,3 +234,37 @@ func TestBuildRequest(t *testing.T) { }) } } + +func TestOutputResult(t *testing.T) { + type args struct { + outputFormat string + networkRange *iaas.NetworkRange + } + tests := []struct { + name string + args args + wantErr bool + }{ + { + name: "empty", + args: args{}, + wantErr: true, + }, + { + name: "set networkRange", + args: args{ + networkRange: &iaas.NetworkRange{}, + }, + 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.networkRange); (err != nil) != tt.wantErr { + t.Errorf("outputResult() error = %v, wantErr %v", err, tt.wantErr) + } + }) + } +} diff --git a/internal/cmd/beta/network-area/network-range/list/list.go b/internal/cmd/beta/network-area/network-range/list/list.go index e2115d9a7..faace6c9c 100644 --- a/internal/cmd/beta/network-area/network-range/list/list.go +++ b/internal/cmd/beta/network-area/network-range/list/list.go @@ -15,6 +15,7 @@ import ( "github.com/stackitcloud/stackit-cli/internal/pkg/services/iaas/client" iaasUtils "github.com/stackitcloud/stackit-cli/internal/pkg/services/iaas/utils" "github.com/stackitcloud/stackit-cli/internal/pkg/tables" + "github.com/stackitcloud/stackit-cli/internal/pkg/utils" "github.com/stackitcloud/stackit-sdk-go/services/iaas" "github.com/spf13/cobra" @@ -79,6 +80,8 @@ func NewCmd(p *print.Printer) *cobra.Command { if err != nil { p.Debug(print.ErrorLevel, "get organization name: %v", err) networkAreaLabel = *model.NetworkAreaId + } else if networkAreaLabel == "" { + networkAreaLabel = *model.NetworkAreaId } p.Info("No network ranges found for SNA %q\n", networkAreaLabel) return nil @@ -162,7 +165,7 @@ func outputResult(p *print.Printer, outputFormat string, networkRanges []iaas.Ne table.SetHeader("ID", "Network Range") for _, networkRange := range networkRanges { - table.AddRow(*networkRange.NetworkRangeId, *networkRange.Prefix) + table.AddRow(utils.PtrString(networkRange.NetworkRangeId), utils.PtrString(networkRange.Prefix)) } p.Outputln(table.Render()) diff --git a/internal/cmd/beta/network-area/network-range/list/list_test.go b/internal/cmd/beta/network-area/network-range/list/list_test.go index 07ca84414..26efc608c 100644 --- a/internal/cmd/beta/network-area/network-range/list/list_test.go +++ b/internal/cmd/beta/network-area/network-range/list/list_test.go @@ -210,3 +210,44 @@ func TestBuildRequest(t *testing.T) { }) } } + +func TestOutputResult(t *testing.T) { + type args struct { + outputFormat string + networkRanges []iaas.NetworkRange + } + tests := []struct { + name string + args args + wantErr bool + }{ + { + name: "empty", + args: args{}, + wantErr: false, + }, + { + name: "empty network ranges slice", + args: args{ + networkRanges: []iaas.NetworkRange{}, + }, + wantErr: false, + }, + { + name: "empty network range in network ranges slice", + args: args{ + networkRanges: []iaas.NetworkRange{{}}, + }, + 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.networkRanges); (err != nil) != tt.wantErr { + t.Errorf("outputResult() error = %v, wantErr %v", err, tt.wantErr) + } + }) + } +} diff --git a/internal/cmd/beta/network-area/route/create/create.go b/internal/cmd/beta/network-area/route/create/create.go index e1b330329..d73c337c3 100644 --- a/internal/cmd/beta/network-area/route/create/create.go +++ b/internal/cmd/beta/network-area/route/create/create.go @@ -73,6 +73,8 @@ func NewCmd(p *print.Printer) *cobra.Command { if err != nil { p.Debug(print.ErrorLevel, "get network area name: %v", err) networkAreaLabel = *model.NetworkAreaId + } else if networkAreaLabel == "" { + networkAreaLabel = *model.NetworkAreaId } if !model.AssumeYes { @@ -99,7 +101,7 @@ func NewCmd(p *print.Printer) *cobra.Command { return err } - return outputResult(p, model, networkAreaLabel, route) + return outputResult(p, model.OutputFormat, networkAreaLabel, route) }, } configureFlags(cmd) @@ -165,8 +167,8 @@ func buildRequest(ctx context.Context, model *inputModel, apiClient *iaas.APICli return req.CreateNetworkAreaRoutePayload(payload) } -func outputResult(p *print.Printer, model *inputModel, networkAreaLabel string, route iaas.Route) error { - switch model.OutputFormat { +func outputResult(p *print.Printer, outputFormat, networkAreaLabel string, route iaas.Route) error { + switch outputFormat { case print.JSONOutputFormat: details, err := json.MarshalIndent(route, "", " ") if err != nil { diff --git a/internal/cmd/beta/network-area/route/create/create_test.go b/internal/cmd/beta/network-area/route/create/create_test.go index b106a937b..4ffca7666 100644 --- a/internal/cmd/beta/network-area/route/create/create_test.go +++ b/internal/cmd/beta/network-area/route/create/create_test.go @@ -261,3 +261,38 @@ func TestBuildRequest(t *testing.T) { }) } } + +func TestOutputResult(t *testing.T) { + type args struct { + outputFormat string + networkAreaLabel string + route iaas.Route + } + tests := []struct { + name string + args args + wantErr bool + }{ + { + name: "empty", + args: args{}, + wantErr: false, + }, + { + name: "empty route", + args: args{ + route: iaas.Route{}, + }, + 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.networkAreaLabel, tt.args.route); (err != nil) != tt.wantErr { + t.Errorf("outputResult() error = %v, wantErr %v", err, tt.wantErr) + } + }) + } +} diff --git a/internal/cmd/beta/network-area/route/delete/delete.go b/internal/cmd/beta/network-area/route/delete/delete.go index 48dad6918..0626c67a6 100644 --- a/internal/cmd/beta/network-area/route/delete/delete.go +++ b/internal/cmd/beta/network-area/route/delete/delete.go @@ -60,6 +60,8 @@ func NewCmd(p *print.Printer) *cobra.Command { if err != nil { p.Debug(print.ErrorLevel, "get network area name: %v", err) networkAreaLabel = *model.NetworkAreaId + } else if networkAreaLabel == "" { + networkAreaLabel = *model.NetworkAreaId } if !model.AssumeYes { diff --git a/internal/cmd/beta/network-area/route/describe/describe.go b/internal/cmd/beta/network-area/route/describe/describe.go index 2e99f8c67..fa03a07b2 100644 --- a/internal/cmd/beta/network-area/route/describe/describe.go +++ b/internal/cmd/beta/network-area/route/describe/describe.go @@ -70,7 +70,7 @@ func NewCmd(p *print.Printer) *cobra.Command { return fmt.Errorf("describe static route: %w", err) } - return outputResult(p, model.OutputFormat, resp) + return outputResult(p, model.OutputFormat, *resp) }, } configureFlags(cmd) @@ -113,7 +113,7 @@ func buildRequest(ctx context.Context, model *inputModel, apiClient *iaas.APICli return req } -func outputResult(p *print.Printer, outputFormat string, route *iaas.Route) error { +func outputResult(p *print.Printer, outputFormat string, route iaas.Route) error { switch outputFormat { case print.JSONOutputFormat: details, err := json.MarshalIndent(route, "", " ") diff --git a/internal/cmd/beta/network-area/route/describe/describe_test.go b/internal/cmd/beta/network-area/route/describe/describe_test.go index 08fba5d5f..d052d69f9 100644 --- a/internal/cmd/beta/network-area/route/describe/describe_test.go +++ b/internal/cmd/beta/network-area/route/describe/describe_test.go @@ -234,3 +234,37 @@ func TestBuildRequest(t *testing.T) { }) } } + +func TestOutputResult(t *testing.T) { + type args struct { + outputFormat string + route iaas.Route + } + tests := []struct { + name string + args args + wantErr bool + }{ + { + name: "empty", + args: args{}, + wantErr: false, + }, + { + name: "empty route", + args: args{ + route: iaas.Route{}, + }, + 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.route); (err != nil) != tt.wantErr { + t.Errorf("outputResult() error = %v, wantErr %v", err, tt.wantErr) + } + }) + } +} diff --git a/internal/cmd/beta/network-area/route/list/list.go b/internal/cmd/beta/network-area/route/list/list.go index c948e271a..c7e4f46f0 100644 --- a/internal/cmd/beta/network-area/route/list/list.go +++ b/internal/cmd/beta/network-area/route/list/list.go @@ -79,6 +79,8 @@ func NewCmd(p *print.Printer) *cobra.Command { if err != nil { p.Debug(print.ErrorLevel, "get network area name: %v", err) networkAreaLabel = *model.NetworkAreaId + } else if networkAreaLabel == "" { + networkAreaLabel = *model.NetworkAreaId } p.Info("No static routes found for STACKIT Network Area %q\n", networkAreaLabel) return nil diff --git a/internal/cmd/beta/network-area/route/list/list_test.go b/internal/cmd/beta/network-area/route/list/list_test.go index 929ed0543..573b332a8 100644 --- a/internal/cmd/beta/network-area/route/list/list_test.go +++ b/internal/cmd/beta/network-area/route/list/list_test.go @@ -210,3 +210,44 @@ func TestBuildRequest(t *testing.T) { }) } } + +func TestOutputResult(t *testing.T) { + type args struct { + outputFormat string + routes []iaas.Route + } + tests := []struct { + name string + args args + wantErr bool + }{ + { + name: "empty", + args: args{}, + wantErr: false, + }, + { + name: "empty route slice", + args: args{ + routes: []iaas.Route{}, + }, + wantErr: false, + }, + { + name: "empty route in routes slice", + args: args{ + routes: []iaas.Route{{}}, + }, + 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.routes); (err != nil) != tt.wantErr { + t.Errorf("outputResult() error = %v, wantErr %v", err, tt.wantErr) + } + }) + } +} diff --git a/internal/cmd/beta/network-area/route/update/update.go b/internal/cmd/beta/network-area/route/update/update.go index 511f9ed4d..e378cdcf4 100644 --- a/internal/cmd/beta/network-area/route/update/update.go +++ b/internal/cmd/beta/network-area/route/update/update.go @@ -69,6 +69,8 @@ func NewCmd(p *print.Printer) *cobra.Command { if err != nil { p.Debug(print.ErrorLevel, "get network area name: %v", err) networkAreaLabel = *model.NetworkAreaId + } else if networkAreaLabel == "" { + networkAreaLabel = *model.NetworkAreaId } // Call API @@ -78,7 +80,7 @@ func NewCmd(p *print.Printer) *cobra.Command { return fmt.Errorf("create static route: %w", err) } - return outputResult(p, model, networkAreaLabel, *resp) + return outputResult(p, model.OutputFormat, networkAreaLabel, *resp) }, } configureFlags(cmd) @@ -141,8 +143,8 @@ func buildRequest(ctx context.Context, model *inputModel, apiClient *iaas.APICli return req } -func outputResult(p *print.Printer, model *inputModel, networkAreaLabel string, route iaas.Route) error { - switch model.OutputFormat { +func outputResult(p *print.Printer, outputFormat, networkAreaLabel string, route iaas.Route) error { + switch outputFormat { case print.JSONOutputFormat: details, err := json.MarshalIndent(route, "", " ") if err != nil { diff --git a/internal/cmd/beta/network-area/route/update/update_test.go b/internal/cmd/beta/network-area/route/update/update_test.go index f9b1ddd06..813deae4d 100644 --- a/internal/cmd/beta/network-area/route/update/update_test.go +++ b/internal/cmd/beta/network-area/route/update/update_test.go @@ -267,3 +267,38 @@ func TestBuildRequest(t *testing.T) { }) } } + +func TestOutputResult(t *testing.T) { + type args struct { + outputFormat string + networkAreaLabel string + route iaas.Route + } + tests := []struct { + name string + args args + wantErr bool + }{ + { + name: "empty", + args: args{}, + wantErr: false, + }, + { + name: "empty route", + args: args{ + route: iaas.Route{}, + }, + 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.networkAreaLabel, tt.args.route); (err != nil) != tt.wantErr { + t.Errorf("outputResult() error = %v, wantErr %v", err, tt.wantErr) + } + }) + } +} diff --git a/internal/cmd/beta/network-area/update/update.go b/internal/cmd/beta/network-area/update/update.go index a7d7bb722..7fe9f4602 100644 --- a/internal/cmd/beta/network-area/update/update.go +++ b/internal/cmd/beta/network-area/update/update.go @@ -75,6 +75,8 @@ func NewCmd(p *print.Printer) *cobra.Command { if err != nil { p.Debug(print.ErrorLevel, "get organization name: %v", err) orgLabel = *model.OrganizationId + } else if orgLabel == "" { + orgLabel = *model.OrganizationId } } else { p.Debug(print.ErrorLevel, "configure resource manager client: %v", err) @@ -95,7 +97,7 @@ func NewCmd(p *print.Printer) *cobra.Command { return fmt.Errorf("update network area: %w", err) } - return outputResult(p, model, orgLabel, resp) + return outputResult(p, model.OutputFormat, orgLabel, *resp) }, } configureFlags(cmd) @@ -160,8 +162,8 @@ func buildRequest(ctx context.Context, model *inputModel, apiClient *iaas.APICli return req.PartialUpdateNetworkAreaPayload(payload) } -func outputResult(p *print.Printer, model *inputModel, projectLabel string, networkArea *iaas.NetworkArea) error { - switch model.OutputFormat { +func outputResult(p *print.Printer, outputFormat, projectLabel string, networkArea iaas.NetworkArea) error { + switch outputFormat { case print.JSONOutputFormat: details, err := json.MarshalIndent(networkArea, "", " ") if err != nil { diff --git a/internal/cmd/beta/network-area/update/update_test.go b/internal/cmd/beta/network-area/update/update_test.go index f91e0b583..2d1581b12 100644 --- a/internal/cmd/beta/network-area/update/update_test.go +++ b/internal/cmd/beta/network-area/update/update_test.go @@ -266,3 +266,38 @@ func TestBuildRequest(t *testing.T) { }) } } + +func TestOutputResult(t *testing.T) { + type args struct { + outputFormat string + projectLabel string + networkArea iaas.NetworkArea + } + tests := []struct { + name string + args args + wantErr bool + }{ + { + name: "empty", + args: args{}, + wantErr: false, + }, + { + name: "empty network area", + args: args{ + networkArea: iaas.NetworkArea{}, + }, + 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.networkArea); (err != nil) != tt.wantErr { + t.Errorf("outputResult() error = %v, wantErr %v", err, tt.wantErr) + } + }) + } +}