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'
|
||||
|
||||
module PuppetBind
|
||||
@ -27,8 +28,8 @@ module PuppetBind
|
||||
def flush
|
||||
return if @properties.empty?
|
||||
update do |file|
|
||||
destructo(file)
|
||||
accio(file)
|
||||
destructo(file)
|
||||
end
|
||||
end
|
||||
|
||||
@ -58,17 +59,25 @@ module PuppetBind
|
||||
end
|
||||
|
||||
def accio(file)
|
||||
newdata.each do |datum|
|
||||
rrdata_adds.each do |datum|
|
||||
file.write "update add #{name}. #{resource[:ttl]} #{rrclass} #{type} #{datum}\n"
|
||||
end
|
||||
end
|
||||
|
||||
def destructo(file)
|
||||
rrdata.each do |datum|
|
||||
rrdata_deletes.each do |datum|
|
||||
file.write "update delete #{name}. #{ttl} #{rrclass} #{type} #{datum}\n"
|
||||
end
|
||||
end
|
||||
|
||||
def rrdata_adds
|
||||
newdata - rrdata
|
||||
end
|
||||
|
||||
def rrdata_deletes
|
||||
type === 'SOA' ? [] : rrdata - newdata
|
||||
end
|
||||
|
||||
def server
|
||||
resource[:server]
|
||||
end
|
||||
|
||||
Loading…
Reference in New Issue
Block a user