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.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
ConvenienceConfiguration
: Required minimum set of configuration settings to run supervisor using theSupervisorConvenienceConfiguration
classDiagram SupervisorConfiguration <|-- SupervisorConvenienceConfiguration SupervisorConfiguration *-- SupervisordConfiguration SupervisorConfiguration *-- SupervisorctlConfiguration SupervisorConfiguration *-- InetHttpServerConfiguration SupervisorConfiguration *-- UnixHttpServerConfiguration SupervisorConfiguration *-- IncludeConfiguration SupervisorConfiguration *-- ProgramConfiguration SupervisorConfiguration *-- EventListenerConfiguration SupervisorConfiguration *-- FcgiProgramConfiguration SupervisorConfiguration *-- GroupConfiguration SupervisorConfiguration *-- RpcInterfaceConfiguration SupervisorConvenienceConfiguration *-- ConvenienceConfiguration 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 { convenience ConvenienceConfiguration } 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~ } class ConvenienceConfiguration { 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 }
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.