]> review.fuel-infra Code Review - puppet-modules/puppetlabs-firewall.git/commitdiff
(#10957) add iptables_version and ip6tables_version facts
authorJonathan Boyett <jonathan@failingservers.com>
Wed, 30 Nov 2011 23:54:29 +0000 (15:54 -0800)
committerKen Barber <ken@bob.sh>
Sat, 3 Dec 2011 21:12:17 +0000 (21:12 +0000)
These facts return the version of iptables or ip6tables by running --version
on the binary in question.

lib/facter/iptables.rb
spec/unit/facter/iptables_spec.rb [new file with mode: 0644]

index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..d6ee3fc0c65128bdcb4eff556ccb5635b51d6b92 100644 (file)
@@ -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 (file)
index 0000000..f0dd81d
--- /dev/null
@@ -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