def run
require 'fog'
require 'highline'
require 'net/ssh/multi'
require 'readline'
$stdout.sync = true
connection = Fog::AWS::EC2.new(
:aws_access_key_id => Chef::Config[:knife][:aws_access_key_id],
:aws_secret_access_key => Chef::Config[:knife][:aws_secret_access_key],
:region => config[:region]
)
server_list = [
h.color('Instance ID', :bold),
h.color('Public IP', :bold),
h.color('Private IP', :bold),
h.color('Flavor', :bold),
h.color('Image', :bold),
h.color('Security Groups', :bold),
h.color('State', :bold)
]
connection.servers.all.each do |server|
server_list << server.id.to_s
server_list << (server.ip_address == nil ? "" : server.ip_address)
server_list << (server.private_ip_address == nil ? "" : server.private_ip_address)
server_list << (server.flavor_id == nil ? "" : server.flavor_id)
server_list << (server.image_id == nil ? "" : server.image_id)
server_list << server.groups.join(", ")
server_list << server.state
end
puts h.list(server_list, :columns_across, 7)
end