class Proxy::Dns::Powerdns::Record
Attributes
pdnssec[R]
Public Class Methods
new(a_server, a_ttl, pdnssec = nil)
click to toggle source
Calls superclass method
# File lib/smart_proxy_dns_powerdns/dns_powerdns_main.rb, line 11 def initialize(a_server, a_ttl, pdnssec = nil) @pdnssec = pdnssec super(a_server, a_ttl) end
Public Instance Methods
create_a_record(fqdn, ip)
click to toggle source
# File lib/smart_proxy_dns_powerdns/dns_powerdns_main.rb, line 16 def create_a_record(fqdn, ip) case a_record_conflicts(fqdn, ip) when 1 raise(Proxy::Dns::Collision, "'#{fqdn} 'is already in use") when 0 then return nil else do_create(fqdn, ip, "A") end end
create_aaaa_record(fqdn, ip)
click to toggle source
# File lib/smart_proxy_dns_powerdns/dns_powerdns_main.rb, line 27 def create_aaaa_record(fqdn, ip) case aaaa_record_conflicts(fqdn, ip) when 1 raise(Proxy::Dns::Collision, "'#{fqdn} 'is already in use") when 0 then return nil else do_create(fqdn, ip, "AAAA") end end
create_cname_record(fqdn, target)
click to toggle source
# File lib/smart_proxy_dns_powerdns/dns_powerdns_main.rb, line 38 def create_cname_record(fqdn, target) case cname_record_conflicts(fqdn, target) when 1 then raise(Proxy::Dns::Collision, "'#{fqdn} 'is already in use") when 0 then return nil else do_create(fqdn, target, "CNAME") end end
create_ptr_record(fqdn, ptr)
click to toggle source
# File lib/smart_proxy_dns_powerdns/dns_powerdns_main.rb, line 49 def create_ptr_record(fqdn, ptr) case ptr_record_conflicts(fqdn, ptr_to_ip(ptr)) when 1 raise(Proxy::Dns::Collision, "'#{fqdn} 'is already in use") when 0 then return nil else do_create(ptr, fqdn, "PTR") end end
create_record(domain_id, name, type, content)
click to toggle source
# File lib/smart_proxy_dns_powerdns/dns_powerdns_main.rb, line 97 def create_record(domain_id, name, type, content) # TODO: backend specific false end
delete_record(domain_id, name, type)
click to toggle source
# File lib/smart_proxy_dns_powerdns/dns_powerdns_main.rb, line 102 def delete_record(domain_id, name, type) # TODO: backend specific false end
do_create(name, value, type)
click to toggle source
# File lib/smart_proxy_dns_powerdns/dns_powerdns_main.rb, line 60 def do_create(name, value, type) zone = get_zone(name) unless create_record(zone['id'], name, type, value) and rectify_zone(zone['name']) raise Proxy::Dns::Error.new("Failed to create record #{name} #{type} #{value}") end true end
do_remove(name, type)
click to toggle source
# File lib/smart_proxy_dns_powerdns/dns_powerdns_main.rb, line 84 def do_remove(name, type) zone = get_zone(name) if delete_record(zone['id'], name, type) raise Proxy::Dns::Error.new("Failed to remove record #{name} #{type}") unless rectify_zone(zone['name']) end true end
get_zone(fqdn)
click to toggle source
# File lib/smart_proxy_dns_powerdns/dns_powerdns_main.rb, line 92 def get_zone(fqdn) # TODO: backend specific raise Proxy::Dns::Error, "Unable to determine zone. Zone must exist in PowerDNS." end
rectify_zone(domain)
click to toggle source
# File lib/smart_proxy_dns_powerdns/dns_powerdns_main.rb, line 107 def rectify_zone domain if @pdnssec %x(#{@pdnssec} rectify-zone "#{domain}") $?.exitstatus == 0 else true end end
remove_a_record(fqdn)
click to toggle source
# File lib/smart_proxy_dns_powerdns/dns_powerdns_main.rb, line 68 def remove_a_record(fqdn) do_remove(fqdn, "A") end
remove_aaaa_record(fqdn)
click to toggle source
# File lib/smart_proxy_dns_powerdns/dns_powerdns_main.rb, line 72 def remove_aaaa_record(fqdn) do_remove(fqdn, "AAAA") end
remove_cname_record(fqdn)
click to toggle source
# File lib/smart_proxy_dns_powerdns/dns_powerdns_main.rb, line 76 def remove_cname_record(fqdn) do_remove(fqdn, "CNAME") end
remove_ptr_record(ptr)
click to toggle source
# File lib/smart_proxy_dns_powerdns/dns_powerdns_main.rb, line 80 def remove_ptr_record(ptr) do_remove(ptr, "PTR") end