Skip to content

Commit 7b22dae

Browse files
committed
Stricter data types on apache::vhost::rewrite*
Ideally a Struct would be used instead of Hash for $rewrites, but this is a closer description of the real data type.
1 parent d00aabb commit 7b22dae

File tree

3 files changed

+10
-24
lines changed

3 files changed

+10
-24
lines changed

manifests/vhost.pp

Lines changed: 7 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1856,10 +1856,10 @@
18561856
Array[String[1]] $headers = [],
18571857
Array[String[1]] $request_headers = [],
18581858
Array[String[1]] $filters = [],
1859-
Optional[Array] $rewrites = undef,
1860-
Optional[String] $rewrite_base = undef,
1861-
Optional[Variant[Array[String],String]] $rewrite_rule = undef,
1862-
Optional[Variant[Array[String],String]] $rewrite_cond = undef,
1859+
Array[Hash] $rewrites = [],
1860+
Optional[String[1]] $rewrite_base = undef,
1861+
Optional[String[1]] $rewrite_rule = undef,
1862+
Array[String[1]] $rewrite_cond = [],
18631863
Boolean $rewrite_inherit = false,
18641864
Variant[Array[String],String] $setenv = [],
18651865
Variant[Array[String],String] $setenvif = [],
@@ -1997,13 +1997,6 @@
19971997

19981998
$apache_name = $apache::apache_name
19991999

2000-
if $rewrites {
2001-
unless empty($rewrites) {
2002-
$rewrites_flattened = delete_undef_values(flatten([$rewrites]))
2003-
assert_type(Array[Hash], $rewrites_flattened)
2004-
}
2005-
}
2006-
20072000
# Input validation begins
20082001

20092002
if $access_log_file and $access_log_pipe {
@@ -2225,13 +2218,6 @@
22252218
}
22262219
}
22272220

2228-
# Load mod_rewrite if needed and not yet loaded
2229-
if $rewrites or $rewrite_cond {
2230-
if ! defined(Class['apache::mod::rewrite']) {
2231-
include apache::mod::rewrite
2232-
}
2233-
}
2234-
22352221
# Load mod_alias if needed and not yet loaded
22362222
if ($scriptalias or $scriptaliases != [])
22372223
or ($aliases and $aliases != [])
@@ -2603,7 +2589,9 @@
26032589
# - $rewrite_rule
26042590
# - $rewrite_cond
26052591
# - $rewrite_map
2606-
if $rewrites or $rewrite_rule {
2592+
if (! empty($rewrites) or $rewrite_rule) and $ensure == 'present' {
2593+
include apache::mod::rewrite
2594+
26072595
concat::fragment { "${name}-rewrite":
26082596
target => "${priority_real}${filename}.conf",
26092597
order => 190,

spec/defines/vhost_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -403,7 +403,7 @@
403403
],
404404
'rewrite_base' => '/',
405405
'rewrite_rule' => '^index\.html$ welcome.html',
406-
'rewrite_cond' => '%{HTTP_USER_AGENT} ^MSIE',
406+
'rewrite_cond' => ['%{HTTP_USER_AGENT} ^MSIE'],
407407
'rewrite_inherit' => true,
408408
'setenv' => ['FOO=/bin/true'],
409409
'setenvif' => 'Request_URI "\.gif$" object_is_image=gif',

templates/vhost/_rewrite.erb

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
RewriteBase <%= @rewrite_base %>
99
<%- end -%>
1010

11-
<%- [@rewrites].flatten.compact.each do |rewrite_details| -%>
11+
<%- @rewrites.each do |rewrite_details| -%>
1212
<%- if rewrite_details['comment'] -%>
1313
#<%= rewrite_details['comment'] %>
1414
<%- end -%>
@@ -44,10 +44,8 @@
4444
<%- if @rewrite_base -%>
4545
RewriteBase <%= @rewrite_base %>
4646
<%- end -%>
47-
<%- if @rewrite_cond -%>
48-
<%- Array(@rewrite_cond).each do |cond| -%>
47+
<%- @rewrite_cond.each do |cond| -%>
4948
RewriteCond <%= cond %>
50-
<%- end -%>
5149
<%- end -%>
5250
RewriteRule <%= @rewrite_rule %>
5351
<%- end -%>

0 commit comments

Comments
 (0)