Skip to content

Commit 43d5e73

Browse files
committed
(puppetlabsGH-1164) Only common jump values should be enforced as upcase
Common jump values, depending on the OS, can be returned either as upcase or downcase values causing idempotentcy issues. This had previously been dealt with by simply enforcing upcase on all passed values. However this caused issues when passing chain's as the jump target and so the code has been update to explicitly upcase the common values only.
1 parent 7fe73ee commit 43d5e73

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

lib/puppet/provider/firewall/firewall.rb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -863,8 +863,10 @@ def self.process_input(should)
863863
should[key][0] = ['!', should[key][0]].join(' ') if negated
864864
end
865865

866-
# `jump` values should always be uppercase
867-
should[:jump] = should[:jump].upcase if should[:jump]
866+
# `jump` common values should always be uppercase
867+
jump_common_values = ['accept', 'reject', 'drop', 'queue', 'return', 'dnat', 'snat', 'log', 'nflog',
868+
'netmp', 'masquerade', 'redirect', 'mark', 'ct']
869+
should[:jump] = should[:jump].upcase if should[:jump] && jump_common_values.include?(should[:jump].downcase)
868870

869871
# `source` and `destination` must be put through host_to_mask
870872
should[:source] = PuppetX::Firewall::Utility.host_to_mask(should[:source], should[:protocol]) if should[:source]

0 commit comments

Comments
 (0)