supervisor-pydantic¶
Pydantic models for supervisor
Overview¶
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.confSupervisorConvenienceConfiguration: wrapper aroundSupervisorConfigurationto make a few things easier to configure, for integration with airflow-supervisor and other external toolsSupervisordConfiguration: wrapper aroundsupervisordSupervisorctlConfiguration: wrapper aroundsupervisorctlProgramConfiguration: wrapper aroundprogramEventListenerConfiguration: wrapper aroundeventlistenerFcgiProgramConfiguration: wrapper aroundfcgi-programGroupConfiguration: wrapper aroundgroupIncludeConfiguration: wrapper aroundincludeInetHttpServerConfiguration: wrapper aroundinit-http-serverRpcInterfaceConfiguration: wrapper aroundrpcinterfaceUnixHttpServerConfiguration: 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.