Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
File renamed without changes.
4 changes: 4 additions & 0 deletions examples/group.pp
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
supervisord::group { 'mygroup':
priority => 100,
program => ['program1', 'program2', 'program3'],
}
File renamed without changes.
6 changes: 3 additions & 3 deletions tests/program.pp → examples/program.pp
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,9 @@
environment => {
'HOME' => '/home/myuser',
'PATH' => '/bin:/sbin:/usr/bin:/usr/sbin',
'SECRET' => 'mysecret'
'SECRET' => 'mysecret',
},
directory => undef,
umask => '022',
serverurl => 'AUTO'
}
serverurl => 'AUTO',
}
File renamed without changes.
20 changes: 9 additions & 11 deletions manifests/config.pp
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
# Configuration class for supervisor init and conf directories
#
class supervisord::config inherits supervisord {

if ($supervisord::manage_config) {
file { $supervisord::config_include:
ensure => directory,
Expand All @@ -12,29 +11,28 @@
mode => '0755',
recurse => $supervisord::config_include_purge,
purge => $supervisord::config_include_purge,
notify => Class['supervisord::reload'],
}
}

file { $supervisord::log_path:
ensure => directory,
owner => $supervisord::user,
group => $supervisord::group,
mode => '0644'
mode => '0644',
}

if $supervisord::run_path != '/var/run' {
file { $supervisord::run_path:
ensure => directory,
owner => $supervisord::user,
group => $supervisord::group,
mode => '0644'
mode => '0644',
}
}

if $supervisord::install_init {
file { $supervisord::init_script:
ensure => present,
ensure => file,
owner => 'root',
mode => $supervisord::init_mode,
content => template($supervisord::init_script_template),
Expand All @@ -43,7 +41,7 @@

if $supervisord::init_defaults {
file { $supervisord::init_defaults:
ensure => present,
ensure => file,
owner => 'root',
mode => '0755',
content => template($supervisord::init_defaults_template),
Expand All @@ -57,37 +55,37 @@
owner => 'root',
group => '0',
mode => $supervisord::config_file_mode,
notify => Class['supervisord::service']
notify => Class['supervisord::service'],
}

if $supervisord::unix_socket {
concat::fragment { 'supervisord_unix':
target => $supervisord::config_file,
content => template('supervisord/supervisord_unix.erb'),
order => '01'
order => '01',
}
}

if $supervisord::inet_server {
concat::fragment { 'supervisord_inet':
target => $supervisord::config_file,
content => template('supervisord/supervisord_inet.erb'),
order => '01'
order => '01',
}
}

if $supervisord::use_ctl_socket {
concat::fragment { 'supervisord_ctl':
target => $supervisord::config_file,
content => template('supervisord/supervisord_ctl.erb'),
order => '02'
order => '02',
}
}

concat::fragment { 'supervisord_main':
target => $supervisord::config_file,
content => template('supervisord/supervisord_main.erb'),
order => '03'
order => '03',
}
}
}
13 changes: 6 additions & 7 deletions manifests/ctlplugin.pp
Original file line number Diff line number Diff line change
Expand Up @@ -9,19 +9,18 @@
# Documentation on parameters available at:
# http://supervisord.org/configuration.html#program-x-section-settings
#
define supervisord::ctlplugin(
$ctl_factory,
$ensure = present,
# @param ctl_factory
# @param ensure
#
define supervisord::ctlplugin (
Optional[String] $ctl_factory = undef,
String $ensure = present,
) {
include supervisord

# parameter validation
validate_string($ctl_factory)

concat::fragment { "ctlplugin:${name}":
target => $supervisord::config_file,
content => template('supervisord/conf/ctlplugin.erb'),
order => 70,
}

}
184 changes: 87 additions & 97 deletions manifests/eventlistener.pp
Original file line number Diff line number Diff line change
Expand Up @@ -5,96 +5,98 @@
# Documentation on parameters available at:
# http://supervisord.org/configuration.html#eventlistener-x-section-settings
#
define supervisord::eventlistener(
$command,
$ensure = present,
$ensure_process = 'running',
$cfgreload = undef,
$buffer_size = 10,
$events = undef,
$result_handler = undef,
$env_var = undef,
$process_name = undef,
$numprocs = undef,
$numprocs_start = undef,
$priority = undef,
$autostart = undef,
$autorestart = undef,
$startsecs = undef,
$startretries = undef,
$exitcodes = undef,
$stopsignal = undef,
$stopwaitsecs = undef,
$stopasgroup = undef,
$killasgroup = undef,
$user = undef,
$redirect_stderr = undef,
$stdout_logfile = "eventlistener_${name}.log",
$stdout_logfile_maxbytes = undef,
$stdout_logfile_backups = undef,
$stdout_events_enabled = undef,
$stderr_logfile = "eventlistener_${name}.error",
$stderr_logfile_maxbytes = undef,
$stderr_logfile_backups = undef,
$stderr_events_enabled = undef,
$environment = undef,
$event_environment = undef,
$directory = undef,
$umask = undef,
$serverurl = undef,
$config_file_mode = '0644'
# @param command
# @param ensure
# @param ensure_process
# @param buffer_size
# @param events
# @param result_handler
# @param env_var
# @param process_name
# @param numprocs
# @param numprocs_start
# @param priority
# @param autostart
# @param autorestart
# @param startsecs
# @param startretries
# @param exitcodes
# @param stopsignal
# @param stopwaitsecs
# @param stopasgroup
# @param killasgroup
# @param user
# @param redirect_stderr
# @param stdout_logfile
# @param stdout_logfile_maxbytes
# @param stdout_logfile_backups
# @param stdout_events_enabled
# @param stderr_logfile
# @param stderr_logfile_maxbytes
# @param stderr_logfile_backups
# @param stderr_events_enabled
# @param environment
# @param event_environment
# @param directory
# @param umask
# @param serverurl
# @param config_file_mode
#
define supervisord::eventlistener (
Optional[String] $command = undef,
String $ensure = 'present',
String $ensure_process = 'running',
Integer $buffer_size = 10,
Optional[Array] $events = undef,
Optional[String] $result_handler = undef,
Optional[Variant[Hash, String]] $env_var = undef,
Optional[String] $process_name = undef,
Optional[Integer] $numprocs = undef,
Optional[Integer] $numprocs_start = undef,
Optional[Integer] $priority = undef,
Optional[Boolean] $autostart = undef,
Optional[Boolean] $autorestart = undef,
Optional[Integer] $startsecs = undef,
Optional[Integer] $startretries = undef,
Optional[String] $exitcodes = undef,
Optional[String] $stopsignal = undef,
Optional[Integer] $stopwaitsecs = undef,
Optional[Boolean] $stopasgroup = undef,
Optional[Boolean] $killasgroup = undef,
Optional[String] $user = undef,
Optional[Boolean] $redirect_stderr = undef,
String $stdout_logfile = "eventlistener_${name}.log",
Optional[String] $stdout_logfile_maxbytes = undef,
Optional[Integer] $stdout_logfile_backups = undef,
Optional[Boolean] $stdout_events_enabled = undef,
String $stderr_logfile = "eventlistener_${name}.error",
Optional[String] $stderr_logfile_maxbytes = undef,
Optional[Integer] $stderr_logfile_backups = undef,
Optional[Boolean] $stderr_events_enabled = undef,
Optional[Variant[String, Hash]] $environment = undef,
Optional[Hash] $event_environment = undef,
Optional[String] $directory = undef,
Optional[String] $umask = undef,
Optional[String] $serverurl = undef,
String $config_file_mode = '0644',
) {

include supervisord

# parameter validation
validate_string($command)
validate_re($ensure_process, ['running', 'stopped', 'removed', 'unmanaged'])
if $cfgreload { validate_bool($cfgreload) }
if !is_integer($buffer_size) { validate_re($buffer_size, '^\d+')}
if $events { validate_array($events) }
if $result_handler { validate_string($result_handler) }
if $numprocs { if !is_integer($numprocs) { validate_re($numprocs, '^\d+')} }
if $numprocs_start { if !is_integer($numprocs_start) { validate_re($numprocs_start, '^\d+')} }
if $priority { if !is_integer($priority) { validate_re($priority, '^\d+') } }
if $autostart { if !is_bool($autostart) { validate_re($autostart, ['true', 'false']) } }
if $autorestart { if !is_bool($autorestart) { validate_re($autorestart, ['true', 'false', 'unexpected']) } }
if $startsecs { if !is_integer($startsecs) { validate_re($startsecs, '^\d+')} }
if $startretries { if !is_integer($startretries) { validate_re($startretries, '^\d+')} }
if $exitcodes { validate_string($exitcodes)}
if $stopsignal { validate_re($stopsignal, ['TERM', 'HUP', 'INT', 'QUIT', 'KILL', 'USR1', 'USR2']) }
if $stopwaitsecs { if !is_integer($stopwaitsecs) { validate_re($stopwaitsecs, '^\d+')} }
if $stopasgroup { validate_bool($stopasgroup) }
if $killasgroup { validate_bool($killasgroup) }
if $user { validate_string($user) }
if $redirect_stderr { validate_bool($redirect_stderr) }
validate_string($stdout_logfile)
if $stdout_logfile_maxbytes { validate_string($stdout_logfile_maxbytes) }
if $stdout_logfile_backups { if !is_integer($stdout_logfile_backups) { validate_re($stdout_logfile_backups, '^\d+')} }
if $stdout_events_enabled { validate_bool($stdout_events_enabled) }
validate_string($stderr_logfile)
if $stderr_logfile_maxbytes { validate_string($stderr_logfile_maxbytes) }
if $stderr_logfile_backups { if !is_integer($stderr_logfile_backups) { validate_re($stderr_logfile_backups, '^\d+')} }
if $stderr_events_enabled { validate_bool($stderr_events_enabled) }
if $directory { validate_absolute_path($directory) }
if $umask { validate_re($umask, '^[0-7][0-7][0-7]$') }
validate_re($config_file_mode, '^0[0-7][0-7][0-7]$')

# create the correct log variables
$stdout_logfile_path = $stdout_logfile ? {
/(NONE|AUTO|syslog)/ => $stdout_logfile,
/^\// => $stdout_logfile,
default => "${supervisord::log_path}/${stdout_logfile}",
/(NONE|AUTO|syslog)/ => $stdout_logfile,
/^\// => $stdout_logfile,
default => "${supervisord::log_path}/${stdout_logfile}",
}

$stderr_logfile_path = $stderr_logfile ? {
/(NONE|AUTO|syslog)/ => $stderr_logfile,
/^\// => $stderr_logfile,
default => "${supervisord::log_path}/${stderr_logfile}",
/(NONE|AUTO|syslog)/ => $stderr_logfile,
/^\// => $stderr_logfile,
default => "${supervisord::log_path}/${stderr_logfile}",
}

# Handle deprecated $environment variable
if $environment { notify {'[supervisord] *** DEPRECATED WARNING ***: $event_environment has replaced $environment':}}
if $environment { notify { '[supervisord] *** DEPRECATED WARNING ***: $event_environment has replaced $environment': } }
$_event_environment = $event_environment ? {
undef => $environment,
default => $event_environment
Expand All @@ -103,20 +105,12 @@
# convert environment data into a csv
if $env_var {
$env_hash = hiera_hash($env_var)
validate_hash($env_hash)
$env_string = hash2csv($env_hash)
}
elsif $_event_environment {
validate_hash($_event_environment)
$env_string = hash2csv($_event_environment)
}

# Reload default with override
$_cfgreload = $cfgreload ? {
undef => $supervisord::cfgreload_eventlistener,
default => $cfgreload
}

if $events {
$events_string = array2csv($events)
}
Expand All @@ -128,34 +122,30 @@
owner => 'root',
mode => $config_file_mode,
content => template('supervisord/conf/eventlistener.erb'),
}

if $_cfgreload {
File[$conf] {
notify => Class['supervisord::reload'],
}
notify => Class['supervisord::reload'],
}

case $ensure_process {
'stopped': {
supervisord::supervisorctl { "stop_${name}":
command => 'stop',
process => $name
process => $name,
}
}
'removed': {
supervisord::supervisorctl { "remove_${name}":
command => 'remove',
process => $name
process => $name,
}
}
'running': {
supervisord::supervisorctl { "start_${name}":
command => 'start',
process => $name,
unless => 'running'
unless => 'running',
}
}
default: { }
default: {
}
}
}
Loading