summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2022-02-15 21:00:13 +0100
committerHugo Hörnquist <hugo@lysator.liu.se>2022-02-16 16:38:09 +0100
commit90da28b8b3cbf348dc2d80ce224dd97968202d09 (patch)
tree6c200c6a2bca517b97c5becef32d650cd892e44e
parentZone flush calls create. (diff)
downloaddns_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.rb66
-rw-r--r--lib/puppet/type/dns_zone.rb22
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