Skip to content

Commit

Permalink
Filter ske options json and yaml output (#352)
Browse files Browse the repository at this point in the history
  • Loading branch information
vicentepinto98 authored May 28, 2024
1 parent f24268a commit 11fd728
Showing 1 changed file with 54 additions and 21 deletions.
75 changes: 54 additions & 21 deletions internal/cmd/ske/options/options.go
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,27 @@ func buildRequest(ctx context.Context, apiClient *ske.APIClient) ske.ApiListProv
}

func outputResult(p *print.Printer, model *inputModel, options *ske.ProviderOptions) error {
// filter output based on the flags
if !model.AvailabilityZones {
options.AvailabilityZones = nil
}

if !model.KubernetesVersions {
options.KubernetesVersions = nil
}

if !model.MachineImages {
options.MachineImages = nil
}

if !model.MachineTypes {
options.MachineTypes = nil
}

if !model.VolumeTypes {
options.VolumeTypes = nil
}

switch model.OutputFormat {
case print.JSONOutputFormat:
details, err := json.MarshalIndent(options, "", " ")
Expand All @@ -152,33 +173,25 @@ func outputResult(p *print.Printer, model *inputModel, options *ske.ProviderOpti

return nil
default:
return outputResultAsTable(p, model, options)
return outputResultAsTable(p, options)
}
}

func outputResultAsTable(p *print.Printer, model *inputModel, options *ske.ProviderOptions) error {
func outputResultAsTable(p *print.Printer, options *ske.ProviderOptions) error {
content := ""
if model.AvailabilityZones {
content += renderAvailabilityZones(options)
}
if model.KubernetesVersions {
kubernetesVersionsRendered, err := renderKubernetesVersions(options)
if err != nil {
return fmt.Errorf("render Kubernetes versions: %w", err)
}
content += kubernetesVersionsRendered
}
if model.MachineImages {
content += renderMachineImages(options)
}
if model.MachineTypes {
content += renderMachineTypes(options)
}
if model.VolumeTypes {
content += renderVolumeTypes(options)
content += renderAvailabilityZones(options)

kubernetesVersionsRendered, err := renderKubernetesVersions(options)
if err != nil {
return fmt.Errorf("render Kubernetes versions: %w", err)
}
content += kubernetesVersionsRendered

content += renderMachineImages(options)
content += renderMachineTypes(options)
content += renderVolumeTypes(options)

err := p.PagerDisplay(content)
err = p.PagerDisplay(content)
if err != nil {
return fmt.Errorf("display output: %w", err)
}
Expand All @@ -187,6 +200,10 @@ func outputResultAsTable(p *print.Printer, model *inputModel, options *ske.Provi
}

func renderAvailabilityZones(resp *ske.ProviderOptions) string {
if resp.AvailabilityZones == nil {
return ""
}

zones := *resp.AvailabilityZones

table := tables.NewTable()
Expand All @@ -200,6 +217,10 @@ func renderAvailabilityZones(resp *ske.ProviderOptions) string {
}

func renderKubernetesVersions(resp *ske.ProviderOptions) (string, error) {
if resp.KubernetesVersions == nil {
return "", nil
}

versions := *resp.KubernetesVersions

table := tables.NewTable()
Expand All @@ -221,6 +242,10 @@ func renderKubernetesVersions(resp *ske.ProviderOptions) (string, error) {
}

func renderMachineImages(resp *ske.ProviderOptions) string {
if resp.MachineImages == nil {
return ""
}

images := *resp.MachineImages

table := tables.NewTable()
Expand Down Expand Up @@ -250,6 +275,10 @@ func renderMachineImages(resp *ske.ProviderOptions) string {
}

func renderMachineTypes(resp *ske.ProviderOptions) string {
if resp.MachineTypes == nil {
return ""
}

types := *resp.MachineTypes

table := tables.NewTable()
Expand All @@ -263,6 +292,10 @@ func renderMachineTypes(resp *ske.ProviderOptions) string {
}

func renderVolumeTypes(resp *ske.ProviderOptions) string {
if resp.VolumeTypes == nil {
return ""
}

types := *resp.VolumeTypes

table := tables.NewTable()
Expand Down

0 comments on commit 11fd728

Please sign in to comment.