From 9017f47b93763419a18fd6ec27d2e70a4c584b0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Thu, 17 Feb 2022 10:15:10 +0100 Subject: Dns_zone add newvalues constraints --- lib/puppet/type/dns_record.rb | 2 ++ lib/puppet/type/dns_zone.rb | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/lib/puppet/type/dns_record.rb b/lib/puppet/type/dns_record.rb index 8463172..eaa3f0f 100644 --- a/lib/puppet/type/dns_record.rb +++ b/lib/puppet/type/dns_record.rb @@ -27,6 +27,8 @@ Puppet::Type.newtype(:dns_record) do newproperty(:ttl) do desc "Optional TTL for record" + # TODO How does newvalues work with an optional parameter? + # newvalues /([0-9]+[SsMmHhDdWw]?)+/ end autonotify('dns_zone') { [ parameter(:zone).value ] } diff --git a/lib/puppet/type/dns_zone.rb b/lib/puppet/type/dns_zone.rb index 3f49bc7..02868ff 100644 --- a/lib/puppet/type/dns_zone.rb +++ b/lib/puppet/type/dns_zone.rb @@ -62,11 +62,13 @@ Puppet::Type.newtype(:dns_zone) do end newparam(:zone, :namevar => true) do + newvalues(/[^.]$/) end newparam(:ns_ttl) do desc "TTL for NS records" defaultto '1w' + newvalues /([0-9]+[SsMmHhDdWw]?)+/ end newproperty(:ns, :array_matching => :all) do @@ -87,20 +89,24 @@ Puppet::Type.newtype(:dns_zone) do newproperty(:soa_refresh) do desc "SOA refresh, number of seconds after which secondary name servers should query the master for the SOA record" defaultto '24h' + newvalues /([0-9]+[SsMmHhDdWw]?)+/ end newproperty(:retry) do desc "SOA retry, number of seconds after which seconday name servers should retry to requeth the serial from the master, must be less than refresh" defaultto '2h' + newvalues /([0-9]+[SsMmHhDdWw]?)+/ end newproperty(:expire) do desc "SOA expire, Number of seconds secondary servers should continue answer queries for this zone if the master dissapears" defaultto '1000h' + newvalues /([0-9]+[SsMmHhDdWw]?)+/ end newproperty(:negative_ttl) do desc "SOA negative_ttl, how long can clients cache a negative response" defaultto '2d' + newvalues /([0-9]+[SsMmHhDdWw]?)+/ end end -- cgit v1.2.3