131 lines
4.9 KiB
Puppet
131 lines
4.9 KiB
Puppet
![]() |
# Class: supervisord
|
||
|
#
|
||
|
# This class installs supervisord via pip
|
||
|
#
|
||
|
class supervisord(
|
||
|
$package_ensure = $supervisord::params::package_ensure,
|
||
|
$package_name = $supervisord::params::package_name,
|
||
|
$package_provider = $supervisord::params::package_provider,
|
||
|
$service_ensure = $supervisord::params::service_ensure,
|
||
|
$service_name = $supervisord::params::service_name,
|
||
|
$install_init = $supervisord::params::install_init,
|
||
|
$install_pip = false,
|
||
|
$init_defaults = $supervisord::params::init_defaults,
|
||
|
$setuptools_url = $supervisord::params::setuptools_url,
|
||
|
$executable_path = $supervisord::params::executable_path,
|
||
|
$executable = $supervisord::params::executable,
|
||
|
$executable_ctl = $supervisord::params::executable_ctl,
|
||
|
|
||
|
$log_path = $supervisord::params::log_path,
|
||
|
$log_file = $supervisord::params::log_file,
|
||
|
$log_level = $supervisord::params::log_level,
|
||
|
$logfile_maxbytes = $supervisord::params::logfile_maxbytes,
|
||
|
$logfile_backups = $supervisord::params::logfile_backups,
|
||
|
|
||
|
$run_path = $supervisord::params::run_path,
|
||
|
$pid_file = $supervisord::params::pid_file,
|
||
|
$nodaemon = $supervisord::params::nodaemon,
|
||
|
$minfds = $supervisord::params::minfds,
|
||
|
$minprocs = $supervisord::params::minprocs,
|
||
|
$config_include = $supervisord::params::config_include,
|
||
|
$config_file = $supervisord::params::config_file,
|
||
|
$config_dirs = undef,
|
||
|
$umask = $supervisord::params::umask,
|
||
|
|
||
|
$unix_socket = $supervisord::params::unix_socket,
|
||
|
$unix_socket_file = $supervisord::params::unix_socket_file,
|
||
|
$unix_socket_mode = $supervisord::params::unix_socket_mode,
|
||
|
$unix_socket_owner = $supervisord::params::unix_socket_owner,
|
||
|
$unix_socket_group = $supervisord::params::unix_socket_group,
|
||
|
|
||
|
$inet_server = $supervisord::params::inet_server,
|
||
|
$inet_server_hostname = $supervisord::params::inet_server_hostname,
|
||
|
$inet_server_port = $supervisord::params::inet_server_port,
|
||
|
|
||
|
$unix_auth = false,
|
||
|
$unix_username = undef,
|
||
|
$unix_password = undef,
|
||
|
|
||
|
$inet_auth = false,
|
||
|
$inet_username = undef,
|
||
|
$inet_password = undef,
|
||
|
|
||
|
$user = undef,
|
||
|
$identifier = undef,
|
||
|
$childlogdir = undef,
|
||
|
$environment = undef,
|
||
|
$env_var = undef,
|
||
|
$directory = undef,
|
||
|
$strip_ansi = false,
|
||
|
$nocleanup = false,
|
||
|
|
||
|
$eventlisteners = {},
|
||
|
$fcgi_programs = {},
|
||
|
$groups = {},
|
||
|
$programs = {}
|
||
|
|
||
|
) inherits supervisord::params {
|
||
|
|
||
|
validate_bool($install_pip)
|
||
|
validate_bool($install_init)
|
||
|
validate_bool($nodaemon)
|
||
|
validate_bool($unix_auth)
|
||
|
validate_bool($inet_auth)
|
||
|
validate_bool($strip_ansi)
|
||
|
validate_bool($nocleanup)
|
||
|
|
||
|
validate_hash($eventlisteners)
|
||
|
validate_hash($fcgi_programs)
|
||
|
validate_hash($groups)
|
||
|
validate_hash($programs)
|
||
|
|
||
|
validate_absolute_path($config_include)
|
||
|
validate_absolute_path($log_path)
|
||
|
validate_absolute_path($run_path)
|
||
|
if $childlogdir { validate_absolute_path($childlogdir) }
|
||
|
if $directory { validate_absolute_path($directory) }
|
||
|
|
||
|
$log_levels = ['^critical$', '^error$', '^warn$', '^info$', '^debug$', '^trace$', '^blather$']
|
||
|
validate_re($log_level, $log_levels, "invalid log_level: ${log_level}")
|
||
|
validate_re($umask, '^0[0-7][0-7]$', "invalid umask: ${umask}.")
|
||
|
validate_re($unix_socket_mode, '^[0-7][0-7][0-7][0-7]$', "invalid unix_socket_mode: ${unix_socket_mode}")
|
||
|
|
||
|
if ! is_integer($logfile_backups) { fail("invalid logfile_backups: ${logfile_backups}.")}
|
||
|
if ! is_integer($minfds) { fail("invalid minfds: ${minfds}.")}
|
||
|
if ! is_integer($minprocs) { fail("invalid minprocs: ${minprocs}.")}
|
||
|
if ! is_integer($inet_server_port) { fail("invalid inet_server_port: ${inet_server_port}.")}
|
||
|
|
||
|
if $env_var {
|
||
|
validate_hash($env_var)
|
||
|
$env_hash = hiera($env_var)
|
||
|
$env_string = hash2csv($env_hash)
|
||
|
}
|
||
|
elsif $environment {
|
||
|
validate_hash($environment)
|
||
|
$env_string = hash2csv($environment)
|
||
|
}
|
||
|
|
||
|
if $config_dirs {
|
||
|
validate_array($config_dirs)
|
||
|
$config_include_string = join($config_dirs, " ")
|
||
|
}
|
||
|
else {
|
||
|
$config_include_string = "${config_include}/*.conf"
|
||
|
}
|
||
|
|
||
|
create_resources('supervisord::eventlistener', $eventlisteners)
|
||
|
create_resources('supervisord::fcgi_program', $fcgi_programs)
|
||
|
create_resources('supervisord::group', $groups)
|
||
|
create_resources('supervisord::program', $programs)
|
||
|
|
||
|
if $install_pip {
|
||
|
include supervisord::pip
|
||
|
Class['supervisord::pip'] -> Class['supervisord::install']
|
||
|
}
|
||
|
|
||
|
include supervisord::install, supervisord::config, supervisord::service, supervisord::reload
|
||
|
|
||
|
Class['supervisord::install'] -> Class['supervisord::config'] ~> Class['supervisord::service']
|
||
|
Class['supervisord::reload'] -> Supervisord::Supervisorctl <| |>
|
||
|
}
|