create_a_record(fqdn, ip)
click to toggle source
def create_a_record(fqdn, ip)
if found = dns_find(fqdn)
raise Proxy::Dns::Collision, "#{fqdn} is already in use by #{ip}" unless found == ip
end
do_create(fqdn, ip, "A")
end
create_ptr_record(fqdn, value)
click to toggle source
def create_ptr_record(fqdn, value)
if found = dns_find(value)
raise Proxy::Dns::Collision, "#{value} is already in use by #{found}" unless found == fqdn
end
do_create(value, fqdn, "PTR")
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)
create_record(zone['id'], name, type, value) and rectify_zone(zone['name'])
end
do_remove(name, type)
click to toggle source
def do_remove(name, type)
zone = get_zone(name)
delete_record(zone['id'], name, type) and rectify_zone(zone['name'])
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_ptr_record(name)
click to toggle source
def remove_ptr_record(name)
do_remove(name, "PTR")
end