Pydantic models for supervisor
This library provides type-validated Pydantic models of all configuration options for supervisor.
It provides:
SupervisorConfiguration
: top-level wrapper around all supervisor configuration options, with a utility method to generate asupervisord.conf
SupervisorConvenienceConfiguration
: wrapper aroundSupervisorConfiguration
to make a few things easier to configure, for integration with airflow-supervisor and other external toolsSupervisordConfiguration
: wrapper aroundsupervisord
SupervisorctlConfiguration
: wrapper aroundsupervisorctl
ProgramConfiguration
: wrapper aroundprogram
EventListenerConfiguration
: wrapper aroundeventlistener
FcgiProgramConfiguration
: wrapper aroundfcgi-program
GroupConfiguration
: wrapper aroundgroup
IncludeConfiguration
: wrapper aroundinclude
InetHttpServerConfiguration
: wrapper aroundinit-http-server
RpcInterfaceConfiguration
: wrapper aroundrpcinterface
UnixHttpServerConfiguration
: wrapper aroundunix-http-server
classDiagram
SupervisorConfiguration <|-- SupervisorConvenienceConfiguration
SupervisorConfiguration *-- SupervisordConfiguration
SupervisorConfiguration *-- SupervisorctlConfiguration
SupervisorConfiguration *-- InetHttpServerConfiguration
SupervisorConfiguration *-- UnixHttpServerConfiguration
SupervisorConfiguration *-- IncludeConfiguration
SupervisorConfiguration *-- ProgramConfiguration
SupervisorConfiguration *-- EventListenerConfiguration
SupervisorConfiguration *-- FcgiProgramConfiguration
SupervisorConfiguration *-- GroupConfiguration
SupervisorConfiguration *-- RpcInterfaceConfiguration
class SupervisorConfiguration {
supervisord: SupervisordConfiguration
supervisorctl: SupervisorctlConfiguration
inet_http_server: InetHttpServerConfiguration
unix_http_server: UnixHttpServerConfiguration
include: IncludeConfiguration
program: Dict~str, ProgramConfiguration~
eventlistener: Dict~str, EventListenerConfiguration~
fcgiprogram: Dict~str, FcgiProgramConfiguration~
group: Dict~str, GroupConfiguration~
rpcinterface: Dict~str, RpcInterfaceConfiguration~
config_path: Path
working_dir: Path
load(config_dir; str, config_name: str, overrides: List~str~)
write()
rmdir()
start(daemon: bool)
running()
stop()
kill()
}
class SupervisorConvenienceConfiguration {
startsecs: int
startretries: int
exitcodes: List~int~
stopsignal: Signal
stopwaitsecs: int
port: str
password: str
rpcinterface_factory: str
local_or_remote: str
host: str
protocol: str
rpcpath: str
command_timeout: int
}
class SupervisordConfiguration {
logfile: Path
logfile_maxbytes: str
logfile_backups: int
loglevel: LogLevel
pidfile: Path
umask: OctalUmask
nodaemon: bool
silent: bool
minfds: int
minprocs: int
nocleanup: bool
childlogdir: Path
user: str
directory: Path
strip_ansi: bool
environment: dict
identifier: str
}
class SupervisorctlConfiguration {
serverurl: str
username: str
password: str
prompt: str
history_file: Path
}
class InetHttpServerConfiguration {
port: str
username: str
password: str
}
class UnixHttpServerConfiguration {
file: Path
chmod: Octal
chown: str
username: str
password: str
}
class IncludeConfiguration {
files: List~str~
}
class ProgramConfiguration {
command: str
process_name: str
numprocs: int
numprocs_start: int
priority: int
autostart: bool
startsecs: int
startretries: int
autorestart: bool
exitcodes: List~int~
stopsignal: Signal
stopwaitsecs: int
stopasgroup: bool
killasgroup: bool
user: str
redirect_stderr: bool
stdout_logfile: Path
stdout_logfile_maxbytes: str
stdout_logfile_backups: int
stdout_capture_maxbytes: int
stdout_events_enabled: int
stdout_syslog: bool
stderr_logfile: Path
stderr_logfile_maxbytes: str
stderr_logfile_backups: int
stderr_capture_maxbytes: int
stderr_events_enabled: bool
stderr_syslog: bool
environment: Dict~str, str~
directory: Path
umask: OctalUmask
serverurl: str
}
class EventListenerConfiguration {
buffer_size: int
events: List~EventType~
result_handler: str
}
class FcgiProgramConfiguration {
socket: str
socket_backlog: str
socket_owner: strOrGroup
socket_mode: Octal
}
class GroupConfiguration {
programs: List~str~
priority: int
}
class RpcInterfaceConfiguration {
rpcinterface_factory: str
kwargs: Dict~str, Any~
}
Additionally, this library provides a small convenience CLI (_supervisor_convenience
) for remotely managing supervisor. It is a simple wrapper around the supervisord
and supervisorctl
CLIs in supervisor.
check-programs
: Check if programs are in a good state.configure-supervisor
: Write a SupervisorConvenienceConfiguration JSON as a supervisor config fileforce-kill
: Kill the supervisor instance with os.killrestart-programs
: Restart all programs in the supervisor instancestart-programs
: Start all programs in the supervisor instancestart-supervisor
: Start a supervisor instance using supervisord in backgroundstop-programs
: Stop all programs in the supervisor instancestop-supervisor
: Stop the supervisor instanceunconfigure-supervisor
: Remove the supervisor config file and working directory
Note
This library was generated using copier from the Base Python Project Template repository.