ferm::conf - merge with tor version
[mirror/dsa-puppet.git] / modules / ferm / manifests / conf.pp
1 #
2 define ferm::conf (
3         $source=undef,
4         $content=undef,
5         $ensure=present,
6         $prio="xx-10",
7 ) {
8         case $ensure {
9                 present: {
10                         if ! ($source or $content) {
11                                 fail ( "No configuration found for ${name}" )
12                         }
13                 }
14                 absent:  {}
15                 default: { fail ( "Unknown ensure value: '$ensure'" ) }
16         }
17
18         if ($source and $content) {
19                 fail ( "Can't define both source and content for ${name}" )
20         }
21
22         $fname = "/etc/ferm/conf.d/${prio}_${name}.conf"
23
24         if $content {
25                 file { $fname:
26                                 ensure  => $ensure,
27                                 mode    => '0400',
28                                 content => $content,
29                                 notify  => Exec["ferm restart"],
30                 }
31         } else {
32                 file { $fname:
33                                 ensure  => $ensure,
34                                 mode    => '0400',
35                                 source  => $source,
36                                 notify  => Exec["ferm restart"],
37                 }
38         }
39 }