Class: AWS::Route53

Inherits:
Object
  • Object
show all
Defined in:
lib/roadworker/route53-ext.rb

Instance Method Summary collapse

Instance Method Details

#dns_name_to_alias_target(name) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/roadworker/route53-ext.rb', line 6

def dns_name_to_alias_target(name)
  name = name.sub(/\.\Z/, '')

  unless name =~ /([^.]+)\.elb\.amazonaws.com\Z/i
    raise "Invalid DNS Name: #{name}"
  end

  region = $1.downcase
  elb = AWS::ELB.new(:region => region)

  load_balancer = elb.load_balancers.find do |lb|
    lb.dns_name == name
  end

  unless load_balancer
    raise "Cannot find ELB: #{name}"
  end

  {
    :hosted_zone_id         => load_balancer.canonical_hosted_zone_name_id,
    :dns_name               => load_balancer.dns_name,
    :evaluate_target_health => false, # XXX:
  }
end