module Furikake::Resources::Ec2
Public Class Methods
get_resources()
click to toggle source
# File lib/furikake/resources/ec2.rb, line 21 def get_resources ec2 = Aws::EC2::Client.new params = {} instances = [] loop do res = ec2.describe_instances(params) res.reservations.each do |r| r.instances.each do |i| instance = [] instance << 'N/A' if i.tags.map(&:to_h).all? { |h| h[:key] != 'Name' } i.tags.each do |tag| instance << tag.value if tag.key == 'Name' end instance << i.instance_id instance << i.instance_type instance << i.placement.availability_zone instance << i.private_ip_address if i.public_ip_address.nil? instance << ' ' else instance << i.public_ip_address end instance << i.state.name instances << instance end end break if res.next_token.nil? params[:next_token] = res.next_token end instances end
report(format = nil)
click to toggle source
# File lib/furikake/resources/ec2.rb, line 4 def report(format = nil) instance = get_resources contents = { title: 'EC2', resources: [ { subtitle: '', header: ['Name', 'Instance ID', 'Instance Type', 'Availability Zone', 'Private IP Address', 'Public IP Address', 'State'], resource: instance } ] } Furikake::Formatter.shaping(format, contents) end
Private Instance Methods
get_resources()
click to toggle source
# File lib/furikake/resources/ec2.rb, line 21 def get_resources ec2 = Aws::EC2::Client.new params = {} instances = [] loop do res = ec2.describe_instances(params) res.reservations.each do |r| r.instances.each do |i| instance = [] instance << 'N/A' if i.tags.map(&:to_h).all? { |h| h[:key] != 'Name' } i.tags.each do |tag| instance << tag.value if tag.key == 'Name' end instance << i.instance_id instance << i.instance_type instance << i.placement.availability_zone instance << i.private_ip_address if i.public_ip_address.nil? instance << ' ' else instance << i.public_ip_address end instance << i.state.name instances << instance end end break if res.next_token.nil? params[:next_token] = res.next_token end instances end
report(format = nil)
click to toggle source
# File lib/furikake/resources/ec2.rb, line 4 def report(format = nil) instance = get_resources contents = { title: 'EC2', resources: [ { subtitle: '', header: ['Name', 'Instance ID', 'Instance Type', 'Availability Zone', 'Private IP Address', 'Public IP Address', 'State'], resource: instance } ] } Furikake::Formatter.shaping(format, contents) end