create_a_record(fqdn, ip)
click to toggle source
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
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
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
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
def create_record(domain_id, name, type, content)
false
end
delete_record(domain_id, name, type)
click to toggle source
def delete_record(domain_id, name, type)
false
end
do_create(name, value, type)
click to toggle source
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
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
def get_zone(fqdn)
raise Proxy::Dns::Error, "Unable to determine zone. Zone must exist in PowerDNS."
end
rectify_zone(domain)
click to toggle source
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
def remove_a_record(fqdn)
do_remove(fqdn, "A")
end
remove_aaaa_record(fqdn)
click to toggle source
def remove_aaaa_record(fqdn)
do_remove(fqdn, "AAAA")
end
remove_cname_record(fqdn)
click to toggle source
def remove_cname_record(fqdn)
do_remove(fqdn, "CNAME")
end
remove_ptr_record(ptr)
click to toggle source
def remove_ptr_record(ptr)
do_remove(ptr, "PTR")
end