diff --git a/manifests/view.pp b/manifests/view.pp index ca0c09b..399e888 100644 --- a/manifests/view.pp +++ b/manifests/view.pp @@ -9,6 +9,8 @@ define bind::view ( $recursion_match_clients = 'any', $recursion_match_destinations = '', $recursion_match_only = false, + $notify_source = '', + $also_notify = [], $order = '10', ) { $confdir = $::bind::confdir diff --git a/manifests/zone.pp b/manifests/zone.pp index 449b15b..afcab2c 100644 --- a/manifests/zone.pp +++ b/manifests/zone.pp @@ -6,6 +6,7 @@ define bind::zone ( $dynamic = true, $masters = '', $transfer_source = '', + $notify_source = '', $allow_updates = '', $update_policies = '', $allow_transfers = '', @@ -49,6 +50,10 @@ define bind::zone ( fail("transfer_source may only be provided for bind::zone resources with zone_type 'slave' or 'stub'") } + unless !($notify_source != '' and ! member(['master', 'slave'], $zone_type)) { + fail("notify_source may only be provided for bind::zone resources with zone_type 'master' or 'slave'") + } + unless !($allow_updates != '' and ! $dynamic) { fail("allow_updates may only be provided for bind::zone resources with dynamic set to true") } diff --git a/templates/view.erb b/templates/view.erb index 0adf904..72242eb 100644 --- a/templates/view.erb +++ b/templates/view.erb @@ -42,7 +42,16 @@ view "<%= @name %>" { keys { <%= properties['keys'] %>; }; <%- end -%> }; -<%- end -%> +<%- end -%> +<%- if @also_notify and @also_notify != '' -%> + also-notify { +<%- Array(@also_notify).each do |server| -%> + <%= server %>; +<%- end -%> + }; +<%- end -%> +<%- if @notify_source and @notify_source != '' -%> + notify-source <%= @notify_source %>; <%- end -%> <%- if @include_default_zones and @default_zones_include -%> include "<%= @default_zones_include %>"; diff --git a/templates/zone.conf.erb b/templates/zone.conf.erb index 17ca7c5..aabeea2 100644 --- a/templates/zone.conf.erb +++ b/templates/zone.conf.erb @@ -40,6 +40,9 @@ zone "<%= @_domain %>" { <%- if @transfer_source and @transfer_source != ''-%> transfer-source <%= @transfer_source %>; <%- end -%> +<%- if @notify_source and @notify_source != ''-%> + notify-source <%= @notify_source %>; +<%- end -%> <%- if @allow_updates and @allow_updates != '' -%> allow-update { <%- Array(@allow_updates).each do |allow_update| -%>