Module: ElbPing::Resolver

Defined in:
lib/elbping/resolver.rb

Class Method Summary collapse

Class Method Details

.find_elb_nodes(target, nameserver) ⇒ Object

Resolve an ELB address to a list of node IPs



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/elbping/resolver.rb', line 7

def self.find_elb_nodes(target, nameserver)

  # First resolve our nameserver IP
  ns_addrs = Resolver(nameserver).answer.map { |rr| rr.address.to_s }

  # Now resolve our ELB nodes
  resolver = Net::DNS::Resolver.new(
    :use_tcp => true,
    :nameservers => ns_addrs,
    :retry => 5)

  resp = resolver.query(target, Net::DNS::ANY)

  nodes = []
  resp.each_address { |a| nodes += [a.to_s] }
  nodes
end