class Instance::Finder
Constants
- VERSION
Public Class Methods
instances(tags, states=['running'])
click to toggle source
# File lib/instance_finder.rb, line 7 def instances(tags, states=['running']) finder = Instance::Finder.new finder.instances(tags, states) end
new()
click to toggle source
# File lib/instance_finder.rb, line 13 def initialize @ec2 = Aws::EC2::Client.new end
Public Instance Methods
instances(tags, states=['running'])
click to toggle source
# File lib/instance_finder.rb, line 17 def instances(tags, states=['running']) output = [] results = @ec2.describe_instances filters: make_filters(tags, states) results.reservations.each do |reservation| reservation.instances.each do |instance| output << { instance_id: instance.instance_id, private_ip_address: instance.private_ip_address, private_dns_name: instance.private_dns_name, public_ip_address: instance.public_ip_address, public_dns_name: instance.public_dns_name, subnet_id: instance.subnet_id, vpc_id: instance.vpc_id, availability_zone: instance.placement.availability_zone, tags: coerce_tags(instance.tags), } end end output end
Private Instance Methods
make_filters(tags, states)
click to toggle source
# File lib/instance_finder.rb, line 40 def make_filters(tags, states) filters = [ { name: 'instance-state-name', values: Array(states), }, ] tags.each do |key, value| filters << { name: "tag:#{key}", values: Array(value), } end filters end