Class: IPTables::Configuration
- Inherits:
-
Object
- Object
- IPTables::Configuration
- Defined in:
- lib/iptables/configuration.rb
Constant Summary collapse
- @@json_pattern =
/\.js(on)?$/
Instance Method Summary collapse
- #converge_firewall ⇒ Object
- #handle_json(file_name) ⇒ Object
-
#initialize(*args) ⇒ Configuration
constructor
A new instance of Configuration.
- #interpolations(in_interpolations = nil) ⇒ Object
- #macros(in_macros = nil) ⇒ Object
- #parse_files(*args) ⇒ Object
- #policy(in_policy = nil) ⇒ Object
- #policy6(in_policy = nil) ⇒ Object
- #primitives(in_primitives = nil) ⇒ Object
- #rules(in_rules = nil) ⇒ Object
- #services(in_services = nil) ⇒ Object
Constructor Details
#initialize(*args) ⇒ Configuration
Returns a new instance of Configuration.
7 8 9 10 |
# File 'lib/iptables/configuration.rb', line 7 def initialize(*args) @parsed_hash = {} self.parse_files(*args) end |
Instance Method Details
#converge_firewall ⇒ Object
109 110 111 112 113 114 |
# File 'lib/iptables/configuration.rb', line 109 def converge_firewall() policy_fw = self.policy rules_fw = self.rules policy_fw.merge(rules_fw) return policy_fw end |
#handle_json(file_name) ⇒ Object
100 101 102 103 104 105 106 107 |
# File 'lib/iptables/configuration.rb', line 100 def handle_json(file_name) json = File.read(file_name) JSON.parse(json).each{ |key, value| $log.debug("reading #{key} from file #{file_name}") raise "duplicate key: #{key}" if @parsed_hash.has_key? key @parsed_hash[key] = value } end |
#interpolations(in_interpolations = nil) ⇒ Object
46 47 48 49 50 51 52 53 54 |
# File 'lib/iptables/configuration.rb', line 46 def interpolations(in_interpolations = nil) @interpolations ||= nil return @interpolations unless @interpolations.nil? unless in_interpolations.nil? @interpolations = in_interpolations return @interpolations end @interpolations = IPTables::Interpolations.new(self.primitives) end |
#macros(in_macros = nil) ⇒ Object
89 90 91 92 93 94 95 96 97 98 |
# File 'lib/iptables/configuration.rb', line 89 def macros(in_macros = nil) @macros ||= nil return @macros unless @macros.nil? unless in_macros.nil? @macros = in_macros return @macros end raise 'missing macros' unless @parsed_hash.has_key? 'macros' @macros = IPTables::Macros.new(@parsed_hash['macros']) end |
#parse_files(*args) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/iptables/configuration.rb', line 12 def parse_files(*args) args.each{ |arg| $log.debug("reading arg #{arg}") case arg when @@json_pattern handle_json(arg) else raise "don't know how to handle #{arg.inspect}" end } end |
#policy(in_policy = nil) ⇒ Object
24 25 26 27 28 29 30 31 32 33 |
# File 'lib/iptables/configuration.rb', line 24 def policy(in_policy = nil) @policy ||= nil return @policy unless @policy.nil? unless in_policy.nil? @policy = in_policy return @policy end raise 'missing policy' unless @parsed_hash.has_key? 'policy' @policy = IPTables::Tables.new(@parsed_hash['policy'], self) end |
#policy6(in_policy = nil) ⇒ Object
35 36 37 38 39 40 41 42 43 44 |
# File 'lib/iptables/configuration.rb', line 35 def policy6(in_policy = nil) @policy6 ||= nil return @policy6 unless @policy6.nil? unless in_policy.nil? @policy6 = in_policy return @policy6 end raise 'missing policy6' unless @parsed_hash.has_key? 'policy6' @policy6 = IPTables::Tables.new(@parsed_hash['policy6'], self) end |
#primitives(in_primitives = nil) ⇒ Object
56 57 58 59 60 61 62 63 64 65 |
# File 'lib/iptables/configuration.rb', line 56 def primitives(in_primitives = nil) @primitives ||= nil return @primitives unless @primitives.nil? unless in_primitives.nil? @primitives = in_primitives return @primitives end raise 'missing primitives' unless @parsed_hash.has_key? 'primitives' @primitives = IPTables::Primitives.new(@parsed_hash['primitives']) end |
#rules(in_rules = nil) ⇒ Object
67 68 69 70 71 72 73 74 75 76 |
# File 'lib/iptables/configuration.rb', line 67 def rules(in_rules = nil) @rules ||= nil return @rules unless @rules.nil? unless in_rules.nil? @rules = in_rules return @rules end raise 'missing rules' unless @parsed_hash.has_key? 'rules' @rules = IPTables::Tables.new(@parsed_hash['rules'], self) end |
#services(in_services = nil) ⇒ Object
78 79 80 81 82 83 84 85 86 87 |
# File 'lib/iptables/configuration.rb', line 78 def services(in_services = nil) @services ||= nil return @services unless @services.nil? unless in_services.nil? @services = in_services return @services end raise 'missing services' unless @parsed_hash.has_key? 'services' @services = IPTables::Services.new(@parsed_hash['services']) end |