From 40d157482e5b0f5debd0c90c2d887a62b049ae5f Mon Sep 17 00:00:00 2001 From: herwig Bogaert Date: Fri, 25 Mar 2016 11:14:29 +0000 Subject: [PATCH] Allow multiple 'proxy_cache_valid' directives --- manifests/resource/location.pp | 2 +- manifests/resource/vhost.pp | 2 +- spec/defines/resource_location_spec.rb | 11 ++++++++++- templates/vhost/locations/proxy.erb | 6 ++++-- 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/manifests/resource/location.pp b/manifests/resource/location.pp index 3b410ff..aea8119 100644 --- a/manifests/resource/location.pp +++ b/manifests/resource/location.pp @@ -296,7 +296,7 @@ define nginx::resource::location ( validate_string($proxy_cache_use_stale) } if ($proxy_cache_valid != false) { - validate_string($proxy_cache_valid) + validate_slength(any2array($proxy_cache_valid),12,1) } if ($proxy_method != undef) { validate_string($proxy_method) diff --git a/manifests/resource/vhost.pp b/manifests/resource/vhost.pp index 8a2473d..af4e700 100644 --- a/manifests/resource/vhost.pp +++ b/manifests/resource/vhost.pp @@ -372,7 +372,7 @@ define nginx::resource::vhost ( validate_string($proxy_cache_use_stale) } if ($proxy_cache_valid != false) { - validate_string($proxy_cache_valid) + validate_slength(any2array($proxy_cache_valid),12,1) } if ($proxy_method != undef) { validate_string($proxy_method) diff --git a/spec/defines/resource_location_spec.rb b/spec/defines/resource_location_spec.rb index bdb1243..30e102e 100644 --- a/spec/defines/resource_location_spec.rb +++ b/spec/defines/resource_location_spec.rb @@ -599,11 +599,20 @@ describe 'nginx::resource::location' do :notmatch => /proxy_cache_valid\b/ }, { - :title => 'should set proxy_cache_valid', + :title => 'should set proxy_cache_valid when string', :attr => 'proxy_cache_valid', :value => 'value', :match => /^\s+proxy_cache_valid\s+value;/, }, + { + :title => 'should set proxy_cache_valid when array of strings', + :attr => 'proxy_cache_valid', + :value => ['value1','value2'], + :match => [ + /^\s+proxy_cache_valid\s+value1;/, + /^\s+proxy_cache_valid\s+value2;/, + ] + }, { :title => 'should not set proxy_cache', :attr => 'proxy_cache', diff --git a/templates/vhost/locations/proxy.erb b/templates/vhost/locations/proxy.erb index 15a3f72..73d42bb 100644 --- a/templates/vhost/locations/proxy.erb +++ b/templates/vhost/locations/proxy.erb @@ -16,8 +16,10 @@ <% if @proxy_cache -%> proxy_cache <%= @proxy_cache %>; <% end -%> -<% if @proxy_cache_valid -%> - proxy_cache_valid <%= @proxy_cache_valid %>; +<% if @proxy_cache_valid && Array(@proxy_cache_valid).size > 0 -%> + <%- Array(@proxy_cache_valid).each do |line| -%> + proxy_cache_valid <%= line %>; + <%- end -%> <% end -%> <% if @proxy_cache_use_stale -%> proxy_cache_use_stale <%= @proxy_cache_use_stale %>;