lib/cloudstack-cli/commands/template.rb in cloudstack-cli-1.4.1 vs lib/cloudstack-cli/commands/template.rb in cloudstack-cli-1.4.2
- old
+ new
@@ -4,30 +4,39 @@
option :project
option :zone
option :type,
enum: %w(featured self self-executable executable community all),
default: "featured"
+ option :format, default: "table",
+ enum: %w(table json yaml)
def list(type='featured')
resolve_project
resolve_zone
options[:template_filter] = options[:type]
templates = client.list_templates(options)
if templates.size < 1
puts "No templates found."
else
- table = [%w(Name Created Zone Featured Public Format)]
- templates.each do |template|
- table << [
- template['name'],
- Time.parse(template['created']).strftime("%F"),
- template['zonename'],
- template['isfeatured'],
- template['ispublic'],
- template['format']
- ]
+ case options[:format].to_sym
+ when :yaml
+ puts({templates: templates}.to_yaml)
+ when :json
+ puts JSON.pretty_generate(templates: templates)
+ else
+ table = [%w(Name Created Zone Featured Public Format)]
+ templates.each do |template|
+ table << [
+ template['name'],
+ Time.parse(template['created']).strftime("%F"),
+ template['zonename'],
+ template['isfeatured'],
+ template['ispublic'],
+ template['format']
+ ]
+ end
+ print_table(table)
+ say "Total number of templates: #{templates.size}"
end
- print_table(table)
- say "Total number of templates: #{templates.size}"
end
end
end