Class: Awsm::Dns
- Inherits:
-
Object
- Object
- Awsm::Dns
- Defined in:
- lib/awsm/dns.rb
Instance Method Summary collapse
- #find_for(target) ⇒ Object
- #get_by_record(record) ⇒ Object
-
#initialize ⇒ Dns
constructor
A new instance of Dns.
- #load_dns_records ⇒ Object
Constructor Details
#initialize ⇒ Dns
Returns a new instance of Dns.
5 6 7 8 9 10 |
# File 'lib/awsm/dns.rb', line 5 def initialize @client = Aws::Route53::Client.new @dns_map_by_target = {} @records = [] load_dns_records end |
Instance Method Details
#find_for(target) ⇒ Object
12 13 14 |
# File 'lib/awsm/dns.rb', line 12 def find_for( target ) @dns_map_by_target[ target ] end |
#get_by_record(record) ⇒ Object
16 17 18 19 20 |
# File 'lib/awsm/dns.rb', line 16 def get_by_record( record ) @records.select do |r| r.name =~ /^#{record}/ end end |
#load_dns_records ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/awsm/dns.rb', line 22 def load_dns_records paged_response = @client.list_resource_record_sets( hosted_zone_id: Awsm::dns_config.hosted_zone ) paged_response.each_page do |p| records = p.resource_record_sets.select do |r| r.type == 'A' || r.type == 'CNAME' end records.each do |r| if r.resource_records == [] target = r.alias_target.dns_name else target = r.resource_records[0].value end @dns_map_by_target[target] = r.name @records << r end end end |