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 {
$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'],
+ }
}
}