Sha256: 1f4e3838767bc7b685b074900211546ee19788cff0c313013acb2c00c9dd78b9

Contents?: true

Size: 738 Bytes

Versions: 9

Compression:

Stored size: 738 Bytes

Contents

interval 60
default[:rule_file] = '/etc/network/iptables'
always_start true

run_if do
  File.exists? plugin.rule_file
end

collect do

  def delete_counters(str)
    str.gsub(/\[\d+\:\d+\]/, '').strip
  end

  current_rules = shell_out!('iptables-save').stdout.split("\n").map do |x|
    x[0] == '#' ? nil : delete_counters(x)
  end.compact.join("\n")
  saved_rules = File.read(plugin.rule_file).split("\n").map do |x|
    x[0] == '#' ? nil : delete_counters(x) # delete counters and comments
  end.compact.join("\n")

  event(
    :service     => "iptables #{plugin.rule_file}",
    :state       => current_rules == saved_rules,
    :description => "iptables rules different between file: #{plugin.rule_file} and iptables-save"
  )
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
kurchatov-0.0.5.pre5 examples/iptables.rb
kurchatov-0.0.5.pre4 examples/iptables.rb
kurchatov-0.0.5.pre2 examples/iptables.rb
kurchatov-0.0.5.pre1 examples/iptables.rb
kurchatov-0.0.4 examples/iptables.rb
kurchatov-0.0.4d examples/iptables.rb
kurchatov-0.0.4c examples/iptables.rb
kurchatov-0.0.4b examples/iptables.rb
kurchatov-0.0.3 examples/iptables.rb