manual dependencies
[mirror/dsa-puppet.git] / modules / apache2 / manifests / site.pp
index 708e6fa..8fa5fdf 100644 (file)
@@ -1,14 +1,16 @@
 define apache2::site (
        $config = undef,
-       $template = undef,
+       $template = false,
        $ensure = present,
        $site = undef
 ) {
 
        include apache2
 
-       if ! ($config or $template) {
-               err ( "No configuration found for ${name}" )
+       if $ensure == present {
+               if ! ($config or $template) {
+                       fail ( "No configuration found for ${name}" )
+               }
        }
 
        if $site {
@@ -22,27 +24,38 @@ define apache2::site (
        $link_target = $ensure ? {
                present => $target,
                absent  => absent,
-               default => err ( "Unknown ensure value: '$ensure'" ),
+               default => fail ( "Unknown ensure value: '$ensure'" ),
        }
 
-       if $template {
-               file { $target:
-                       ensure  => $ensure,
-                       content => template($template),
-                       require => Package['apache2'],
-                       notify  => Service['apache2'],
+       case $template {
+               false: {
+                       file { $target:
+                               ensure  => $ensure,
+                               source  => $config,
+                               require => Package['apache2'],
+                               notify  => Service['apache2'],
+                       }
                }
-       } else {
-               file { $target:
-                       ensure  => $ensure,
-                       source  => $config,
-                       require => Package['apache2'],
-                       notify  => Service['apache2'],
+               default: {
+                       file { $target:
+                               ensure  => $ensure,
+                               content => template($template),
+                               require => Package['apache2'],
+                               notify  => Service['apache2'],
+                       }
                }
        }
 
-       file { "/etc/apache2/sites-enabled/${name}":
-               ensure => $link_target,
-               notify => Service['apache2'],
+       if $ensure == present {
+               file { "/etc/apache2/sites-enabled/${name}":
+                       ensure => link,
+                       target => $link_target,
+                       notify => Service['apache2'],
+               }
+       } else {
+               file { "/etc/apache2/sites-enabled/${name}":
+                       ensure => absent,
+                       notify => Service['apache2'],
+               }
        }
 }