summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2022-02-16 16:05:51 +0100
committerHugo Hörnquist <hugo@lysator.liu.se>2022-02-16 16:41:37 +0100
commit52e9cac97b06e760e211ccec1491258ad40bf520 (patch)
treeb3d51d3211ac2f6db13c8bf2d1a1ef7b45374ccc
parentDisallow NS records. (diff)
downloaddns_record-52e9cac97b06e760e211ccec1491258ad40bf520.tar.gz
dns_record-52e9cac97b06e760e211ccec1491258ad40bf520.tar.xz
Add NS property on dns_zone.
-rw-r--r--lib/puppet/provider/dns_zone/zonefile.rb10
-rw-r--r--lib/puppet/type/dns_zone.rb9
2 files changed, 19 insertions, 0 deletions
diff --git a/lib/puppet/provider/dns_zone/zonefile.rb b/lib/puppet/provider/dns_zone/zonefile.rb
index eaaea11..af2fedd 100644
--- a/lib/puppet/provider/dns_zone/zonefile.rb
+++ b/lib/puppet/provider/dns_zone/zonefile.rb
@@ -53,6 +53,16 @@ Puppet::Type.type(:dns_zone).provide :zonefile do
create
end
+ def ns
+ zone = get_zone(resource[:zone])
+ zone.ns.map {|record| record[:host] }
+ end
+
+ def ns=(value)
+ zone = get_zone(resource[:zone])
+ zone.ns = value.map {|s| { :name => '@', :ttl => resource[:ns_ttl], :host => s } }
+ end
+
def email
zone = get_zone(resource[:zone])
zone.soa[:email]
diff --git a/lib/puppet/type/dns_zone.rb b/lib/puppet/type/dns_zone.rb
index e13c2d3..13acd54 100644
--- a/lib/puppet/type/dns_zone.rb
+++ b/lib/puppet/type/dns_zone.rb
@@ -52,6 +52,15 @@ Puppet::Type.newtype(:dns_zone) do
newparam(:zone, :namevar => true) do
end
+ newparam(:ns_ttl) do
+ desc "TTL for NS records"
+ defaultto '1w'
+ end
+
+ newproperty(:ns, :array_matching => :all) do
+ desc "Nameservers for this zone"
+ end
+
newproperty(:primary) do
desc "Primary nameserver for this zone"
end