]> git.donarmstrong.com Git - dsa-puppet.git/blobdiff - 3rdparty/modules/apache/manifests/mpm.pp
add Openstack modules to 3rdparty
[dsa-puppet.git] / 3rdparty / modules / apache / manifests / mpm.pp
diff --git a/3rdparty/modules/apache/manifests/mpm.pp b/3rdparty/modules/apache/manifests/mpm.pp
new file mode 100644 (file)
index 0000000..9e77349
--- /dev/null
@@ -0,0 +1,107 @@
+define apache::mpm (
+  $lib_path       = $::apache::lib_path,
+  $apache_version = $::apache::apache_version,
+) {
+  if ! defined(Class['apache']) {
+    fail('You must include the apache base class before using any apache defined resources')
+  }
+
+  $mpm     = $name
+  $mod_dir = $::apache::mod_dir
+
+  $_lib  = "mod_mpm_${mpm}.so"
+  $_path = "${lib_path}/${_lib}"
+  $_id   = "mpm_${mpm}_module"
+
+  if versioncmp($apache_version, '2.4') >= 0 {
+    file { "${mod_dir}/${mpm}.load":
+      ensure  => file,
+      path    => "${mod_dir}/${mpm}.load",
+      content => "LoadModule ${_id} ${_path}\n",
+      require => [
+        Package['httpd'],
+        Exec["mkdir ${mod_dir}"],
+      ],
+      before  => File[$mod_dir],
+      notify  => Class['apache::service'],
+    }
+  }
+
+  case $::osfamily {
+    'debian': {
+      file { "${::apache::mod_enable_dir}/${mpm}.conf":
+        ensure  => link,
+        target  => "${::apache::mod_dir}/${mpm}.conf",
+        require => Exec["mkdir ${::apache::mod_enable_dir}"],
+        before  => File[$::apache::mod_enable_dir],
+        notify  => Class['apache::service'],
+      }
+
+      if versioncmp($apache_version, '2.4') >= 0 {
+        file { "${::apache::mod_enable_dir}/${mpm}.load":
+          ensure  => link,
+          target  => "${::apache::mod_dir}/${mpm}.load",
+          require => Exec["mkdir ${::apache::mod_enable_dir}"],
+          before  => File[$::apache::mod_enable_dir],
+          notify  => Class['apache::service'],
+        }
+
+        if $mpm == 'itk' {
+            file { "${lib_path}/mod_mpm_itk.so":
+              ensure => link,
+              target => "${lib_path}/mpm_itk.so"
+            }
+        }
+      }
+
+      if versioncmp($apache_version, '2.4') < 0 {
+        package { "apache2-mpm-${mpm}":
+          ensure => present,
+        }
+      }
+    }
+    'freebsd': {
+      class { '::apache::package':
+        mpm_module => $mpm
+      }
+    }
+    'redhat': {
+      # so we don't fail
+    }
+    'Suse': {
+      file { "${::apache::mod_enable_dir}/${mpm}.conf":
+        ensure  => link,
+        target  => "${::apache::mod_dir}/${mpm}.conf",
+        require => Exec["mkdir ${::apache::mod_enable_dir}"],
+        before  => File[$::apache::mod_enable_dir],
+        notify  => Class['apache::service'],
+      }
+
+      if versioncmp($apache_version, '2.4') >= 0 {
+        file { "${::apache::mod_enable_dir}/${mpm}.load":
+          ensure  => link,
+          target  => "${::apache::mod_dir}/${mpm}.load",
+          require => Exec["mkdir ${::apache::mod_enable_dir}"],
+          before  => File[$::apache::mod_enable_dir],
+          notify  => Class['apache::service'],
+        }
+
+        if $mpm == 'itk' {
+            file { "${lib_path}/mod_mpm_itk.so":
+              ensure => link,
+              target => "${lib_path}/mpm_itk.so"
+            }
+        }
+      }
+
+      if versioncmp($apache_version, '2.4') < 0 {
+        package { "apache2-${mpm}":
+          ensure => present,
+        }
+      }
+    }
+    default: {
+      fail("Unsupported osfamily ${::osfamily}")
+    }
+  }
+}