class Proxy::Dns::Route53::Record
Attributes
aws_access_key[R]
aws_secret_key[R]
Public Class Methods
new(a_server = nil, a_ttl = nil)
click to toggle source
Calls superclass method
# File lib/smart_proxy_dns_route53/dns_route53_main.rb, line 13 def initialize(a_server = nil, a_ttl = nil) @aws_access_key = Proxy::Dns::Route53::Plugin.settings.aws_access_key @aws_secret_key = Proxy::Dns::Route53::Plugin.settings.aws_secret_key super(a_server, a_ttl || ::Proxy::Dns::Plugin.settings.dns_ttl) end
Public Instance Methods
create_a_record(fqdn, ip)
click to toggle source
# File lib/smart_proxy_dns_route53/dns_route53_main.rb, line 19 def create_a_record(fqdn, ip) if found = dns_find(fqdn) raise(Proxy::Dns::Collision, "#{fqdn} is already used by #{ip}") unless found == ip else zone = get_zone(fqdn) new_record = Route53::DNSRecord.new(fqdn, 'A', ttl, [ip], zone) resp = new_record.create raise "AWS Response Error: #{resp}" if resp.error? true end end
create_ptr_record(fqdn, ip)
click to toggle source
# File lib/smart_proxy_dns_route53/dns_route53_main.rb, line 31 def create_ptr_record(fqdn, ip) if found = dns_find(ip) raise(Proxy::Dns::Collision, "#{ip} is already used by #{found}") unless found == fqdn else zone = get_zone(ip) new_record = Route53::DNSRecord.new(ip, 'PTR', ttl, [fqdn], zone) resp = new_record.create raise "AWS Response Error: #{resp}" if resp.error? true end end
remove_a_record(fqdn)
click to toggle source
# File lib/smart_proxy_dns_route53/dns_route53_main.rb, line 43 def remove_a_record(fqdn) zone = get_zone(fqdn) recordset = zone.get_records recordset.each do |rec| if rec.name == fqdn + '.' resp = rec.delete raise "AWS Response Error: #{resp}" if resp.error? return true end end raise Proxy::Dns::NotFound, "Could not find forward record #{fqdn}" end
remove_ptr_record(ip)
click to toggle source
# File lib/smart_proxy_dns_route53/dns_route53_main.rb, line 56 def remove_ptr_record(ip) zone = get_zone(ip) recordset = zone.get_records recordset.each do |rec| if rec.name == ip + '.' resp = rec.delete raise "AWS Response Error: #{resp}" if resp.error? return true end end raise Proxy::Dns::NotFound, "Could not find reverse record #{ip}" end
Private Instance Methods
conn()
click to toggle source
# File lib/smart_proxy_dns_route53/dns_route53_main.rb, line 71 def conn @conn ||= Route53::Connection.new(aws_access_key, aws_secret_key) end
get_zone(fqdn)
click to toggle source
# File lib/smart_proxy_dns_route53/dns_route53_main.rb, line 79 def get_zone(fqdn) domain = fqdn.split('.', 2).last + '.' conn.get_zones(domain)[0] end
resolver()
click to toggle source
# File lib/smart_proxy_dns_route53/dns_route53_main.rb, line 75 def resolver @resolver ||= Resolv::DNS.new end