Skip to content

Commit 11fd728

Browse files
Filter ske options json and yaml output (#352)
1 parent f24268a commit 11fd728

File tree

1 file changed

+54
-21
lines changed

1 file changed

+54
-21
lines changed

internal/cmd/ske/options/options.go

Lines changed: 54 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,27 @@ func buildRequest(ctx context.Context, apiClient *ske.APIClient) ske.ApiListProv
135135
}
136136

137137
func outputResult(p *print.Printer, model *inputModel, options *ske.ProviderOptions) error {
138+
// filter output based on the flags
139+
if !model.AvailabilityZones {
140+
options.AvailabilityZones = nil
141+
}
142+
143+
if !model.KubernetesVersions {
144+
options.KubernetesVersions = nil
145+
}
146+
147+
if !model.MachineImages {
148+
options.MachineImages = nil
149+
}
150+
151+
if !model.MachineTypes {
152+
options.MachineTypes = nil
153+
}
154+
155+
if !model.VolumeTypes {
156+
options.VolumeTypes = nil
157+
}
158+
138159
switch model.OutputFormat {
139160
case print.JSONOutputFormat:
140161
details, err := json.MarshalIndent(options, "", " ")
@@ -152,33 +173,25 @@ func outputResult(p *print.Printer, model *inputModel, options *ske.ProviderOpti
152173

153174
return nil
154175
default:
155-
return outputResultAsTable(p, model, options)
176+
return outputResultAsTable(p, options)
156177
}
157178
}
158179

159-
func outputResultAsTable(p *print.Printer, model *inputModel, options *ske.ProviderOptions) error {
180+
func outputResultAsTable(p *print.Printer, options *ske.ProviderOptions) error {
160181
content := ""
161-
if model.AvailabilityZones {
162-
content += renderAvailabilityZones(options)
163-
}
164-
if model.KubernetesVersions {
165-
kubernetesVersionsRendered, err := renderKubernetesVersions(options)
166-
if err != nil {
167-
return fmt.Errorf("render Kubernetes versions: %w", err)
168-
}
169-
content += kubernetesVersionsRendered
170-
}
171-
if model.MachineImages {
172-
content += renderMachineImages(options)
173-
}
174-
if model.MachineTypes {
175-
content += renderMachineTypes(options)
176-
}
177-
if model.VolumeTypes {
178-
content += renderVolumeTypes(options)
182+
content += renderAvailabilityZones(options)
183+
184+
kubernetesVersionsRendered, err := renderKubernetesVersions(options)
185+
if err != nil {
186+
return fmt.Errorf("render Kubernetes versions: %w", err)
179187
}
188+
content += kubernetesVersionsRendered
189+
190+
content += renderMachineImages(options)
191+
content += renderMachineTypes(options)
192+
content += renderVolumeTypes(options)
180193

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

189202
func renderAvailabilityZones(resp *ske.ProviderOptions) string {
203+
if resp.AvailabilityZones == nil {
204+
return ""
205+
}
206+
190207
zones := *resp.AvailabilityZones
191208

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

202219
func renderKubernetesVersions(resp *ske.ProviderOptions) (string, error) {
220+
if resp.KubernetesVersions == nil {
221+
return "", nil
222+
}
223+
203224
versions := *resp.KubernetesVersions
204225

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

223244
func renderMachineImages(resp *ske.ProviderOptions) string {
245+
if resp.MachineImages == nil {
246+
return ""
247+
}
248+
224249
images := *resp.MachineImages
225250

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

252277
func renderMachineTypes(resp *ske.ProviderOptions) string {
278+
if resp.MachineTypes == nil {
279+
return ""
280+
}
281+
253282
types := *resp.MachineTypes
254283

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

265294
func renderVolumeTypes(resp *ske.ProviderOptions) string {
295+
if resp.VolumeTypes == nil {
296+
return ""
297+
}
298+
266299
types := *resp.VolumeTypes
267300

268301
table := tables.NewTable()

0 commit comments

Comments
 (0)