lib/cloudstack-cli/commands/cluster.rb in cloudstack-cli-1.4.1 vs lib/cloudstack-cli/commands/cluster.rb in cloudstack-cli-1.4.2

- old
+ new

@@ -1,24 +1,33 @@ class Cluster < CloudstackCli::Base desc 'list', 'list clusters' option :zone, desc: "lists clusters by zone" + option :format, default: "table", + enum: %w(table json yaml) def list resolve_zone if options[:zone] clusters = client.list_clusters(options) if clusters.size < 1 say "No clusters found." else - table = [%w(Name Pod_Name Type Zone State)] - clusters.each do |cluster| - table << [ - cluster['name'], cluster['podname'], - cluster['hypervisortype'], cluster['zonename'], - cluster['managedstate'] - ] + case options[:format].to_sym + when :yaml + puts({clusters: clusters}.to_yaml) + when :json + puts JSON.pretty_generate(clusters: clusters) + else + table = [%w(Name Pod_Name Type Zone State)] + clusters.each do |cluster| + table << [ + cluster['name'], cluster['podname'], + cluster['hypervisortype'], cluster['zonename'], + cluster['managedstate'] + ] + end + print_table table + say "Total number of clusters: #{clusters.size}" end - print_table table - say "Total number of clusters: #{clusters.size}" end end end