From f32822164326c685a7eddedab08ab5b51d9023d8 Mon Sep 17 00:00:00 2001 From: Vasu1105 Date: Fri, 13 Nov 2015 16:27:07 +0530 Subject: [PATCH] server list in json format --- lib/chef/knife/ec2_server_list.rb | 74 ++++++++++++++++--------------- 1 file changed, 39 insertions(+), 35 deletions(-) diff --git a/lib/chef/knife/ec2_server_list.rb b/lib/chef/knife/ec2_server_list.rb index 8e9e5ef0..3b7ad50a 100644 --- a/lib/chef/knife/ec2_server_list.rb +++ b/lib/chef/knife/ec2_server_list.rb @@ -117,51 +117,55 @@ def run ui.warn "No region was specified in knife.rb or as an argument. The default region, us-east-1, will be used:" end - connection.servers.all.each do |server| - server_list << server.id.to_s + servers = connection.servers + if (config[:format] == 'summary') + servers.each do |server| + server_list << server.id.to_s - if config[:name] - server_list << server.tags["Name"].to_s - end + if config[:name] + server_list << server.tags["Name"].to_s + end - server_list << server.public_ip_address.to_s - server_list << server.private_ip_address.to_s - server_list << server.flavor_id.to_s + server_list << server.public_ip_address.to_s + server_list << server.private_ip_address.to_s + server_list << server.flavor_id.to_s - if config[:az] - server_list << ui.color( - server.availability_zone.to_s, - azcolor(server.availability_zone.to_s) - ) - end + if config[:az] + server_list << ui.color( + server.availability_zone.to_s, + azcolor(server.availability_zone.to_s) + ) + end - server_list << server.image_id.to_s - server_list << server.key_name.to_s - server_list << server.groups.join(", ") + server_list << server.image_id.to_s + server_list << server.key_name.to_s + server_list << server.groups.join(", ") - if config[:tags] - config[:tags].split(",").each do |tag_name| - server_list << server.tags[tag_name].to_s + if config[:tags] + config[:tags].split(",").each do |tag_name| + server_list << server.tags[tag_name].to_s + end end - end - server_list << iam_name_from_profile(server.iam_instance_profile) - - server_list << begin - state = server.state.to_s.downcase - case state - when 'shutting-down','terminated','stopping','stopped' - ui.color(state, :red) - when 'pending' - ui.color(state, :yellow) - else - ui.color(state, :green) + server_list << iam_name_from_profile(server.iam_instance_profile) + + server_list << begin + state = server.state.to_s.downcase + case state + when 'shutting-down','terminated','stopping','stopped' + ui.color(state, :red) + when 'pending' + ui.color(state, :yellow) + else + ui.color(state, :green) + end end end - end - - puts ui.list(server_list, :uneven_columns_across, output_column_count) + puts ui.list(server_list, :uneven_columns_across, output_column_count) + else + output(format_for_display(servers)) + end end end end