From ef5e2f10349070c72736fc544eea1cffe6322ed0 Mon Sep 17 00:00:00 2001 From: Colleen Murphy Date: Thu, 26 Apr 2018 21:33:35 +0200 Subject: [PATCH] Fix scope of vhost template variables Dynamic scoping for variables in ERB templates was removed in puppet 4[1] which means that the variables defined in the openstackci::logserver class cannot be found when it is referenced in the httpd::vhost defined type and will be evaluated as nil when puppet runs. Use scope.lookupvar instead to be explicit about the variable's source. [1] https://puppet.com/docs/puppet/4.10/lang_updating_manifests.html#dynamic-scoping-in-erb Change-Id: Iea37fb14bc332cbf2d598b908bce997786814924 --- templates/logs-dev.vhost.erb | 16 ++++++++-------- templates/logs.vhost.erb | 16 ++++++++-------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/templates/logs-dev.vhost.erb b/templates/logs-dev.vhost.erb index 0700b5c..c9b0403 100644 --- a/templates/logs-dev.vhost.erb +++ b/templates/logs-dev.vhost.erb @@ -57,14 +57,14 @@ NameVirtualHost <%= @vhost_name %>:<%= @port %> Satisfy Any -<% @readmes.each do |pattern, helpfile| -%> +<% scope.lookupvar('::openstackci::logserver::readmes').each do |pattern, helpfile| -%> <%= pattern %>> ReadmeName <%= helpfile %> <% end -%> RewriteEngine On -<% if @ara_middleware -%> +<% if scope.lookupvar('::openstackci::logserver::ara_middleware') -%> Allow from all @@ -73,20 +73,20 @@ NameVirtualHost <%= @vhost_name %>:<%= @port %> # ARA sqlite middleware configuration # See docs for details: https://ara.readthedocs.io/en/latest/advanced.html - SetEnv ARA_WSGI_TMPDIR_MAX_AGE <%= @ara_middleware_tmpdir_max_age %> + SetEnv ARA_WSGI_TMPDIR_MAX_AGE <%= scope.lookupvar('::openstackci::logserver::ara_middleware_tmpdir_max_age') %> SetEnv ARA_WSGI_LOG_ROOT <%= @docroot %> - SetEnv ARA_WSGI_DATABASE_DIRECTORY <%= @ara_middleware_database_directory %> + SetEnv ARA_WSGI_DATABASE_DIRECTORY <%= scope.lookupvar('::openstackci::logserver::ara_middleware_database_directory') %> - # Redirect .*/<%= @ara_middleware_database_directory %> to the ARA sqlite wsgi middleware + # Redirect .*/<%= scope.lookupvar('::openstackci::logserver::ara_middleware_database_directory') %> to the ARA sqlite wsgi middleware # This middleware automatically loads the ARA web application with the - # database located at .*/<%= @ara_middleware_database_directory %>/ansible.sqlite. + # database located at .*/<%= scope.lookupvar('::openstackci::logserver::ara_middleware_database_directory') %>/ansible.sqlite. # If we get a request directly to the database file, don't load the middleware # so that users can download the raw database if they wish. - WSGIScriptAliasMatch ^.*/<%= @ara_middleware_database_directory %>(?!/ansible.sqlite) /usr/local/bin/ara-wsgi-sqlite + WSGIScriptAliasMatch ^.*/<%= scope.lookupvar('::openstackci::logserver::ara_middleware_database_directory') %>(?!/ansible.sqlite) /usr/local/bin/ara-wsgi-sqlite # Everything beyond this point is rewritten to htmlify. # Make sure we don't do that for dynamic ARA reports. - RewriteCond %{REQUEST_URI} ^.*/<%= @ara_middleware_database_directory %> [NC] + RewriteCond %{REQUEST_URI} ^.*/<%= scope.lookupvar('::openstackci::logserver::ara_middleware_database_directory') %> [NC] RewriteRule .* - [L] <% end -%> diff --git a/templates/logs.vhost.erb b/templates/logs.vhost.erb index 3c23e65..3c8275b 100644 --- a/templates/logs.vhost.erb +++ b/templates/logs.vhost.erb @@ -67,7 +67,7 @@ NameVirtualHost <%= @vhost_name %>:<%= @port %> Satisfy Any -<% @readmes.each do |pattern, helpfile| -%> +<% scope.lookupvar('::openstackci::logserver::readmes').each do |pattern, helpfile| -%> <%= pattern %>> ReadmeName <%= helpfile %> @@ -78,7 +78,7 @@ NameVirtualHost <%= @vhost_name %>:<%= @port %> RewriteEngine On -<% if @ara_middleware -%> +<% if scope.lookupvar('::openstackci::logserver::ara_middleware') -%> Allow from all @@ -87,20 +87,20 @@ NameVirtualHost <%= @vhost_name %>:<%= @port %> # ARA sqlite middleware configuration # See docs for details: https://ara.readthedocs.io/en/latest/advanced.html - SetEnv ARA_WSGI_TMPDIR_MAX_AGE <%= @ara_middleware_tmpdir_max_age %> + SetEnv ARA_WSGI_TMPDIR_MAX_AGE <%= scope.lookupvar('::openstackci::logserver::ara_middleware_tmpdir_max_age') %> SetEnv ARA_WSGI_LOG_ROOT <%= @docroot %> - SetEnv ARA_WSGI_DATABASE_DIRECTORY <%= @ara_middleware_database_directory %> + SetEnv ARA_WSGI_DATABASE_DIRECTORY <%= scope.lookupvar('::openstackci::logserver::ara_middleware_database_directory') %> - # Redirect .*/<%= @ara_middleware_database_directory %> to the ARA sqlite wsgi middleware + # Redirect .*/<%= scope.lookupvar('::openstackci::logserver::ara_middleware_database_directory') %> to the ARA sqlite wsgi middleware # This middleware automatically loads the ARA web application with the - # database located at .*/<%= @ara_middleware_database_directory %>/ansible.sqlite. + # database located at .*/<%= scope.lookupvar('::openstackci::logserver::ara_middleware_database_directory') %>/ansible.sqlite. # If we get a request directly to the database file, don't load the middleware # so that users can download the raw database if they wish. - WSGIScriptAliasMatch ^.*/<%= @ara_middleware_database_directory %>(?!/ansible.sqlite) /usr/local/bin/ara-wsgi-sqlite + WSGIScriptAliasMatch ^.*/<%= scope.lookupvar('::openstackci::logserver::ara_middleware_database_directory') %>(?!/ansible.sqlite) /usr/local/bin/ara-wsgi-sqlite # Everything beyond this point is rewritten to htmlify. # Make sure we don't do that for dynamic ARA reports. - RewriteCond %{REQUEST_URI} ^.*/<%= @ara_middleware_database_directory %> [NC] + RewriteCond %{REQUEST_URI} ^.*/<%= scope.lookupvar('::openstackci::logserver::ara_middleware_database_directory') %> [NC] RewriteRule .* - [L] <% end -%>