diff --git a/lib/roadworker/route53-ext.rb b/lib/roadworker/route53-ext.rb index 64a772b..26b026e 100644 --- a/lib/roadworker/route53-ext.rb +++ b/lib/roadworker/route53-ext.rb @@ -25,6 +25,7 @@ def normalize_dns_name_options(src) dst = {} { + :hosted_zone_id => false, :evaluate_target_health => false, }.each do |key, defalut_value| dst[key] = src[key] || false @@ -40,7 +41,7 @@ def dns_name_to_alias_target(name, options, hosted_zone_id, hosted_zone_name) if name =~ /([^.]+)\.elb\.amazonaws.com\Z/i region = $1.downcase - alias_target = elb_dns_name_to_alias_target(name, region) + alias_target = elb_dns_name_to_alias_target(name, region, options) # XXX: alias_target.merge(options) @@ -58,7 +59,7 @@ def dns_name_to_alias_target(name, options, hosted_zone_id, hosted_zone_name) private - def elb_dns_name_to_alias_target(name, region) + def elb_dns_name_to_alias_target(name, region, options) elb = Aws::ElasticLoadBalancing::Client.new(:region => region) load_balancer = nil @@ -72,7 +73,15 @@ def elb_dns_name_to_alias_target(name, region) end unless load_balancer - raise "Cannot find ELB: #{name}" + if options[:hosted_zone_id] + return { + :hosted_zone_id => options[:hosted_zone_id], + :dns_name => name, + :evaluate_target_health => false, # XXX: + } + else + raise "Cannot find ELB: #{name}" + end end {