|
32 | 32 | replace => false, |
33 | 33 | } |
34 | 34 |
|
35 | | - $http_edge_services.each | $service | { |
| 35 | + $http_edge_rules_all_placeholder = $http_edge_services.map | $service | { |
36 | 36 | $http_edge_rules = flatten($http_edge_domains_envs.map |$domain, $options| { |
37 | 37 | $match_type = pick($options['match_type'], 'str') |
38 | 38 | $hdr_match = $match_type ? { |
|
80 | 80 | } |
81 | 81 | }) |
82 | 82 |
|
83 | | - case $service { |
84 | | - 'redirects': { $http_edge_redirect_rules = $http_edge_rules } |
85 | | - 'nofollow': { $http_edge_nofollow_rules = $http_edge_rules } |
86 | | - 'status410': { $http_edge_status410_rules = $http_edge_rules } |
87 | | - 'canonicals': { $http_edge_canonicals_rules = $http_edge_rules } |
88 | | - } |
| 83 | + #case $service { |
| 84 | + # 'redirects': { $http_edge_redirect_rules = $http_edge_rules } |
| 85 | + # 'nofollow': { $http_edge_nofollow_rules = $http_edge_rules } |
| 86 | + # 'status410': { $http_edge_status410_rules = $http_edge_rules } |
| 87 | + # 'canonicals': { $http_edge_canonicals_rules = $http_edge_rules } |
| 88 | + #} |
| 89 | + [$service, $http_edge_rules] |
89 | 90 | } |
90 | 91 |
|
| 92 | + $http_edge_rules_all = Hash($http_edge_rules_all_placeholder) |
| 93 | + $http_edge_rules_all_real = $http_edge_rules_all.filter |$key $value| { $value != "" } |
| 94 | + |
91 | 95 | if 'canonicals' in $http_edge_services { |
92 | | - $http_edge_canonicals_rules_real = flatten($http_edge_canonicals_rules, 'set-var(txn.canonical_custom) hdr(X-Canonical-Custom) if { hdr(X-Canonical-Custom) -m found }', 'del-header X-Canonical-Custom if { hdr(X-Canonical-Custom) -m found }') |
| 96 | + $http_edge_canonicals_rules_real = flatten($http_edge_rules_all_real['canonicals'], 'set-var(txn.canonical_custom) hdr(X-Canonical-Custom) if { hdr(X-Canonical-Custom) -m found }', 'del-header X-Canonical-Custom if { hdr(X-Canonical-Custom) -m found }') |
93 | 97 | $http_response_rules = $ducktape::haproxy::frontends[$http_edge_frontend]['options']['http-response'] |
94 | 98 | $http_response_rules_real = concat($http_response_rules, 'set-header link %[var(txn.canonical_custom)] if { var(txn.canonical_custom) -m found }') |
95 | 99 | $http_response_rules_hash = {$http_edge_frontend => {'options' => {'http-response' => $http_response_rules_real}}} |
96 | | - $frontends_real = deep_merge($ducktape::haproxy::frontends, $http_request_rules_hash) |
| 100 | + #$frontends_real = deep_merge($ducktape::haproxy::frontends, $http_request_rules_hash) |
97 | 101 | } |
98 | 102 |
|
99 | 103 | # Insert http-edge redirect rules at the marker position, or at the end if no marker |
100 | 104 | $http_request_rules = $ducktape::haproxy::frontends[$http_edge_frontend]['options']['http-request'] |
101 | 105 | if grep($http_request_rules, $http_edge_redirect_marker) == [] { |
102 | | - $http_request_rules_with_redirects = concat($http_request_rules, $http_edge_redirect_rules) |
| 106 | + $http_request_rules_with_redirects = concat($http_request_rules, $http_edge_rules_all_real['redirects']) |
103 | 107 | } |
104 | 108 | else { |
105 | | - $http_request_rules_with_redirects = split(regsubst(join($http_request_rules, "\n"), $http_edge_redirect_marker, join($http_edge_redirect_rules, "\n")), "\n") |
| 109 | + $http_request_rules_with_redirects = split(regsubst(join($http_request_rules, "\n"), $http_edge_redirect_marker, join($http_edge_rules_all_real['redirects'], "\n")), "\n") |
106 | 110 | } |
107 | 111 |
|
108 | 112 | if grep($http_request_rules_with_redirects, $http_edge_status410_marker) == [] { |
109 | | - $http_request_rules_with_status410 = concat($http_request_rules_with_redirects, $http_edge_status410_rules) |
| 113 | + $http_request_rules_with_status410 = concat($http_request_rules_with_redirects, $http_edge_rules_all_real['status410']) |
110 | 114 | } |
111 | 115 | else { |
112 | | - $http_request_rules_with_status410 = split(regsubst(join($http_request_rules_with_redirects, "\n"), $http_edge_status410_marker, join($http_edge_status410_rules, "\n")), "\n") |
| 116 | + $http_request_rules_with_status410 = split(regsubst(join($http_request_rules_with_redirects, "\n"), $http_edge_status410_marker, join($http_edge_rules_all_real['status410'], "\n")), "\n") |
113 | 117 | } |
114 | 118 |
|
115 | 119 | if grep($http_request_rules_with_status410, $http_edge_nofollow_marker) == [] { |
116 | | - $http_request_rules_with_nofollow = concat($http_request_rules_with_status410, $http_edge_nofollow_rules) |
| 120 | + $http_request_rules_with_nofollow = concat($http_request_rules_with_status410, $http_edge_rules_all_real['nofollow']) |
117 | 121 | } |
118 | 122 | else { |
119 | | - $http_request_rules_with_nofollow = split(regsubst(join($http_request_rules_with_status410, "\n"), $http_edge_nofollow_marker, join($http_edge_nofollow_rules, "\n")), "\n") |
| 123 | + $http_request_rules_with_nofollow = split(regsubst(join($http_request_rules_with_status410, "\n"), $http_edge_nofollow_marker, join($http_edge_rules_all_real['nofollow'], "\n")), "\n") |
120 | 124 | } |
121 | 125 |
|
122 | 126 | if grep($http_request_rules_with_nofollow, $http_edge_canonical_marker) == [] { |
|
0 commit comments