diff options
author | Hugo Hörnquist <hugo@lysator.liu.se> | 2022-02-15 21:00:13 +0100 |
---|---|---|
committer | Hugo Hörnquist <hugo@lysator.liu.se> | 2022-02-16 16:38:09 +0100 |
commit | 90da28b8b3cbf348dc2d80ce224dd97968202d09 (patch) | |
tree | 6c200c6a2bca517b97c5becef32d650cd892e44e | |
parent | Zone flush calls create. (diff) | |
download | dns_record-90da28b8b3cbf348dc2d80ce224dd97968202d09.tar.gz dns_record-90da28b8b3cbf348dc2d80ce224dd97968202d09.tar.xz |
Add SOA fields for dns_zone.
soa_refresh handles zonefile soa[:refresh]
Fix zonefile negativeTTL.
-rw-r--r-- | lib/puppet/provider/dns_zone/zonefile.rb | 66 | ||||
-rw-r--r-- | lib/puppet/type/dns_zone.rb | 22 |
2 files changed, 86 insertions, 2 deletions
diff --git a/lib/puppet/provider/dns_zone/zonefile.rb b/lib/puppet/provider/dns_zone/zonefile.rb index 01c757d..eaaea11 100644 --- a/lib/puppet/provider/dns_zone/zonefile.rb +++ b/lib/puppet/provider/dns_zone/zonefile.rb @@ -36,7 +36,71 @@ Puppet::Type.type(:dns_zone).provide :zonefile do end def primary - resource[:primary] + zone = get_zone(resource[:zone]) + zone.soa[:primary] + end + + def primary=(value) + zone = get_zone(resource[:zone]) + zone.soa[:primary] = value + end + + def flush + # Flush is called after all parameters and properties are set, but + # only if the changes. It's called before refresh. + # Since we call write in both flush and refresh a double write + # might happen, but oh well. + create + end + + def email + zone = get_zone(resource[:zone]) + zone.soa[:email] + end + + def email=(value) + zone = get_zone(resource[:zone]) + zone.soa[:email] = value + end + + def soa_refresh + zone = get_zone(resource[:zone]) + zone.soa[:refresh] + end + + def soa_refresh=(value) + zone = get_zone(resource[:zone]) + zone.soa[:refresh] = value + end + + def retry + zone = get_zone(resource[:zone]) + zone.soa[:retry] + end + + def retry=(value) + zone = get_zone(resource[:zone]) + zone.soa[:retry] = value + end + + def expire + zone = get_zone(resource[:zone]) + zone.soa[:expire] + end + + def expire=(value) + zone = get_zone(resource[:zone]) + zone.soa[:expire] = value + end + + def negative_ttl + zone = get_zone(resource[:zone]) + zone.soa[:minimumTTL] + end + + def negative_ttl=(value) + zone = get_zone(resource[:zone]) + zone.soa[:minimumTTL] = value end def flush diff --git a/lib/puppet/type/dns_zone.rb b/lib/puppet/type/dns_zone.rb index 9cf8930..e13c2d3 100644 --- a/lib/puppet/type/dns_zone.rb +++ b/lib/puppet/type/dns_zone.rb @@ -53,6 +53,26 @@ Puppet::Type.newtype(:dns_zone) do end newproperty(:primary) do - desc "Hello" + desc "Primary nameserver for this zone" + end + + newproperty(:email) do + desc "Email to the zone administrator" + end + + newproperty(:soa_refresh) do + desc "SOA refresh" + end + + newproperty(:retry) do + desc "SOA retry" + end + + newproperty(:expire) do + desc "SOA expire" + end + + newproperty(:negative_ttl) do + desc "SOA negative_ttl" end end |