2a7257ba76e1cd543fa65ec8e1e594539cb0cfe8
[mirror/dsa-puppet.git] / modules / apache2 / manifests / site.pp
1 define apache2::site (
2         $source=undef,
3         $content=undef,
4         $ensure=present,
5         $site=undef
6 ) {
7
8         include apache2
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 $site {
21                 $base = $site
22         } else {
23                 $base = $name
24         }
25
26         $target = "/etc/apache2/sites-available/${base}"
27
28         $link_target = $ensure ? {
29                 present => $target,
30                 absent  => absent
31         }
32
33         if $content {
34                 file { $target:
35                         ensure  => $ensure,
36                         content => $content,
37                         require => Package['apache2'],
38                         notify  => Exec['service apache2 reload'],
39                 }
40         } else {
41                 file { $target:
42                         ensure  => $ensure,
43                         source  => $source,
44                         require => Package['apache2'],
45                         notify  => Exec['service apache2 reload'],
46                 }
47         }
48
49         if $::lsbmajdistrelease <= 7 {
50                 $symlink = "/etc/apache2/sites-enabled/${name}"
51         } else {
52                 $symlink = "/etc/apache2/sites-enabled/${name}.conf"
53
54                 file { "/etc/apache2/sites-enabled/${name}":
55                         ensure => absent,
56                         notify  => Exec['service apache2 reload'],
57                 }
58         }
59
60         if $ensure == present {
61                 file { $symlink:
62                         ensure => link,
63                         target => $link_target,
64                         notify  => Exec['service apache2 reload'],
65                 }
66         } else {
67                 file { $symlink:
68                         ensure => absent,
69                         notify  => Exec['service apache2 reload'],
70                 }
71         }
72 }