Create resource_record type

Abstract out the nsupdate provider logic and implement a new resource_record
type around it which applies no semantic value to its title.

Also: support SPF and TXT records, include isrequired on required parameters
(though it doesn't seem to work as advertised)
This commit is contained in:
Nate Riffe
2014-09-10 13:02:31 -05:00
parent 9741dd509e
commit c0143b2ca7
5 changed files with 252 additions and 97 deletions
@@ -0,0 +1,44 @@
require 'puppet_bind/provider/nsupdate'
Puppet::Type.type(:resource_record).provide(:nsupdate) do
include PuppetBind::Provider::NsUpdate
commands :dig => 'dig', :nsupdate => 'nsupdate'
def initialize(value={})
super(value)
@properties = {}
end
def data
query.map { |record| record[:rrdata] }.sort
end
def data=(data)
@properties[:rrdata] = data
end
private
def rrdata
data
end
def newdata
resource[:data]
end
def rrclass
resource[:rrclass]
end
def type
resource[:type]
end
def name
resource[:record]
end
end