summaryrefslogtreecommitdiff
path: root/lib/puppet/type/dns_zone2.rb
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2023-06-08 13:36:35 +0200
committerHugo Hörnquist <hugo@lysator.liu.se>2023-06-08 13:36:35 +0200
commit858a9dbc499ae872551238e0ec3d4b61cc4f6add (patch)
treebc56be2d5c99cee80ce56b9e73d5a068f3e78a50 /lib/puppet/type/dns_zone2.rb
parentwork (diff)
downloaddns-858a9dbc499ae872551238e0ec3d4b61cc4f6add.tar.gz
dns-858a9dbc499ae872551238e0ec3d4b61cc4f6add.tar.xz
Propagate binaries.
Diffstat (limited to 'lib/puppet/type/dns_zone2.rb')
-rw-r--r--lib/puppet/type/dns_zone2.rb38
1 files changed, 35 insertions, 3 deletions
diff --git a/lib/puppet/type/dns_zone2.rb b/lib/puppet/type/dns_zone2.rb
index e21af6d..5f0b537 100644
--- a/lib/puppet/type/dns_zone2.rb
+++ b/lib/puppet/type/dns_zone2.rb
@@ -14,7 +14,7 @@ Puppet::Type.newtype(:dns_zone2, self_refresh: true) do
ensurable
def refresh
- catalog.resource("File[/var/named/zones/#{self[:name]}db]")[:content] = should_content(1)
+ catalog.resource("File[#{self[:directory]}/#{self[:name]}db]")[:content] = should_content(1)
end
# List of all DNS records (at all)
@@ -35,7 +35,7 @@ Puppet::Type.newtype(:dns_zone2, self_refresh: true) do
ensure: self[:ensure],
path: provider.filename,
# notify: self[:notify],
- validate_cmd: "/usr/sbin/named-checkzone #{self[:origin]} %"
+ validate_cmd: "#{self[:named_checkzone]} #{self[:origin]} %"
}
[:owner,
@@ -61,6 +61,28 @@ Puppet::Type.newtype(:dns_zone2, self_refresh: true) do
[Puppet::Type.type(:file).new(params)]
end
+ newparam(:named_checkzone) do
+ desc <<-EOF
+ Absolute path to the named-checkzone binary.
+ EOF
+
+ defaultto '/usr/bin/named-checkzone'
+ end
+
+ newparam(:named_checkconf) do
+ desc <<-EOF
+ Absolute pathto the named-checkconf binary
+ EOF
+ defaultto '/usr/bin/named-checkconf'
+ end
+
+ newparam(:rndc) do
+ desc <<-EOF
+ Absolute path to the rndc binary
+ EOF
+ defaultto '/usr/bin/rndc'
+ end
+
# Returning "our" file resource causes errors on the file to
# propagate out from us (which is NEEDED for `validate_cmd` to
# work).
@@ -73,7 +95,7 @@ Puppet::Type.newtype(:dns_zone2, self_refresh: true) do
# Ideally we wouldn't generate content here, but instead in
# `create`. But that method isn't called
def eval_generate
- catalog.resource("File[/var/named/zones/#{self[:name]}db]")[:content] = should_content(0)
+ catalog.resource("File[#{self[:directory]}/#{self[:name]}db]")[:content] = should_content(0)
[catalog.resource("File[#{provider.filename}]")]
end
@@ -278,4 +300,14 @@ Puppet::Type.newtype(:dns_zone2, self_refresh: true) do
See the file resource's documentation for details.
EOF
end
+
+ newparam(:directory) do
+ desc <<-EOF
+ Directory in which zone files will be stored.
+ EOF
+
+ defaultto '/var/named/zones'
+ end
+
+ autorequire(:file) { || [value(:directory)] }
end