Merge pull request #39 from inkblot/quote-txt-rrdata

Automatic quote and unquote TXT and SPF
This commit is contained in:
Nate Riffe 2015-05-19 14:44:53 -05:00
commit 9038011ed7

View File

@ -60,16 +60,28 @@ module PuppetBind
def accio(file) def accio(file)
rrdata_adds.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} #{maybe_quote(type, datum)}\n"
end end
end end
def destructo(file) def destructo(file)
rrdata_deletes.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} #{maybe_quote(type, datum)}\n"
end end
end end
def quoted_type?(type)
%(TXT SPF).include?(type)
end
def maybe_quote(type, datum)
quoted_type?(type) ? "\"#{datum}\"" : datum
end
def maybe_unquote(type, datum)
quoted_type?(type) ? datum.gsub(/^\"(.*)\"$/, '\1') : datum
end
def rrdata_adds def rrdata_adds
newdata - rrdata newdata - rrdata
end end
@ -124,7 +136,7 @@ module PuppetBind
:ttl => linearray[1], :ttl => linearray[1],
:rrclass => linearray[2], :rrclass => linearray[2],
:type => linearray[3], :type => linearray[3],
:rrdata => linearray[4] :rrdata => maybe_unquote(linearray[3], linearray[4])
} }
end.select do |record| end.select do |record|
record[:name] == "#{name}." record[:name] == "#{name}."