diff options
author | Hugo Hörnquist <hugo@lysator.liu.se> | 2022-02-16 14:50:11 +0100 |
---|---|---|
committer | Hugo Hörnquist <hugo@lysator.liu.se> | 2022-02-16 16:38:22 +0100 |
commit | eb62296200c4665af45591baec7c47a608fe395f (patch) | |
tree | 9e6cd7ce6c4b7ca2f2a4260a90f517b62c863117 | |
parent | Add SOA fields for dns_zone. (diff) | |
download | dns_record-eb62296200c4665af45591baec7c47a608fe395f.tar.gz dns_record-eb62296200c4665af45591baec7c47a608fe395f.tar.xz |
Add value and ttl setting for dns_record.
Diffstat (limited to '')
-rw-r--r-- | lib/puppet/provider/dns_record/zonefile.rb | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/lib/puppet/provider/dns_record/zonefile.rb b/lib/puppet/provider/dns_record/zonefile.rb index bcd8969..df220b7 100644 --- a/lib/puppet/provider/dns_record/zonefile.rb +++ b/lib/puppet/provider/dns_record/zonefile.rb @@ -78,6 +78,10 @@ Puppet::Type.type(:dns_record).provide(:zonefile) do end def exists? + !! find_self + end + + def find_self zone = get_zone(resource[:zone]) t = resource[:type] case t @@ -85,18 +89,29 @@ Puppet::Type.type(:dns_record).provide(:zonefile) do dataset = Zonefile::RECORDS.map {|t| t.downcase.intern}.map {|t| zone.records[t]}.flatten dataset.find {|record| record[:name] == resource[:key]} when :AAAA - !! zone.a4.find {|record| record[:name] == resource[:key]} + zone.a4.find {|record| record[:name] == resource[:key]} else - !! zone.records[t.downcase.intern].find {|record| record[:name] == resource[:key]} + zone.records[t.downcase.intern].find {|record| record[:name] == resource[:key]} end end + # Setting new values on type or key doesn't make sense, since they + # are our primary keys. + def type resource[:type] end def value - resource[:value] + record = find_self + record && record[:host] + end + + def value=(value) + record = find_self + # Puppet creates the resources instead of setting it the fetch + # method failed + record[:host] = value end def key @@ -104,6 +119,12 @@ Puppet::Type.type(:dns_record).provide(:zonefile) do end def ttl - resource[:ttl] + record = find_self + record && record[:ttl] + end + + def ttl=(value) + record = find_self + record[:ttl] = value end end |