s/err/fail/
[mirror/dsa-puppet.git] / modules / apache2 / manifests / site.pp
1 define apache2::site (
2         $config = undef,
3         $template = false,
4         $ensure = present,
5         $site = undef
6 ) {
7
8         include apache2
9
10         if $ensure == present {
11                 if ! ($config or $template) {
12                         fail ( "No configuration found for ${name}" )
13                 }
14         }
15
16         if $site {
17                 $base = $site
18         } else {
19                 $base = $name
20         }
21
22         $target = "/etc/apache2/sites-available/${base}"
23
24         $link_target = $ensure ? {
25                 present => $target,
26                 absent  => absent,
27                 default => fail ( "Unknown ensure value: '$ensure'" ),
28         }
29
30         case $template {
31                 false: {
32                         file { $target:
33                                 ensure  => $ensure,
34                                 source  => $config,
35                                 require => Package['apache2'],
36                                 notify  => Service['apache2'],
37                         }
38                 }
39                 default: {
40                         file { $target:
41                                 ensure  => $ensure,
42                                 content => template($template),
43                                 require => Package['apache2'],
44                                 notify  => Service['apache2'],
45                         }
46                 }
47         }
48
49         if $ensure == present {
50                 file { "/etc/apache2/sites-enabled/${name}":
51                         ensure => link,
52                         target => $link_target,
53                         notify => Service['apache2'],
54                 }
55         } else {
56                 file { "/etc/apache2/sites-enabled/${name}":
57                         ensure => absent,
58                         notify => Service['apache2'],
59                 }
60         }
61 }