]> review.fuel-infra Code Review - puppet-modules/puppetlabs-firewall.git/commitdiff
add Gentoo support
authorderdanne <dk@marketing-factory.de>
Mon, 9 Mar 2015 13:09:00 +0000 (14:09 +0100)
committerderdanne <dk@marketing-factory.de>
Mon, 9 Mar 2015 13:09:00 +0000 (14:09 +0100)
manifests/linux.pp
manifests/linux/gentoo.pp [new file with mode: 0644]
manifests/params.pp
metadata.json
spec/unit/classes/firewall_linux_gentoo_spec.rb [new file with mode: 0644]

index 21ec784797328ee362b33f5342562a11cfb3f3b3..e3f5129b691b6bf84fe02381f1fafaf1c006d995 100644 (file)
@@ -54,6 +54,15 @@ class firewall::linux (
         require      => Package['iptables'],
       }
     }
+    'Gentoo': {
+      class { "${title}::gentoo":
+        ensure       => $ensure,
+        enable       => $enable,
+        package_name => $package_name,
+        service_name => $service_name,
+        require      => Package['iptables'],
+      }
+    }
     default: {}
   }
 }
diff --git a/manifests/linux/gentoo.pp b/manifests/linux/gentoo.pp
new file mode 100644 (file)
index 0000000..4264c03
--- /dev/null
@@ -0,0 +1,43 @@
+# = Class: firewall::linux::gentoo
+#
+# Manages `iptables` and `ip6tables` services, and creates files used for
+# persistence, on Arch Linux systems.
+#
+# == Parameters:
+#
+# [*ensure*]
+#   Ensure parameter passed onto Service[] resources.
+#   Default: running
+#
+# [*enable*]
+#   Enable parameter passed onto Service[] resources.
+#   Default: true
+#
+class firewall::linux::gentoo (
+  $ensure       = 'running',
+  $enable       = true,
+  $service_name = $::firewall::params::service_name,
+  $package_name = $::firewall::params::package_name,
+) inherits ::firewall::params {
+  if $package_name {
+    package { $package_name:
+      ensure => present,
+    }
+  }
+
+  service { $service_name:
+    ensure    => $ensure,
+    enable    => $enable,
+    hasstatus => true,
+  }
+
+  file { '/var/lib/iptables/rules-save':
+    ensure => present,
+    before => Service[$service_name],
+  }
+
+  file { '/var/lib/iptables/rules-save6':
+    ensure => present,
+    before => Service[$service_name],
+  }
+}
index 9fa43a0c71f508c664b2df3562df5d1abcaaa875..c8e2ade64254f0285f1a6c8e2297007c3ddfdbb8 100644 (file)
@@ -56,6 +56,10 @@ class firewall::params {
         }
       }
     }
+    'Gentoo': {
+      $service_name = ['iptables','ip6tables']
+      $package_name = 'net-firewall/iptables'
+    }
     default: {
       $package_name = undef
       $service_name = 'iptables'
index bb1e10502a947d3b8d99f369f30569c6bbd66d6e..695bff0bf6ab7d70f76e33a2f5e4d1ecf304a8c4 100644 (file)
@@ -2,7 +2,7 @@
   "name": "puppetlabs-firewall",
   "version": "1.4.0",
   "author": "Puppet Labs",
-  "summary": "Manages Firewalls such as iptable",
+  "summary": "Manages Firewalls such as iptables",
   "license": "Apache-2.0",
   "source": "https://github.com/puppetlabs/puppetlabs-firewall",
   "project_page": "http://github.com/puppetlabs/puppetlabs-firewall",
         "12.04",
         "14.04"
       ]
+    },
+    {
+      "operatingsystem": "Gentoo",
+      "operatingsystemrelease": [
+        "1.0"
+      ]
     }
   ],
   "requirements": [
@@ -73,6 +79,6 @@
     }
   ],
   "dependencies": [
-  
+
   ]
 }
diff --git a/spec/unit/classes/firewall_linux_gentoo_spec.rb b/spec/unit/classes/firewall_linux_gentoo_spec.rb
new file mode 100644 (file)
index 0000000..942d8e4
--- /dev/null
@@ -0,0 +1,41 @@
+require 'spec_helper'
+
+describe 'firewall::linux::gentoo', :type => :class do
+  let(:facts) do
+    {
+      :osfamily        => 'Gentoo',
+      :operatingsystem => 'Gentoo'
+    }
+  end
+  it { should contain_service('iptables').with(
+    :ensure   => 'running',
+    :enable   => 'true'
+  )}
+  it { should contain_service('ip6tables').with(
+    :ensure   => 'running',
+    :enable   => 'true'
+  )}
+  it { should contain_package('net-firewall/iptables').with(
+    :ensure => 'present'
+  )}
+
+  context 'ensure => stopped' do
+    let(:params) {{ :ensure => 'stopped' }}
+    it { should contain_service('iptables').with(
+      :ensure   => 'stopped'
+    )}
+    it { should contain_service('ip6tables').with(
+      :ensure   => 'stopped'
+    )}
+  end
+
+  context 'enable => false' do
+    let(:params) {{ :enable => 'false' }}
+    it { should contain_service('iptables').with(
+      :enable   => 'false'
+    )}
+    it { should contain_service('ip6tables').with(
+      :enable   => 'false'
+    )}
+  end
+end