Merge pull request #33 from inkblot/incremental-update
Update RRData incrementally
This commit is contained in:
commit
a2fcc87a13
@ -1,3 +1,4 @@
|
|||||||
|
# ex: syntax=ruby si sw=2 ts=2 et
|
||||||
require 'tempfile'
|
require 'tempfile'
|
||||||
|
|
||||||
module PuppetBind
|
module PuppetBind
|
||||||
@ -27,8 +28,8 @@ module PuppetBind
|
|||||||
def flush
|
def flush
|
||||||
return if @properties.empty?
|
return if @properties.empty?
|
||||||
update do |file|
|
update do |file|
|
||||||
destructo(file)
|
|
||||||
accio(file)
|
accio(file)
|
||||||
|
destructo(file)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -58,17 +59,25 @@ module PuppetBind
|
|||||||
end
|
end
|
||||||
|
|
||||||
def accio(file)
|
def accio(file)
|
||||||
newdata.each do |datum|
|
rrdata_adds.each do |datum|
|
||||||
file.write "update add #{name}. #{resource[:ttl]} #{rrclass} #{type} #{datum}\n"
|
file.write "update add #{name}. #{resource[:ttl]} #{rrclass} #{type} #{datum}\n"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def destructo(file)
|
def destructo(file)
|
||||||
rrdata.each do |datum|
|
rrdata_deletes.each do |datum|
|
||||||
file.write "update delete #{name}. #{ttl} #{rrclass} #{type} #{datum}\n"
|
file.write "update delete #{name}. #{ttl} #{rrclass} #{type} #{datum}\n"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def rrdata_adds
|
||||||
|
newdata - rrdata
|
||||||
|
end
|
||||||
|
|
||||||
|
def rrdata_deletes
|
||||||
|
type === 'SOA' ? [] : rrdata - newdata
|
||||||
|
end
|
||||||
|
|
||||||
def server
|
def server
|
||||||
resource[:server]
|
resource[:server]
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user