From 90da28b8b3cbf348dc2d80ce224dd97968202d09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Tue, 15 Feb 2022 21:00:13 +0100 Subject: Add SOA fields for dns_zone. soa_refresh handles zonefile soa[:refresh] Fix zonefile negativeTTL. --- lib/puppet/provider/dns_zone/zonefile.rb | 66 +++++++++++++++++++++++++++++++- lib/puppet/type/dns_zone.rb | 22 ++++++++++- 2 files changed, 86 insertions(+), 2 deletions(-) (limited to 'lib') 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 -- cgit v1.2.3