class OnetableTerminator::Core
Attributes
exec[R]
rules_handler[R]
Public Class Methods
new(dry_run = false)
click to toggle source
# File lib/onetable_terminator/core.rb, line 5 def initialize(dry_run = false) @exec = OnetableTerminator::Iptables::Exec.new dry_run @rules_handler = OnetableTerminator::Iptables::RulesHandler.new end
Public Instance Methods
run()
click to toggle source
# File lib/onetable_terminator/core.rb, line 10 def run rules = retrieve_redundant_rules if rules.empty? logger.debug 'Found no redundant rules, nothing to delete' return end log_redundant_rules rules delete_redundant_rules rules end
Private Instance Methods
delete_redundant_rules(rules)
click to toggle source
# File lib/onetable_terminator/core.rb, line 38 def delete_redundant_rules(rules) logger.debug 'Deleting redundant rules and chains...' rules.each do |rule| exec.delete_opennebula_rule rule.number exec.flush_opennebula_chain rule.target exec.delete_opennebula_chain rule.target end end
log_redundant_rules(rules)
click to toggle source
# File lib/onetable_terminator/core.rb, line 33 def log_redundant_rules(rules) logger.info 'Found these redundant rules:' rules.each { |rule| logger.info rule.raw_line.inspect } end
retrieve_redundant_rules()
click to toggle source
# File lib/onetable_terminator/core.rb, line 24 def retrieve_redundant_rules nics = exec.load_opennebula_chain rules = rules_handler.find_redundant_rules(nics) rules.sort! { |left, right| left.number <=> right.number } rules.reverse! rules end