From 9193b464128ef2db35d7e124ce36fd7c4bdb6fe9 Mon Sep 17 00:00:00 2001 From: Jan Gantzert Date: Thu, 12 Jan 2017 21:17:13 +0100 Subject: [PATCH] MODULES-4279 Add support for the geoip module --- lib/puppet/provider/firewall/ip6tables.rb | 8 ++++++-- lib/puppet/provider/firewall/iptables.rb | 8 ++++++-- lib/puppet/type/firewall.rb | 13 +++++++++++++ 3 files changed, 25 insertions(+), 4 deletions(-) diff --git a/lib/puppet/provider/firewall/ip6tables.rb b/lib/puppet/provider/firewall/ip6tables.rb index 72d30be..c6a381d 100644 --- a/lib/puppet/provider/firewall/ip6tables.rb +++ b/lib/puppet/provider/firewall/ip6tables.rb @@ -153,6 +153,8 @@ Puppet::Type.type(:firewall).provide :ip6tables, :parent => :iptables, :source = :week_days => "--weekdays", :time_contiguous => "--contiguous", :kernel_timezone => "--kerneltz", + :src_cc => "--src-cc", + :dst_cc => "--dst-cc", } # These are known booleans that do not take a value, but we want to munge @@ -192,7 +194,8 @@ Puppet::Type.type(:firewall).provide :ip6tables, :parent => :iptables, :source = :addrtype => [:src_type, :dst_type], :iprange => [:src_range, :dst_range], :owner => [:uid, :gid], - :time => [:time_start, :time_stop, :month_days, :week_days, :date_start, :date_stop, :time_contiguous, :kernel_timezone] + :time => [:time_start, :time_stop, :month_days, :week_days, :date_start, :date_stop, :time_contiguous, :kernel_timezone], + :geoip => [:src_cc, :dst_cc] } # Create property methods dynamically @@ -237,6 +240,7 @@ Puppet::Type.type(:firewall).provide :ip6tables, :parent => :iptables, :source = :rhitcount, :rttl, :rname, :mask, :rsource, :rdest, :ipset, :string, :string_algo, :string_from, :string_to, :jump, :clamp_mss_to_pmtu, :gateway, :todest, :tosource, :toports, :checksum_fill, :log_level, :log_prefix, :log_uid, :reject, :set_mss, :set_dscp, :set_dscp_class, :mss, :queue_num, :queue_bypass, - :set_mark, :match_mark, :connlimit_above, :connlimit_mask, :connmark, :time_start, :time_stop, :month_days, :week_days, :date_start, :date_stop, :time_contiguous, :kernel_timezone] + :set_mark, :match_mark, :connlimit_above, :connlimit_mask, :connmark, :time_start, :time_stop, :month_days, :week_days, :date_start, :date_stop, :time_contiguous, :kernel_timezone, + :src_cc, :dst_cc] end diff --git a/lib/puppet/provider/firewall/iptables.rb b/lib/puppet/provider/firewall/iptables.rb index 39bc228..dd0a72c 100644 --- a/lib/puppet/provider/firewall/iptables.rb +++ b/lib/puppet/provider/firewall/iptables.rb @@ -146,6 +146,8 @@ Puppet::Type.type(:firewall).provide :iptables, :parent => Puppet::Provider::Fir :clusterip_total_nodes => "--total-nodes", :clusterip_local_node => "--local-node", :clusterip_hash_init => "--hash-init", + :src_cc => "--src-cc", + :dst_cc => "--dst-cc", } # These are known booleans that do not take a value, but we want to munge @@ -185,7 +187,8 @@ Puppet::Type.type(:firewall).provide :iptables, :parent => Puppet::Provider::Fir :addrtype => [:src_type, :dst_type], :iprange => [:src_range, :dst_range], :owner => [:uid, :gid], - :time => [:time_start, :time_stop, :month_days, :week_days, :date_start, :date_stop, :time_contiguous, :kernel_timezone] + :time => [:time_start, :time_stop, :month_days, :week_days, :date_start, :date_stop, :time_contiguous, :kernel_timezone], + :geoip => [:src_cc, :dst_cc] } def self.munge_resource_map_from_existing_values(resource_map_original, compare) @@ -273,7 +276,8 @@ Puppet::Type.type(:firewall).provide :iptables, :parent => Puppet::Provider::Fir :clusterip_clustermac, :clusterip_total_nodes, :clusterip_local_node, :clusterip_hash_init, :queue_num, :queue_bypass, :clamp_mss_to_pmtu, :gateway, :set_mss, :set_dscp, :set_dscp_class, :todest, :tosource, :toports, :to, :checksum_fill, :random, :log_prefix, :log_level, :log_uid, :reject, :set_mark, :match_mark, :mss, :connlimit_above, :connlimit_mask, :connmark, :time_start, :time_stop, - :month_days, :week_days, :date_start, :date_stop, :time_contiguous, :kernel_timezone + :month_days, :week_days, :date_start, :date_stop, :time_contiguous, :kernel_timezone, + :src_cc, :dst_cc ] def insert diff --git a/lib/puppet/type/firewall.rb b/lib/puppet/type/firewall.rb index e0575f4..a0de965 100644 --- a/lib/puppet/type/firewall.rb +++ b/lib/puppet/type/firewall.rb @@ -1485,6 +1485,19 @@ Puppet::Type.newtype(:firewall) do newvalues(:true, :false) end + newproperty(:src_cc) do + desc <<-EOS + src attribute for the module geoip + EOS + newvalues(/^[A-Z]{2}(,[A-Z]{2})*$/) + end + + newproperty(:dst_cc) do + desc <<-EOS + dst attribute for the module geoip + EOS + newvalues(/^[A-Z]{2}(,[A-Z]{2})*$/) + end autorequire(:firewallchain) do reqs = [] -- 2.45.2