summaryrefslogtreecommitdiff
path: root/python-supervisord-dependent-startup.spec
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-04-12 00:04:02 +0000
committerCoprDistGit <infra@openeuler.org>2023-04-12 00:04:02 +0000
commit1a9d2b89f54a08f43ff5dd299de8ebf58dd5806c (patch)
treef88b5f4f0b203930e69f1502096416955ad1f40c /python-supervisord-dependent-startup.spec
parentd4e3c2ee6765780e831581b11df5565d171aec3d (diff)
automatic import of python-supervisord-dependent-startup
Diffstat (limited to 'python-supervisord-dependent-startup.spec')
-rw-r--r--python-supervisord-dependent-startup.spec534
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