Clean up and document apache2::site
authorPeter Palfrader <peter@palfrader.org>
Mon, 21 Oct 2019 09:27:19 +0000 (11:27 +0200)
committerPeter Palfrader <peter@palfrader.org>
Mon, 21 Oct 2019 09:28:03 +0000 (11:28 +0200)
modules/apache2/manifests/site.pp

index 1a71e09..b847c22 100644 (file)
@@ -1,68 +1,40 @@
+# Install and enable an apache site
+#
+# @param source  source of the apache vhost file
+# @param content content of the apache vhost file
+# @param ensure  present or absent
+# @param site    site name
 define apache2::site (
-  $source=undef,
-  $content=undef,
-  $ensure=present,
-  $site=undef
+  Optional[String] $source = undef,
+  Optional[String] $content = undef,
+  Enum['present','absent'] $ensure = 'present',
+  String $site = $name
 ) {
-
   include apache2
 
-  case $ensure {
-    present: {
-      if ! ($source or $content) {
-        fail ( "No configuration found for ${name}" )
-      }
-    }
-    absent:  {}
-    default: { fail ( "Unknown ensure value: '$ensure'" ) }
-  }
-
-  if $site {
-    $base = $site
-  } else {
-    $base = $name
-  }
-
-  $target = "/etc/apache2/sites-available/${base}"
-
-  $link_target = $ensure ? {
-    present => $target,
-    absent  => absent
-  }
-
-  if $content {
-    file { $target:
-      ensure  => $ensure,
-      content => $content,
-      require => Package['apache2'],
-      notify  => Exec['service apache2 reload'],
-    }
-  } else {
-    file { $target:
-      ensure  => $ensure,
-      source  => $source,
-      require => Package['apache2'],
-      notify  => Exec['service apache2 reload'],
+  if $ensure == 'present' {
+    if ! ($source or $content) {
+      fail ( "No configuration (source or content) found for ${name}" )
     }
   }
 
+  $target = "/etc/apache2/sites-available/${site}"
   $symlink = "/etc/apache2/sites-enabled/${name}.conf"
+  $link_ensure = $ensure ? {
+    present => link,
+    absent  => absent,
+  }
 
-  file { "/etc/apache2/sites-enabled/${name}":
-    ensure => absent,
+  file { $target:
+    ensure  => $ensure,
+    content => $content,
+    source  => $source,
+    require => Package['apache2'],
     notify  => Exec['service apache2 reload'],
   }
-
-  if $ensure == present {
-    file { $symlink:
-      ensure => link,
-      target => $link_target,
-      notify  => Exec['service apache2 reload'],
-    }
-  } else {
-    file { $symlink:
-      ensure => absent,
-      notify  => Exec['service apache2 reload'],
-    }
+  file { $symlink:
+    ensure => $link_ensure,
+    target => $target,
+    notify => Exec['service apache2 reload'],
   }
 }