File: wsgi.pp

package info (click to toggle)
puppet-module-puppetlabs-apache 12.2.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,664 kB
  • sloc: ruby: 275; sh: 32; makefile: 2
file content (83 lines) | stat: -rw-r--r-- 2,782 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# @summary
#   Installs and configures `mod_wsgi`.
# 
# @param wsgi_restrict_embedded
#   Enable restrictions on use of embedded mode.
# 
# @param wsgi_socket_prefix
#   Configure directory to use for daemon sockets.
# 
# @param wsgi_python_path
#   Additional directories to search for Python modules.
# 
# @param wsgi_python_home
#   Absolute path to Python prefix/exec_prefix directories.
# 
# @param wsgi_python_optimize
#   Enables basic Python optimisation features.
# 
# @param wsgi_application_group
#   Sets which application group WSGI application belongs to.
# 
# @param package_name
#   Names of package that installs mod_wsgi.
# 
# @param mod_path
#   Defines the path to the mod_wsgi shared object (.so) file.
# 
# @see https://github.com/GrahamDumpleton/mod_wsgi for additional documentation.
# @note Unsupported platforms: SLES: all; RedHat: all; CentOS: all; OracleLinux: all; Scientific: all
class apache::mod::wsgi (
  Optional[String] $wsgi_restrict_embedded         = undef,
  Optional[String] $wsgi_socket_prefix             = $apache::params::wsgi_socket_prefix,
  Optional[Stdlib::Absolutepath] $wsgi_python_path = undef,
  Optional[Stdlib::Absolutepath] $wsgi_python_home = undef,
  Optional[Integer] $wsgi_python_optimize          = undef,
  Optional[String] $wsgi_application_group         = undef,
  Optional[String] $package_name                   = undef,
  Optional[String] $mod_path                       = undef,
) inherits apache::params {
  include apache
  if ($package_name != undef and $mod_path == undef) or ($package_name == undef and $mod_path != undef) {
    fail('apache::mod::wsgi - both package_name and mod_path must be specified!')
  }

  if $package_name != undef {
    if $mod_path =~ /\// {
      $_mod_path = $mod_path
    } else {
      $_mod_path = "${apache::lib_path}/${mod_path}"
    }
    ::apache::mod { 'wsgi':
      package => $package_name,
      path    => $_mod_path,
    }
  }
  else {
    ::apache::mod { 'wsgi': }
  }

  # Template uses:
  # - $wsgi_restrict_embedded
  # - $wsgi_socket_prefix
  # - $wsgi_python_path
  # - $wsgi_python_home
  $parameters = {
    'wsgi_restrict_embedded'  => $wsgi_restrict_embedded,
    'wsgi_socket_prefix'      => $wsgi_socket_prefix,
    'wsgi_python_home'        => $wsgi_python_home,
    'wsgi_python_path'        => $wsgi_python_path,
    'wsgi_application_group'  => $wsgi_application_group,
    'wsgi_python_optimize'    => $wsgi_python_optimize,
  }

  file { 'wsgi.conf':
    ensure  => file,
    path    => "${apache::mod_dir}/wsgi.conf",
    mode    => $apache::file_mode,
    content => epp('apache/mod/wsgi.conf.epp', $parameters),
    require => Exec["mkdir ${apache::mod_dir}"],
    before  => File[$apache::mod_dir],
    notify  => Class['apache::service'],
  }
}