From fe3204b57107da5cdcee30d4e0d3538462730af9 Mon Sep 17 00:00:00 2001 From: William Yardley Date: Thu, 22 Sep 2016 09:40:19 -0700 Subject: [PATCH] add $passenger_pre_start variable --- manifests/resource/vhost.pp | 7 +++++++ spec/defines/resource_vhost_spec.rb | 8 ++++++++ templates/vhost/vhost_footer.erb | 3 +++ 3 files changed, 18 insertions(+) diff --git a/manifests/resource/vhost.pp b/manifests/resource/vhost.pp index a9dfcb391..15305c46d 100644 --- a/manifests/resource/vhost.pp +++ b/manifests/resource/vhost.pp @@ -152,6 +152,9 @@ # backend application (Passenger 5.0+) # [*passenger_env_var*] - Allows one to set environemnt variables to pass # to the backend application (Passenger 5.0+) +# [*passenger_pre_start*] - Allows setting a URL to pre-warm the host. Per +# Passenger docs, the "domain part of the URL" must match a value of +# server_name # [*log_by_lua*] - Run the Lua source code inlined as the # at the log request processing phase. # This does not replace the current access logs, but runs after. @@ -272,6 +275,7 @@ $passenger_cgi_param = undef, $passenger_set_header = undef, $passenger_env_var = undef, + $passenger_pre_start = undef, $log_by_lua = undef, $log_by_lua_file = undef, $use_default_location = true, @@ -511,6 +515,9 @@ if ($passenger_env_var != undef) { validate_hash($passenger_env_var) } + if ($passenger_pre_start != undef) { + validate_string($passenger_pre_start) + } if ($log_by_lua != undef) { validate_string($log_by_lua) } diff --git a/spec/defines/resource_vhost_spec.rb b/spec/defines/resource_vhost_spec.rb index 4970f537f..7eaecace2 100644 --- a/spec/defines/resource_vhost_spec.rb +++ b/spec/defines/resource_vhost_spec.rb @@ -997,6 +997,14 @@ it { is_expected.to contain_concat__fragment("#{title}-ssl-header").with_content(%r{passenger_env_var test3 test value 3;}) } end + context 'when passenger_pre_start is set' do + let :params do + default_params.merge(passenger_pre_start: 'http://example.com:80/test/me') + end + + it { is_expected.to contain_concat__fragment("#{title}-footer").with_content(%r{passenger_pre_start http://example.com:80/test/me;}) } + end + context 'when vhost name is sanitized' do let(:title) { 'www rspec-vhost com' } let(:params) { default_params } diff --git a/templates/vhost/vhost_footer.erb b/templates/vhost/vhost_footer.erb index f416dbd62..4a543d829 100644 --- a/templates/vhost/vhost_footer.erb +++ b/templates/vhost/vhost_footer.erb @@ -25,3 +25,6 @@ <%= line %> <% end -%> } +<% if @passenger_pre_start -%> +passenger_pre_start <%= @passenger_pre_start %>; +<% end -%>