Skip to content

Commit b63b7f4

Browse files
committed
add Gentoo support
1 parent c7feb93 commit b63b7f4

5 files changed

Lines changed: 105 additions & 2 deletions

File tree

manifests/linux.pp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,15 @@
5454
require => Package['iptables'],
5555
}
5656
}
57+
'Gentoo': {
58+
class { "${title}::gentoo":
59+
ensure => $ensure,
60+
enable => $enable,
61+
package_name => $package_name,
62+
service_name => $service_name,
63+
require => Package['iptables'],
64+
}
65+
}
5766
default: {}
5867
}
5968
}

manifests/linux/gentoo.pp

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# = Class: firewall::linux::gentoo
2+
#
3+
# Manages `iptables` and `ip6tables` services, and creates files used for
4+
# persistence, on Arch Linux systems.
5+
#
6+
# == Parameters:
7+
#
8+
# [*ensure*]
9+
# Ensure parameter passed onto Service[] resources.
10+
# Default: running
11+
#
12+
# [*enable*]
13+
# Enable parameter passed onto Service[] resources.
14+
# Default: true
15+
#
16+
class firewall::linux::gentoo (
17+
$ensure = 'running',
18+
$enable = true,
19+
$service_name = $::firewall::params::service_name,
20+
$package_name = $::firewall::params::package_name,
21+
) inherits ::firewall::params {
22+
if $package_name {
23+
package { $package_name:
24+
ensure => present,
25+
}
26+
}
27+
28+
service { $service_name:
29+
ensure => $ensure,
30+
enable => $enable,
31+
hasstatus => true,
32+
}
33+
34+
file { '/var/lib/iptables/rules-save':
35+
ensure => present,
36+
before => Service[$service_name],
37+
}
38+
39+
file { '/var/lib/iptables/rules-save6':
40+
ensure => present,
41+
before => Service[$service_name],
42+
}
43+
}

manifests/params.pp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,10 @@
5656
}
5757
}
5858
}
59+
'Gentoo': {
60+
$service_name = ['iptables','ip6tables']
61+
$package_name = 'net-firewall/iptables'
62+
}
5963
default: {
6064
$package_name = undef
6165
$service_name = 'iptables'

metadata.json

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "puppetlabs-firewall",
33
"version": "1.4.0",
44
"author": "Puppet Labs",
5-
"summary": "Manages Firewalls such as iptable",
5+
"summary": "Manages Firewalls such as iptables",
66
"license": "Apache-2.0",
77
"source": "https://github.com/puppetlabs/puppetlabs-firewall",
88
"project_page": "http://github.com/puppetlabs/puppetlabs-firewall",
@@ -60,6 +60,12 @@
6060
"12.04",
6161
"14.04"
6262
]
63+
},
64+
{
65+
"operatingsystem": "Gentoo",
66+
"operatingsystemrelease": [
67+
"1.0"
68+
]
6369
}
6470
],
6571
"requirements": [
@@ -73,6 +79,6 @@
7379
}
7480
],
7581
"dependencies": [
76-
82+
7783
]
7884
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
require 'spec_helper'
2+
3+
describe 'firewall::linux::gentoo', :type => :class do
4+
let(:facts) do
5+
{
6+
:osfamily => 'Gentoo',
7+
:operatingsystem => 'Gentoo'
8+
}
9+
end
10+
it { should contain_service('iptables').with(
11+
:ensure => 'running',
12+
:enable => 'true'
13+
)}
14+
it { should contain_service('ip6tables').with(
15+
:ensure => 'running',
16+
:enable => 'true'
17+
)}
18+
it { should contain_package('net-firewall/iptables').with(
19+
:ensure => 'present'
20+
)}
21+
22+
context 'ensure => stopped' do
23+
let(:params) {{ :ensure => 'stopped' }}
24+
it { should contain_service('iptables').with(
25+
:ensure => 'stopped'
26+
)}
27+
it { should contain_service('ip6tables').with(
28+
:ensure => 'stopped'
29+
)}
30+
end
31+
32+
context 'enable => false' do
33+
let(:params) {{ :enable => 'false' }}
34+
it { should contain_service('iptables').with(
35+
:enable => 'false'
36+
)}
37+
it { should contain_service('ip6tables').with(
38+
:enable => 'false'
39+
)}
40+
end
41+
end

0 commit comments

Comments
 (0)