diff options
author | CoprDistGit <infra@openeuler.org> | 2023-04-12 00:04:02 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-04-12 00:04:02 +0000 |
commit | 1a9d2b89f54a08f43ff5dd299de8ebf58dd5806c (patch) | |
tree | f88b5f4f0b203930e69f1502096416955ad1f40c /python-supervisord-dependent-startup.spec | |
parent | d4e3c2ee6765780e831581b11df5565d171aec3d (diff) |
automatic import of python-supervisord-dependent-startup
Diffstat (limited to 'python-supervisord-dependent-startup.spec')
-rw-r--r-- | python-supervisord-dependent-startup.spec | 534 |
1 files changed, 534 insertions, 0 deletions
diff --git a/python-supervisord-dependent-startup.spec b/python-supervisord-dependent-startup.spec new file mode 100644 index 0000000..a0d6042 --- /dev/null +++ b/python-supervisord-dependent-startup.spec @@ -0,0 +1,534 @@ +%global _empty_manifest_terminate_build 0 +Name: python-supervisord-dependent-startup +Version: 1.4.0 +Release: 1 +Summary: A plugin for Supervisor that allows starting up services after dependent services have reached specific states. Based on ordered-startup-supervisord by Jason Corbett +License: Apache Software License v2 +URL: https://github.com/bendikro/supervisord-dependent-startup +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/8b/f2/4daab0e3d8d7062cc89689b32410634b969672aacfeb1228ae503e7296b7/supervisord-dependent-startup-1.4.0.tar.gz +BuildArch: noarch + + +%description +# Dependency support when starting Supervisor services + +`supervisord-dependent-startup` is a plugin for +[Supervisor](http://supervisord.org) that allows starting up services after +dependent services have reached specific states. This plugin is based on +[ordered-startup-supervisord](https://github.com/jasoncorbett/ordered-startup-supervisord/) +by [Jason Corbett](https://github.com/jasoncorbett). + +## The Problem + +The problem can be seen in [supervisor bug +#122](https://github.com/Supervisor/supervisor/issues/122). The priority order +in supervisor does determine startup order, but when `autostart=true` supervisor +doesn't wait for the previous process to be `RUNNING` in order to continue. What +is even harder is having initialization scripts that need to exit before +continuing. This software is meant to make this one use case easier. + +## How it works + +This is an event listener for supervisor. This means it is run by supervisor on +startup and supervisor will send it messages whenever a service reaches a +particular process state. When configured it will wait till a supervisor +subprocess gets to the configured state before starting dependent services. + +## Caveats + +The plugin does not start groups. It can start services that are part of a +group, but it won't directly start a group. + +## Installing + +``` +# From pypi +pip install supervisord-dependent-startup + +# From github: +pip install -e git+https://github.com/bendikro/supervisord-dependent-startup.git#egg=supervisord-dependent-startup +``` + +## Configuration + +Configuration requires several things. First you need to configure +`supervisord-dependent-startup` as an event listener by adding the following to `supervisor.conf`: + +```INI +[eventlistener:dependentstartup] +command=python -m supervisord_dependent_startup +autostart=true +autorestart=unexpected +startretries=0 +exitcodes=0,3 +events=PROCESS_STATE +``` + +A working `/etc/supervisor.conf` can look like this: +```INI +[unix_http_server] +file=/tmp/supervisor.sock ; (the path to the socket file) + +[supervisord] +logfile=/tmp/supervisord.log +loglevel=info +pidfile=/var/run/supervisord.pid +nodaemon=false +minfds=1024 +minprocs=200 + +[rpcinterface:supervisor] +supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface + +[supervisorctl] +serverurl=unix:///tmp/supervisor.sock + +[eventlistener:dependentstartup] +command=python -m supervisord_dependent_startup +autostart=true +autorestart=unexpected +startretries=0 +exitcodes=0,3 +events=PROCESS_STATE + +[include] +files = /etc/supervisord.d/*.ini +``` + + +### Service configuration options + +There are three configuration options for a service (`[program:*]`) to control +how it is processed by `supervisord-dependent-startup` + +#### `dependent_startup` + +Mark this service to be handled by `supervisord-dependent-startup`. This must be +set to `true` for all services that depend on other services or is being +depended on by other services. + +| Type | **bool** +:--- | :--- +| **Required** | **yes** +| **Note** | When setting this to `true`, `autostart` *must* be set to `false` + + +#### `dependent_startup_wait_for` + +Specify the services this service depends on before in can be started. + +| Type | **str** +:--- | :--- +| **Required**| **no** +| **Format** | `dependent_startup_wait_for=<parent-service>:<state[,state[..]]> [..]` +| **Note** | `state` must one or more comma separated values of: `starting`, `running`, `backoff`, `stopping`, `exited`, `fatal` + +###### Example with one dependency + +To have a service named *child* depend on a service *parent*: +``dependent_startup_wait_for=parent:running`` + + +###### Example with two dependencies + +Multiple dependencies are separated by a white space. To have a service named +*child* depend on the services *parent1* and *parent2*: +``dependent_startup_wait_for=parent1:running parent2:running`` + +#### `dependent_startup_inherit_priority` + +Specify if the service should inherit its priority from the services it depends +on. + +| Type | **bool** +:--- | :--- +| **Required**| **no** +| **Example** | ``dependent_startup_inherit_priority=true`` + + +## Building and testing + +#### Run tests + +```Shell +python setup.py test +``` + +#### Create source dist + +```Shell +python setup.py sdist +``` + +#### Run tests and code syntax check + +```Shell +tox +``` + +%package -n python3-supervisord-dependent-startup +Summary: A plugin for Supervisor that allows starting up services after dependent services have reached specific states. Based on ordered-startup-supervisord by Jason Corbett +Provides: python-supervisord-dependent-startup +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-supervisord-dependent-startup +# Dependency support when starting Supervisor services + +`supervisord-dependent-startup` is a plugin for +[Supervisor](http://supervisord.org) that allows starting up services after +dependent services have reached specific states. This plugin is based on +[ordered-startup-supervisord](https://github.com/jasoncorbett/ordered-startup-supervisord/) +by [Jason Corbett](https://github.com/jasoncorbett). + +## The Problem + +The problem can be seen in [supervisor bug +#122](https://github.com/Supervisor/supervisor/issues/122). The priority order +in supervisor does determine startup order, but when `autostart=true` supervisor +doesn't wait for the previous process to be `RUNNING` in order to continue. What +is even harder is having initialization scripts that need to exit before +continuing. This software is meant to make this one use case easier. + +## How it works + +This is an event listener for supervisor. This means it is run by supervisor on +startup and supervisor will send it messages whenever a service reaches a +particular process state. When configured it will wait till a supervisor +subprocess gets to the configured state before starting dependent services. + +## Caveats + +The plugin does not start groups. It can start services that are part of a +group, but it won't directly start a group. + +## Installing + +``` +# From pypi +pip install supervisord-dependent-startup + +# From github: +pip install -e git+https://github.com/bendikro/supervisord-dependent-startup.git#egg=supervisord-dependent-startup +``` + +## Configuration + +Configuration requires several things. First you need to configure +`supervisord-dependent-startup` as an event listener by adding the following to `supervisor.conf`: + +```INI +[eventlistener:dependentstartup] +command=python -m supervisord_dependent_startup +autostart=true +autorestart=unexpected +startretries=0 +exitcodes=0,3 +events=PROCESS_STATE +``` + +A working `/etc/supervisor.conf` can look like this: +```INI +[unix_http_server] +file=/tmp/supervisor.sock ; (the path to the socket file) + +[supervisord] +logfile=/tmp/supervisord.log +loglevel=info +pidfile=/var/run/supervisord.pid +nodaemon=false +minfds=1024 +minprocs=200 + +[rpcinterface:supervisor] +supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface + +[supervisorctl] +serverurl=unix:///tmp/supervisor.sock + +[eventlistener:dependentstartup] +command=python -m supervisord_dependent_startup +autostart=true +autorestart=unexpected +startretries=0 +exitcodes=0,3 +events=PROCESS_STATE + +[include] +files = /etc/supervisord.d/*.ini +``` + + +### Service configuration options + +There are three configuration options for a service (`[program:*]`) to control +how it is processed by `supervisord-dependent-startup` + +#### `dependent_startup` + +Mark this service to be handled by `supervisord-dependent-startup`. This must be +set to `true` for all services that depend on other services or is being +depended on by other services. + +| Type | **bool** +:--- | :--- +| **Required** | **yes** +| **Note** | When setting this to `true`, `autostart` *must* be set to `false` + + +#### `dependent_startup_wait_for` + +Specify the services this service depends on before in can be started. + +| Type | **str** +:--- | :--- +| **Required**| **no** +| **Format** | `dependent_startup_wait_for=<parent-service>:<state[,state[..]]> [..]` +| **Note** | `state` must one or more comma separated values of: `starting`, `running`, `backoff`, `stopping`, `exited`, `fatal` + +###### Example with one dependency + +To have a service named *child* depend on a service *parent*: +``dependent_startup_wait_for=parent:running`` + + +###### Example with two dependencies + +Multiple dependencies are separated by a white space. To have a service named +*child* depend on the services *parent1* and *parent2*: +``dependent_startup_wait_for=parent1:running parent2:running`` + +#### `dependent_startup_inherit_priority` + +Specify if the service should inherit its priority from the services it depends +on. + +| Type | **bool** +:--- | :--- +| **Required**| **no** +| **Example** | ``dependent_startup_inherit_priority=true`` + + +## Building and testing + +#### Run tests + +```Shell +python setup.py test +``` + +#### Create source dist + +```Shell +python setup.py sdist +``` + +#### Run tests and code syntax check + +```Shell +tox +``` + +%package help +Summary: Development documents and examples for supervisord-dependent-startup +Provides: python3-supervisord-dependent-startup-doc +%description help +# Dependency support when starting Supervisor services + +`supervisord-dependent-startup` is a plugin for +[Supervisor](http://supervisord.org) that allows starting up services after +dependent services have reached specific states. This plugin is based on +[ordered-startup-supervisord](https://github.com/jasoncorbett/ordered-startup-supervisord/) +by [Jason Corbett](https://github.com/jasoncorbett). + +## The Problem + +The problem can be seen in [supervisor bug +#122](https://github.com/Supervisor/supervisor/issues/122). The priority order +in supervisor does determine startup order, but when `autostart=true` supervisor +doesn't wait for the previous process to be `RUNNING` in order to continue. What +is even harder is having initialization scripts that need to exit before +continuing. This software is meant to make this one use case easier. + +## How it works + +This is an event listener for supervisor. This means it is run by supervisor on +startup and supervisor will send it messages whenever a service reaches a +particular process state. When configured it will wait till a supervisor +subprocess gets to the configured state before starting dependent services. + +## Caveats + +The plugin does not start groups. It can start services that are part of a +group, but it won't directly start a group. + +## Installing + +``` +# From pypi +pip install supervisord-dependent-startup + +# From github: +pip install -e git+https://github.com/bendikro/supervisord-dependent-startup.git#egg=supervisord-dependent-startup +``` + +## Configuration + +Configuration requires several things. First you need to configure +`supervisord-dependent-startup` as an event listener by adding the following to `supervisor.conf`: + +```INI +[eventlistener:dependentstartup] +command=python -m supervisord_dependent_startup +autostart=true +autorestart=unexpected +startretries=0 +exitcodes=0,3 +events=PROCESS_STATE +``` + +A working `/etc/supervisor.conf` can look like this: +```INI +[unix_http_server] +file=/tmp/supervisor.sock ; (the path to the socket file) + +[supervisord] +logfile=/tmp/supervisord.log +loglevel=info +pidfile=/var/run/supervisord.pid +nodaemon=false +minfds=1024 +minprocs=200 + +[rpcinterface:supervisor] +supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface + +[supervisorctl] +serverurl=unix:///tmp/supervisor.sock + +[eventlistener:dependentstartup] +command=python -m supervisord_dependent_startup +autostart=true +autorestart=unexpected +startretries=0 +exitcodes=0,3 +events=PROCESS_STATE + +[include] +files = /etc/supervisord.d/*.ini +``` + + +### Service configuration options + +There are three configuration options for a service (`[program:*]`) to control +how it is processed by `supervisord-dependent-startup` + +#### `dependent_startup` + +Mark this service to be handled by `supervisord-dependent-startup`. This must be +set to `true` for all services that depend on other services or is being +depended on by other services. + +| Type | **bool** +:--- | :--- +| **Required** | **yes** +| **Note** | When setting this to `true`, `autostart` *must* be set to `false` + + +#### `dependent_startup_wait_for` + +Specify the services this service depends on before in can be started. + +| Type | **str** +:--- | :--- +| **Required**| **no** +| **Format** | `dependent_startup_wait_for=<parent-service>:<state[,state[..]]> [..]` +| **Note** | `state` must one or more comma separated values of: `starting`, `running`, `backoff`, `stopping`, `exited`, `fatal` + +###### Example with one dependency + +To have a service named *child* depend on a service *parent*: +``dependent_startup_wait_for=parent:running`` + + +###### Example with two dependencies + +Multiple dependencies are separated by a white space. To have a service named +*child* depend on the services *parent1* and *parent2*: +``dependent_startup_wait_for=parent1:running parent2:running`` + +#### `dependent_startup_inherit_priority` + +Specify if the service should inherit its priority from the services it depends +on. + +| Type | **bool** +:--- | :--- +| **Required**| **no** +| **Example** | ``dependent_startup_inherit_priority=true`` + + +## Building and testing + +#### Run tests + +```Shell +python setup.py test +``` + +#### Create source dist + +```Shell +python setup.py sdist +``` + +#### Run tests and code syntax check + +```Shell +tox +``` + +%prep +%autosetup -n supervisord-dependent-startup-1.4.0 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-supervisord-dependent-startup -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed Apr 12 2023 Python_Bot <Python_Bot@openeuler.org> - 1.4.0-1 +- Package Spec generated |