From: derdanne Date: Mon, 9 Mar 2015 13:09:00 +0000 (+0100) Subject: add Gentoo support X-Git-Tag: 1.5.0~6^2 X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=b63b7f4cfe1bec8fe5c907bd126a21552327584a;p=puppet-modules%2Fpuppetlabs-firewall.git add Gentoo support --- diff --git a/manifests/linux.pp b/manifests/linux.pp index 21ec784..e3f5129 100644 --- a/manifests/linux.pp +++ b/manifests/linux.pp @@ -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 index 0000000..4264c03 --- /dev/null +++ b/manifests/linux/gentoo.pp @@ -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], + } +} diff --git a/manifests/params.pp b/manifests/params.pp index 9fa43a0..c8e2ade 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -56,6 +56,10 @@ class firewall::params { } } } + 'Gentoo': { + $service_name = ['iptables','ip6tables'] + $package_name = 'net-firewall/iptables' + } default: { $package_name = undef $service_name = 'iptables' diff --git a/metadata.json b/metadata.json index bb1e105..695bff0 100644 --- a/metadata.json +++ b/metadata.json @@ -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", @@ -60,6 +60,12 @@ "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 index 0000000..942d8e4 --- /dev/null +++ b/spec/unit/classes/firewall_linux_gentoo_spec.rb @@ -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