summaryrefslogtreecommitdiff
path: root/lib/puppet/provider/dns_zone2/named.rb
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--lib/puppet/provider/dns_zone2/named.rb80
1 files changed, 33 insertions, 47 deletions
diff --git a/lib/puppet/provider/dns_zone2/named.rb b/lib/puppet/provider/dns_zone2/named.rb
index e249be6..d929322 100644
--- a/lib/puppet/provider/dns_zone2/named.rb
+++ b/lib/puppet/provider/dns_zone2/named.rb
@@ -1,8 +1,8 @@
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(' ');
- new(:name => name, :cls => cls, :view => view, :type => type)
+ name, cls, view, type = record.split(' ')
+ new(name: name, cls: cls, view: view, type: type)
end
end
@@ -12,7 +12,7 @@ Puppet::Type.type(:dns_zone2).provide(:named) do
end
def destroy
- print("Remove #{resource[:name]}\n")
+ print("Remove #{resource[:name]}\n")
end
def refresh(records)
@@ -25,8 +25,9 @@ Puppet::Type.type(:dns_zone2).provide(:named) do
# resource[:ensure] == :present
`named-checkconf -l`
.split("\n")
- .grep(/#{resource[:origin]} /)
- .length > 0
+ .grep(%r{#{resource[:origin]} })
+ .empty?
+ .!
end
def filename
@@ -34,53 +35,38 @@ Puppet::Type.type(:dns_zone2).provide(:named) do
end
def zone_content(records)
- content = <<~EOF
- ; File managed by Puppet.
- ; Local changes WILL be overwritten
- ; File last generated #{Time.now}
+ content = <<~EOF
+ ; File managed by Puppet.
+ ; Local changes WILL be overwritten
+ ; File last generated #{Time.now}
- $ORIGIN #{resource[:origin]}
- $TTL #{resource[:default_ttl]}
+ $ORIGIN #{resource[:origin]}
+ $TTL #{resource[:default_ttl]}
- @ #{resource[:soa_ttl]} IN SOA #{resource[:mname]} #{resource[:rname]} (
- #{serial+1} ; serial
- #{resource[:refresh]} ; refresh
- #{resource[:retry]} ; retry
- #{resource[:expire]} ; expire
- #{resource[:negative_ttl]} ; Negative TTL
- )
- EOF
+ @ #{resource[:soa_ttl]} IN SOA #{resource[:mname]} #{resource[:rname]} (
+ #{serial + 1} ; serial
+ #{resource[:refresh]} ; refresh
+ #{resource[:retry]} ; retry
+ #{resource[:expire]} ; expire
+ #{resource[:negative_ttl]} ; Negative TTL
+ )
+ EOF
- records
- .filter {|r| r[:zone] == resource[:name] }
- .group_by {|r| r[:type]}
- .sort_by {|(type, _)|
- # Bit of a hack, but ensures that SOA is always first,
- # NS is after
- # And the rest have stable order
- {
- SOA: 0,
- NS: 1,
- A: 2,
- AAAA: 3,
- CNAME: 4,
- HINFO: 5,
- MINFO: 6,
- MX: 7,
- PTR: 8,
- TXT: 9,
- WKS: 10,
- }[type]
- }.each{|(type, values)|
+ records
+ .filter { |r| r[:zone] == resource[:name] }
+ .group_by { |r| r[:type] }
+ .sort # Sort to ensure stable order in output, actual order doesn't matter.
+ .each do |(type, values)|
+ content += <<~EOF
+ ; #{type} Records
+ EOF
+ values.each do |val|
content += <<~EOF
- ; #{type} Records
+ #{val[:key]} #{val[:ttl]} IN #{val[:type]} #{val[:value]}
EOF
- values.each {|val|
- content += <<~EOF
- #{val[:key]} #{val[:ttl]} IN #{val[:type]} #{val[:value]}
- EOF
- }
- }
+ end
+ end
+
content
end