From 6d44e2f006a71c57b409a2ad1d342de77b57c9a0 Mon Sep 17 00:00:00 2001 From: Jonathan Boyett Date: Wed, 30 Nov 2011 15:54:29 -0800 Subject: [PATCH] (#10957) add iptables_version and ip6tables_version facts These facts return the version of iptables or ip6tables by running --version on the binary in question. --- lib/facter/iptables.rb | 23 +++++++++++++++++++++++ spec/unit/facter/iptables_spec.rb | 21 +++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 spec/unit/facter/iptables_spec.rb diff --git a/lib/facter/iptables.rb b/lib/facter/iptables.rb index e69de29..d6ee3fc 100644 --- a/lib/facter/iptables.rb +++ b/lib/facter/iptables.rb @@ -0,0 +1,23 @@ +Facter.add(:iptables_version) do + confine :kernel => :linux + setcode do + version = Facter::Util::Resolution.exec('iptables --version') + if version + version.match(/\d+\.\d+\.\d+/).to_s + else + nil + end + end +end + +Facter.add(:ip6tables_version) do + confine :kernel => :linux + setcode do + version = Facter::Util::Resolution.exec('ip6tables --version') + if version + version.match(/\d+\.\d+\.\d+/).to_s + else + nil + end + end +end diff --git a/spec/unit/facter/iptables_spec.rb b/spec/unit/facter/iptables_spec.rb new file mode 100644 index 0000000..f0dd81d --- /dev/null +++ b/spec/unit/facter/iptables_spec.rb @@ -0,0 +1,21 @@ +require 'spec_helper' +require 'facter/iptables' + +describe "Facter::Util::Fact" do + before { + Facter.fact(:kernel).stubs(:value).returns("Linux") + Facter.fact(:kernelrelease).stubs(:value).returns("2.6") + } + + describe 'iptables_version' do + it { + Facter::Util::Resolution.stubs(:exec).with('iptables --version').returns('iptables v1.4.7') + Facter.fact(:iptables_version).value.should == '1.4.7' + } + end + + describe 'ip6tables_version' do + before { Facter::Util::Resolution.stubs(:exec).with('ip6tables --version').returns('ip6tables v1.4.7') } + it { Facter.fact(:ip6tables_version).value.should == '1.4.7' } + end +end -- 2.45.2