diff options
author | Hugo Hörnquist <hugo@lysator.liu.se> | 2023-06-08 13:36:35 +0200 |
---|---|---|
committer | Hugo Hörnquist <hugo@lysator.liu.se> | 2023-06-08 13:36:35 +0200 |
commit | 858a9dbc499ae872551238e0ec3d4b61cc4f6add (patch) | |
tree | bc56be2d5c99cee80ce56b9e73d5a068f3e78a50 /lib/puppet/type/dns_zone2.rb | |
parent | work (diff) | |
download | dns-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.rb | 38 |
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 |