--- /dev/null
+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}")
+ }
+ }
+}