7457094e828111bfe0d7d73e5af21ac7c5a0c3ad
[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         include ferm
9
10         case $ensure {
11                 present: {
12                         if ! ($source or $content) {
13                                 fail ( "No configuration found for ${name}" )
14                         }
15                 }
16                 absent:  {}
17                 default: { fail ( "Unknown ensure value: '$ensure'" ) }
18         }
19
20         if ($source and $content) {
21                 fail ( "Can't define both source and content for ${name}" )
22         }
23
24         $fname = "/etc/ferm/conf.d/${prio}_${name}.conf"
25
26         if $content {
27                 file { $fname:
28                                 ensure  => $ensure,
29                                 mode    => '0400',
30                                 content => $content,
31                                 notify  => Exec['ferm reload'],
32                 }
33         } else {
34                 file { $fname:
35                                 ensure  => $ensure,
36                                 mode    => '0400',
37                                 source  => $source,
38                                 notify  => Exec['ferm reload'],
39                 }
40         }
41 }