]> review.fuel-infra Code Review - puppet-modules/puppetlabs-firewall.git/commitdiff
Make rpfilter feature conditional based on minimal requirements
authorAristarkh Zagorodnikov <xm@drive.net>
Tue, 14 Dec 2021 21:45:16 +0000 (00:45 +0300)
committerAristarkh Zagorodnikov <xm@drive.net>
Tue, 14 Dec 2021 21:45:43 +0000 (00:45 +0300)
lib/puppet/provider/firewall/ip6tables.rb
lib/puppet/provider/firewall/iptables.rb

index 54911ef6fa372eb86c9340083ab52213342c0146..0bc4f5d083a5af33d09e84131495e9d6c8c019eb 100644 (file)
@@ -46,7 +46,6 @@ Puppet::Type.type(:firewall).provide :ip6tables, parent: :iptables, source: :ip6
   has_feature :queue_num
   has_feature :queue_bypass
   has_feature :ct_target
-  has_feature :rpfilter
 
   optional_commands(ip6tables: 'ip6tables',
                     ip6tables_save: 'ip6tables-save')
@@ -66,6 +65,11 @@ Puppet::Type.type(:firewall).provide :ip6tables, parent: :iptables, source: :ip6
     has_feature :random_fully
   end
 
+  if (kernelversion && Puppet::Util::Package.versioncmp(kernelversion, '3.3') >= 0) &&
+    (ip6tables_version && Puppet::Util::Package.versioncmp(ip6tables_version, '1.4.13') >= 0)
+    has_feature :rpfilter
+  end
+
   def initialize(*args)
     ip6tables_version = Facter.value('ip6tables_version')
     raise ArgumentError, 'The ip6tables provider is not supported on version 1.3 of iptables' if ip6tables_version&.match(%r{1\.3\.\d})
index f193d5b8eaf552f0ba2363bb8a9b7406153b58e4..3f356f1a9d06b815bb814c826a214229ea321dfa 100644 (file)
@@ -51,7 +51,6 @@ Puppet::Type.type(:firewall).provide :iptables, parent: Puppet::Provider::Firewa
   has_feature :queue_bypass
   has_feature :ipvs
   has_feature :ct_target
-  has_feature :rpfilter
 
   optional_commands(iptables: 'iptables',
                     iptables_save: 'iptables-save')
@@ -72,6 +71,12 @@ Puppet::Type.type(:firewall).provide :iptables, parent: Puppet::Provider::Firewa
     has_feature :random_fully
   end
 
+  if (kernelversion && Puppet::Util::Package.versioncmp(kernelversion, '3.3') >= 0) &&
+     (iptables_version && Puppet::Util::Package.versioncmp(iptables_version, '1.4.13') >= 0)
+    has_feature :rpfilter
+  end
+
+
   @protocol = 'IPv4'
 
   @resource_map = {