From c7417a7e3bd67b292573ca36a57def89e628a992 Mon Sep 17 00:00:00 2001 From: Seth Lyons Date: Wed, 11 Mar 2015 14:17:20 -0400 Subject: [PATCH 1/2] fix test to match expected parameter --- spec/classes/bind_server_spec.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/classes/bind_server_spec.rb b/spec/classes/bind_server_spec.rb index b42cf5610..73b63fc75 100644 --- a/spec/classes/bind_server_spec.rb +++ b/spec/classes/bind_server_spec.rb @@ -10,7 +10,7 @@ 'hasstatus' => true, 'enable' => true, 'ensure' => 'running', - 'restart' => '/sbin/service named reload' + 'restart' => 'service named reload' })} it 'should create the logging directory' do expect { should contain_file('/var/log/named').with({ @@ -22,4 +22,4 @@ })} end -end \ No newline at end of file +end From b30551bef715bef181ff8597759fb5b59dccefa4 Mon Sep 17 00:00:00 2001 From: Seth Lyons Date: Wed, 11 Mar 2015 17:33:31 +0000 Subject: [PATCH 2/2] add support for keys --- manifests/server/conf.pp | 3 +++ templates/named.conf.erb | 30 ++++++++++++++++++++++++++---- 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/manifests/server/conf.pp b/manifests/server/conf.pp index 1f11132fc..507d74f26 100644 --- a/manifests/server/conf.pp +++ b/manifests/server/conf.pp @@ -56,6 +56,8 @@ # and the value is an array of config lines. Default: empty # $includes: # Array of absolute paths to named.conf include files. Default: empty +# $keys: +# Array containing key parameters as key/value pairs # # Sample Usage : # bind::server::conf { '/etc/named.conf': @@ -107,6 +109,7 @@ $zones = {}, $includes = [], $views = {}, + $keys = {}, ) { # Everything is inside a single template diff --git a/templates/named.conf.erb b/templates/named.conf.erb index bce153ce2..7002a5730 100644 --- a/templates/named.conf.erb +++ b/templates/named.conf.erb @@ -10,6 +10,16 @@ acl <%= key %> { <%= line %>; <% end -%> }; +<% end -%> +<% end -%> + +<% if !@keys.empty? -%> +<% @keys.sort_by {|key, value| key}.each do |key,value| -%> +key <%= key %> { +<% value.each do |k, v| -%> + <%= k %> "<%= v %>"; +<% end -%> +}; <% end -%> <% end -%> @@ -69,14 +79,17 @@ options { allow-transfer { <%= @allow_transfer.join("; ") %>; }; <% end -%> <% if !@check_names.empty? -%> -<% @check_names.each do |line| -%> - check-names <%= line %>; -<% end -%> + check-names <%= @check_names.join(' ') %>; <% end -%> <% if !@extra_options.empty? -%> <% @extra_options.sort_by {|key, value| key}.each do |key,value| -%> + <%# Deal with options that don't play well as array elements %> + <% if key.eql?('also-notify') -%> + <%= key %> { <%= value.join('; ') %>; }; + <% else -%> <%= key %> <%= value %>; + <% end -%> <% end -%> <% end -%> @@ -105,7 +118,7 @@ logging { }; <% if !@views.empty? -%> -<% @views.sort_by {|key,value| key}.each do |key,value| -%> +<% @views.each do |key,value| -%> <% valid_keys = %w(allow-notify allow-query allow-recursion allow-transfer allow-update-forwarding forwarders match-clients match-destinations match-recursive-only) -%> view "<%= key %>" { <% valid_keys.sort.each do |valid_key| -%> @@ -118,6 +131,15 @@ view "<%= key %>" { include "<%= filename %>"; <% end -%> <% end -%> +<% if value['server'] and !value['server'].empty? -%> +<% value['server'].sort_by {|key, value| key}.each do |key,value| -%> + server <%= key %> { +<% value.each do |line| -%> + <%= line %>; +<% end -%> + }; +<% end -%> +<% end -%> <% if value['zones'] and !value['zones'].empty? -%> /* View specific zones */ <% value['zones'].sort_by {|key, value| key}.each do |key,value| -%>