Revision 47732b9e
Added by Ewoud Kohl van Wijngaarden over 7 years ago
modules/dns_nsupdate/dns_nsupdate_main.rb | ||
---|---|---|
super(a_server, a_ttl)
|
||
end
|
||
|
||
def create_a_record(fqdn, ip)
|
||
case a_record_conflicts(fqdn, ip) #returns -1, 0, 1
|
||
when 1
|
||
raise(Proxy::Dns::Collision, "'#{fqdn} 'is already in use")
|
||
when 0 then
|
||
return nil
|
||
else
|
||
do_create(fqdn, ip, "A")
|
||
end
|
||
end
|
||
|
||
def create_aaaa_record(fqdn, ip)
|
||
case aaaa_record_conflicts(fqdn, ip) #returns -1, 0, 1
|
||
when 1
|
||
raise(Proxy::Dns::Collision, "'#{fqdn} 'is already in use")
|
||
when 0 then
|
||
return nil
|
||
else
|
||
do_create(fqdn, ip, "AAAA")
|
||
end
|
||
end
|
||
|
||
def create_ptr_record(fqdn, ptr)
|
||
case ptr_record_conflicts(fqdn, ptr) #returns -1, 0, 1
|
||
when 1
|
||
raise(Proxy::Dns::Collision, "'#{fqdn} 'is already in use")
|
||
when 0 then
|
||
return nil
|
||
else
|
||
do_create(ptr, fqdn, "PTR")
|
||
end
|
||
end
|
||
|
||
def do_create(id, value, type)
|
||
nsupdate_connect
|
||
nsupdate "update add #{id}. #{@ttl} #{type} #{value}"
|
||
... | ... | |
nsupdate_close
|
||
end
|
||
|
||
def remove_a_record(fqdn)
|
||
get_ipv4_address!(fqdn)
|
||
do_remove(fqdn, "A")
|
||
end
|
||
|
||
def remove_aaaa_record(fqdn)
|
||
get_ipv6_address!(fqdn)
|
||
do_remove(fqdn, "AAAA")
|
||
end
|
||
|
||
def remove_ptr_record(ip)
|
||
get_name!(ip)
|
||
do_remove(ip, "PTR")
|
||
end
|
||
|
||
def do_remove(id, type)
|
||
nsupdate_connect
|
||
nsupdate "update delete #{id} #{type}"
|
Also available in: Unified diff
Fixes #17906 - Move {create,remove}_*_record to dns_common
Before most DNS providers had pretty much exact copies of these
functions. This removes duplication and allows for much simpler plugins.
In doing so it also fixes #17879 by adding CNAME support to the nsupdate
module.
Lastly it fixes some require statements to allow running single tests
rather than relying on other tests to do their requirements for them.