summaryrefslogtreecommitdiff
path: root/lib/puppet/provider/dns_zone2/named.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/puppet/provider/dns_zone2/named.rb')
-rw-r--r--lib/puppet/provider/dns_zone2/named.rb23
1 files changed, 9 insertions, 14 deletions
diff --git a/lib/puppet/provider/dns_zone2/named.rb b/lib/puppet/provider/dns_zone2/named.rb
index c1e39c5..3a59c81 100644
--- a/lib/puppet/provider/dns_zone2/named.rb
+++ b/lib/puppet/provider/dns_zone2/named.rb
@@ -1,5 +1,4 @@
Puppet::Type.type(:dns_zone2).provide(:named) do
-
def self.instances
`named-checkconf -l`.split("\n").map do |record|
name, cls, view, type = record.split(' ')
@@ -7,20 +6,10 @@ Puppet::Type.type(:dns_zone2).provide(:named) do
end
end
- def create(records)
- print("Create #{resource[:name]}\n")
- end
-
- def destroy
- print("Remove #{resource[:name]}\n")
- end
-
def exists?
- # instances.find { |r| r.name == resource[:name] }
- # resource[:ensure] == :present
`named-checkconf -l`
.split("\n")
- .grep(%r{#{resource[:origin]} })
+ .grep(%r{^#{origin_rx} })
.empty?
.!
end
@@ -29,7 +18,7 @@ Puppet::Type.type(:dns_zone2).provide(:named) do
"/var/named/zones/#{resource[:name]}db"
end
- def zone_content(records)
+ def zone_content(records, serial_change)
content = <<~EOF
; File managed by Puppet.
; Local changes WILL be overwritten
@@ -39,7 +28,7 @@ Puppet::Type.type(:dns_zone2).provide(:named) do
$TTL #{resource[:default_ttl]}
@ #{resource[:soa_ttl]} IN SOA #{resource[:mname]} #{resource[:rname]} (
- #{serial + 1} ; serial
+ #{serial + serial_change} ; serial
#{resource[:refresh]} ; refresh
#{resource[:retry]} ; retry
#{resource[:expire]} ; expire
@@ -65,7 +54,13 @@ Puppet::Type.type(:dns_zone2).provide(:named) do
content
end
+ # The current (before updating) serial of the zone
def serial
`rndc zonestatus #{name} | awk -F' ' '/^serial:/ { print $2 }'`.to_i
end
+
+ # A regex matching the origin
+ def origin_rx
+ resource[:origin].gsub(%r{[.]}, '[.]')
+ end
end