Hello community,
here is the log from the commit of package python-oslo.service for
openSUSE:Factory checked in at 2020-02-18 10:41:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-oslo.service (Old)
and /work/SRC/openSUSE:Factory/.python-oslo.service.new.26092 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-oslo.service"
Tue Feb 18 10:41:45 2020 rev:15 rq:774922 version:1.40.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-oslo.service/python-oslo.service.changes
2019-05-03 22:42:46.939286405 +0200
+++
/work/SRC/openSUSE:Factory/.python-oslo.service.new.26092/python-oslo.service.changes
2020-02-18 10:41:54.537128569 +0100
@@ -1,0 +2,18 @@
+Wed Oct 9 12:29:46 UTC 2019 - [email protected]
+
+- update to version 1.40.2
+ - Make PID availabe as formatstring in backdoor path
+ - Polish usage.rst
+ - Reno for SIGHUP fix
+ - OpenDev Migration Patch
+ - Dropping the py35 testing
+ - Move doc related modules to doc/requirements.txt
+ - Add workers' type check before launching the services
+ - Add Python 3 Train unit tests
+ - Cap Bandit below 1.6.0 and update Sphinx requirement
+ - Replace git.openstack.org URLs with opendev.org URLs
+ - Update master for stable/stein
+ - restart: don't stop process on sighup when mutating
+ - Stop using pbr to build docs
+
+-------------------------------------------------------------------
Old:
----
oslo.service-1.38.0.tar.gz
New:
----
oslo.service-1.40.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-oslo.service.spec ++++++
--- /var/tmp/diff_new_pack.DknK0F/_old 2020-02-18 10:41:55.269130062 +0100
+++ /var/tmp/diff_new_pack.DknK0F/_new 2020-02-18 10:41:55.273130071 +0100
@@ -20,16 +20,15 @@
%global rdo 1
%endif
Name: python-oslo.service
-Version: 1.38.0
+Version: 1.40.2
Release: 0
Summary: OpenStack oslo.service library
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/oslo.service
-Source0:
https://files.pythonhosted.org/packages/source/o/oslo.service/oslo.service-1.38.0.tar.gz
+Source0:
https://files.pythonhosted.org/packages/source/o/oslo.service/oslo.service-1.40.2.tar.gz
BuildRequires: openstack-macros
BuildRequires: procps
-BuildRequires: python-devel
BuildRequires: python2-Paste >= 2.0.2
BuildRequires: python2-PasteDeploy >= 1.5.0
BuildRequires: python2-Routes >= 2.3.1
@@ -53,7 +52,6 @@
BuildRequires: python3-PasteDeploy >= 1.5.0
BuildRequires: python3-Routes >= 2.3.1
BuildRequires: python3-WebOb >= 1.7.1
-BuildRequires: python3-devel
BuildRequires: python3-eventlet >= 0.18.2
BuildRequires: python3-fixtures >= 3.0.0
BuildRequires: python3-greenlet >= 0.4.10
@@ -96,8 +94,8 @@
%package -n python-oslo.service-doc
Summary: Documentation for OpenStack service library
Group: Development/Languages/Python
-BuildRequires: python-Sphinx
-BuildRequires: python-openstackdocstheme
+BuildRequires: python3-Sphinx
+BuildRequires: python3-openstackdocstheme
%description -n python-oslo.service-doc
oslo.service provides a framework for defining new long-running services using
@@ -107,14 +105,14 @@
This package contains the documentation.
%prep
-%autosetup -p1 -n oslo.service-1.38.0
+%autosetup -p1 -n oslo.service-1.40.2
%py_req_cleanup
%build
%{python_build}
# generate html docs
-%{__python2} setup.py build_sphinx
+PYTHONPATH=. PBR_VERSION=%{version} %sphinx_build -b html doc/source
doc/build/html
# remove the sphinx-build leftovers
rm -rf doc/build/html/.{doctrees,buildinfo}
++++++ _service ++++++
--- /var/tmp/diff_new_pack.DknK0F/_old 2020-02-18 10:41:55.325130177 +0100
+++ /var/tmp/diff_new_pack.DknK0F/_new 2020-02-18 10:41:55.325130177 +0100
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param
name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/openstack/oslo.service/oslo.service.spec.j2</param>
+ <param
name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/train/openstack/oslo.service/oslo.service.spec.j2</param>
<param name="output-name">python-oslo.service.spec</param>
- <param
name="requirements">https://raw.githubusercontent.com/openstack/oslo.service/stable/stein/requirements.txt</param>
+ <param
name="requirements">https://raw.githubusercontent.com/openstack/oslo.service/stable/train/requirements.txt</param>
<param name="changelog-email">[email protected]</param>
<param name="changelog-provider">gh,openstack,oslo.service</param>
</service>
++++++ oslo.service-1.38.0.tar.gz -> oslo.service-1.40.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.service-1.38.0/.zuul.yaml
new/oslo.service-1.40.2/.zuul.yaml
--- old/oslo.service-1.38.0/.zuul.yaml 2019-02-26 01:07:10.000000000 +0100
+++ new/oslo.service-1.40.2/.zuul.yaml 2019-09-12 18:37:18.000000000 +0200
@@ -5,9 +5,7 @@
- lib-forward-testing-python3
- openstack-lower-constraints-jobs
- openstack-python-jobs
- - openstack-python35-jobs
- - openstack-python36-jobs
- - openstack-python37-jobs
+ - openstack-python3-train-jobs
- periodic-stable-jobs
- publish-openstack-docs-pti
- release-notes-jobs-python3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.service-1.38.0/AUTHORS
new/oslo.service-1.40.2/AUTHORS
--- old/oslo.service-1.38.0/AUTHORS 2019-02-26 01:09:41.000000000 +0100
+++ new/oslo.service-1.40.2/AUTHORS 2019-09-12 18:37:54.000000000 +0200
@@ -45,11 +45,13 @@
Eoghan Glynn <[email protected]>
Eric Brown <[email protected]>
Eric Fried <[email protected]>
+Eric Fried <[email protected]>
Eric Guo <[email protected]>
Eric Windisch <[email protected]>
Fengqian.Gao <[email protected]>
Flavio Percoco <[email protected]>
Gary Kotton <[email protected]>
+Ghanshyam Mann <[email protected]>
Hengqing Hu <[email protected]>
Hervé Beraud <[email protected]>
Ian Wienand <[email protected]>
@@ -84,6 +86,7 @@
Michael Johnson <[email protected]>
Michael Still <[email protected]>
Mitsuru Kanabuchi <[email protected]>
+Mohammed Naser <[email protected]>
Monty Taylor <[email protected]>
OpenStack Release Bot <[email protected]>
Pavlo Shchelokovskyy <[email protected]>
@@ -95,6 +98,7 @@
Russell Bryant <[email protected]>
Sean Dague <[email protected]>
Sean McGinnis <[email protected]>
+Sebastian Lohff <[email protected]>
Sergey Kraynev <[email protected]>
Sergey Lukjanov <[email protected]>
Sergey Vilgelm <[email protected]>
@@ -120,9 +124,12 @@
ZhongShengping <[email protected]>
Zhongyue Luo <[email protected]>
apporc <[email protected]>
+caoyuan <[email protected]>
+chenke <[email protected]>
fujioka yuuichi <[email protected]>
gecong1973 <[email protected]>
gongysh <[email protected]>
+jacky06 <[email protected]>
jun923.gu <[email protected]>
lei zhang <[email protected]>
lin-hua-cheng <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.service-1.38.0/ChangeLog
new/oslo.service-1.40.2/ChangeLog
--- old/oslo.service-1.38.0/ChangeLog 2019-02-26 01:09:41.000000000 +0100
+++ new/oslo.service-1.40.2/ChangeLog 2019-09-12 18:37:53.000000000 +0200
@@ -1,6 +1,35 @@
CHANGES
=======
+1.40.2
+------
+
+* Reno for SIGHUP fix
+
+1.40.1
+------
+
+* Polish usage.rst
+* restart: don't stop process on sighup when mutating
+* Move doc related modules to doc/requirements.txt
+* Add Python 3 Train unit tests
+
+1.40.0
+------
+
+* Stop using pbr to build docs
+* Make PID availabe as formatstring in backdoor path
+
+1.39.0
+------
+
+* Cap Bandit below 1.6.0 and update Sphinx requirement
+* Add workers' type check before launching the services
+* Replace git.openstack.org URLs with opendev.org URLs
+* OpenDev Migration Patch
+* Dropping the py35 testing
+* Update master for stable/stein
+
1.38.0
------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.service-1.38.0/PKG-INFO
new/oslo.service-1.40.2/PKG-INFO
--- old/oslo.service-1.38.0/PKG-INFO 2019-02-26 01:09:41.000000000 +0100
+++ new/oslo.service-1.40.2/PKG-INFO 2019-09-12 18:37:54.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: oslo.service
-Version: 1.38.0
+Version: 1.40.2
Summary: oslo.service library
Home-page: https://docs.openstack.org/oslo.service/latest/
Author: OpenStack
@@ -35,7 +35,7 @@
* Free software: Apache license
* Documentation: https://docs.openstack.org/oslo.service/latest/
- * Source: https://git.openstack.org/cgit/openstack/oslo.service
+ * Source: https://opendev.org/openstack/oslo.service
* Bugs: https://bugs.launchpad.net/oslo.service
* Release notes: https://docs.openstack.org/releasenotes/oslo.service/
@@ -50,4 +50,5 @@
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
+Classifier: Programming Language :: Python :: 3.7
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.service-1.38.0/README.rst
new/oslo.service-1.40.2/README.rst
--- old/oslo.service-1.38.0/README.rst 2019-02-26 01:07:10.000000000 +0100
+++ new/oslo.service-1.40.2/README.rst 2019-09-12 18:37:18.000000000 +0200
@@ -27,6 +27,6 @@
* Free software: Apache license
* Documentation: https://docs.openstack.org/oslo.service/latest/
-* Source: https://git.openstack.org/cgit/openstack/oslo.service
+* Source: https://opendev.org/openstack/oslo.service
* Bugs: https://bugs.launchpad.net/oslo.service
* Release notes: https://docs.openstack.org/releasenotes/oslo.service/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.service-1.38.0/doc/requirements.txt
new/oslo.service-1.40.2/doc/requirements.txt
--- old/oslo.service-1.38.0/doc/requirements.txt 1970-01-01
01:00:00.000000000 +0100
+++ new/oslo.service-1.40.2/doc/requirements.txt 2019-09-12
18:37:18.000000000 +0200
@@ -0,0 +1,8 @@
+# The order of packages is significant, because pip processes them in the order
+# of appearance. Changing the order has an impact on the overall integration
+# process, which may cause wedges in the gate later.
+
+openstackdocstheme>=1.18.1 # Apache-2.0
+sphinx!=1.6.6,!=1.6.7,>=1.6.2,<2.0.0;python_version=='2.7' # BSD
+sphinx!=1.6.6,!=1.6.7,>=1.6.2;python_version>='3.4' # BSD
+reno>=2.5.0 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.service-1.38.0/doc/source/configuration/index.rst
new/oslo.service-1.40.2/doc/source/configuration/index.rst
--- old/oslo.service-1.38.0/doc/source/configuration/index.rst 2019-02-26
01:07:10.000000000 +0100
+++ new/oslo.service-1.40.2/doc/source/configuration/index.rst 2019-09-12
18:37:18.000000000 +0200
@@ -1,6 +1,6 @@
-=======================
- Configuration Options
-=======================
+=====================
+Configuration Options
+=====================
oslo.service uses oslo.config to define and manage configuration options
to allow the deployer to control how an application uses this library.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.service-1.38.0/doc/source/install/index.rst
new/oslo.service-1.40.2/doc/source/install/index.rst
--- old/oslo.service-1.38.0/doc/source/install/index.rst 2019-02-26
01:07:10.000000000 +0100
+++ new/oslo.service-1.40.2/doc/source/install/index.rst 2019-09-12
18:37:18.000000000 +0200
@@ -1,6 +1,6 @@
-==============
- Installation
-==============
+============
+Installation
+============
At the command line::
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.service-1.38.0/doc/source/reference/eventlet_backdoor.rst
new/oslo.service-1.40.2/doc/source/reference/eventlet_backdoor.rst
--- old/oslo.service-1.38.0/doc/source/reference/eventlet_backdoor.rst
2019-02-26 01:07:10.000000000 +0100
+++ new/oslo.service-1.40.2/doc/source/reference/eventlet_backdoor.rst
2019-09-12 18:37:18.000000000 +0200
@@ -1,6 +1,6 @@
-==================
- eventlet_backdoor
-==================
+=================
+eventlet_backdoor
+=================
.. automodule:: oslo_service.eventlet_backdoor
:members:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.service-1.38.0/doc/source/user/usage.rst
new/oslo.service-1.40.2/doc/source/user/usage.rst
--- old/oslo.service-1.38.0/doc/source/user/usage.rst 2019-02-26
01:07:10.000000000 +0100
+++ new/oslo.service-1.40.2/doc/source/user/usage.rst 2019-09-12
18:37:18.000000000 +0200
@@ -45,21 +45,32 @@
Using oslo.service with oslo-config-generator
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-The ``oslo.service`` provides several entry points to generate a configuration
+The ``oslo.service`` provides several entry points to generate configuration
files.
* :func:`oslo.service.service <oslo_service.service.list_opts>`
- The options from the service and eventlet_backdoor modules for
- the [DEFAULT] section.
+ The options from the :mod:`~oslo_service.service` and
+ :mod:`~oslo_service.eventlet_backdoor` modules for the ``[DEFAULT]``
+ section.
* :func:`oslo.service.periodic_task <oslo_service.periodic_task.list_opts>`
- The options from the periodic_task module for the [DEFAULT] section.
+ The options from the :mod:`~oslo_service.periodic_task` module for the
+ ``[DEFAULT]`` section.
* :func:`oslo.service.sslutils <oslo_service.sslutils.list_opts>`
- The options from the sslutils module for the [ssl] section.
+ The options from the :mod:`~oslo_service.sslutils` module for the
+ :oslo.config:group:`ssl` section.
* :func:`oslo.service.wsgi <oslo_service.wsgi.list_opts>`
- The options from the wsgi module for the [DEFAULT] section.
+ The options from the :mod:`~oslo_service.wsgi` module for the ``[DEFAULT]``
+ section.
+
+.. todo:: The ref page for oslo_service.wsgi doesn't seem to be rendering, so
+ the above doesn't link.
+
+.. todo:: Attempting to use :oslo.config:group:`DEFAULT` above only links to
+ the first DEFAULT section in the configuration/index doc because the
+ #DEFAULT anchor is duplicated for each of the show-options sections.
**ATTENTION:** The library doesn't provide an oslo.service entry point.
@@ -72,7 +83,7 @@
Launching and controlling services
==================================
-oslo_service.service module provides tools for launching OpenStack
+The :mod:`oslo_service.service` module provides tools for launching OpenStack
services and controlling their lifecycles.
A service is an instance of any class that
@@ -85,7 +96,8 @@
Launchers
~~~~~~~~~
-oslo_service.service module provides two launchers for running services:
+The :mod:`oslo_service.service` module provides two launchers for running
+services:
* :py:class:`oslo_service.service.ServiceLauncher` - used for
running one or more service in a parent process.
@@ -111,8 +123,9 @@
Or one can simply call :func:`oslo_service.service.launch` which will
automatically pick an appropriate launcher based on a number of workers that
-are passed to it (ServiceLauncher in case workers=1 or None and
-ProcessLauncher in other case).
+are passed to it (:py:class:`~oslo_service.service.ServiceLauncher` if
+``workers=1`` or ``None`` and :py:class:`~oslo_service.service.ProcessLauncher`
+in other case).
.. code-block:: python
@@ -123,36 +136,43 @@
launcher = service.launch(CONF, service.Service(), workers=3)
-*NOTE:* Please be informed that it is highly recommended to use no
-more than one instance of ServiceLauncher and ProcessLauncher classes
-per process.
+.. note:: It is highly recommended to use no more than one instance of the
+ :py:class:`~oslo_service.service.ServiceLauncher` or
+ :py:class:`~oslo_service.service.ProcessLauncher` class per process.
Signal handling
~~~~~~~~~~~~~~~
-oslo_service.service provides handlers for such signals as SIGTERM, SIGINT
-and SIGHUP.
+:mod:`oslo_service.service` provides handlers for such signals as ``SIGTERM``,
+``SIGINT``, and ``SIGHUP``.
-SIGTERM is used for graceful termination of services. This can allow a
+``SIGTERM`` is used for graceful termination of services. This can allow a
server to wait for all clients to close connections while rejecting new
-incoming requests. Config option graceful_shutdown_timeout specifies how
-many seconds after receiving a SIGTERM signal, a server should continue
-to run, handling the existing connections. Setting graceful_shutdown_timeout
-to zero means that the server will wait indefinitely until all remaining
-requests have been fully served.
-
-To force instantaneous termination SIGINT signal must be sent.
-
-On receiving SIGHUP configuration files are reloaded and a service
-is being reset and started again. Then all child workers are gracefully
-stopped using SIGTERM and workers with new configuration are
-spawned. Thus, SIGHUP can be used for changing config options on the go.
+incoming requests. Config option
+:oslo.config:option:`graceful_shutdown_timeout` specifies how many seconds
+after receiving a ``SIGTERM`` signal a server should continue to run, handling
+the existing connections. Setting
+:oslo.config:option:`graceful_shutdown_timeout` to zero means that the server
+will wait indefinitely until all remaining requests have been fully served.
+
+To force instantaneous termination the ``SIGINT`` signal must be sent.
+
+The behavior on receiving ``SIGHUP`` varies based on how the service is
+configured. If the launcher uses ``restart_method='reload'`` (the default),
+then the service will reload its configuration and any threads will be
+completely restarted. If ``restart_method='mutate'`` is used, then only the
+configuration options marked as mutable will be reloaded and the service
+threads will not be restarted.
+
+See :py:class:`oslo_service.service.Launcher` for more details on the
+``restart_method`` parameter.
+
+.. note:: ``SIGHUP`` is not supported on Windows.
+.. note:: Config option :oslo.config:option:`graceful_shutdown_timeout` is not
+ supported on Windows.
-*NOTE:* SIGHUP is not supported on Windows.
-*NOTE:* Config option graceful_shutdown_timeout is not supported on Windows.
-
-Below is the example of a service with a reset method that allows reloading
-logging options by sending a SIGHUP.
+Below is an example of a service with a reset method that allows reloading
+logging options by sending a ``SIGHUP``.
.. code-block:: python
@@ -182,22 +202,23 @@
Profiling
~~~~~~~~~
-Processes spawned through oslo_service.service can be profiled (function
-calltrace) through eventlet_backdoor module. Service has to configure
-backdoor_port option to enable it's workers to listen on TCP ports.
-Then user can send "prof()" command to capture worker processes function
-calltrace.
-
-1) To start profiling send "prof()" command on processes listening port
-
-2) To stop profiling and capture "pstat" calltrace to a file, send prof
- command with filename as argument i.e "prof(filename)"
- on worker processes listening port. Stats file (in pstat format) with
- user provided filename by adding .prof as suffix will be generated
- in temp directory.
+Processes spawned through :mod:`oslo_service.service` can be profiled (function
+calltrace) through the :mod:`~oslo_service.eventlet_backdoor` module. The
+service must be configured with the :oslo.config:option:`backdoor_port` option
+to enable its workers to listen on TCP ports. The user can then send the
+``prof()`` command to capture the worker process's function calltrace.
+
+1) To start profiling send the ``prof()`` command on the process's listening
+ port
+
+2) To stop profiling and capture pstat calltrace to a file, send the
+ ``prof()`` command with a file basename as an argument (``prof(basename)``)
+ to the worker process's listening port. A stats file (in pstat format) will
+ be generated in the temp directory with the user-provided basename with a
+ ``.prof`` suffix .
-For example, to profile neutron server process (which is listening on
-port 8002 configured through backdoor_port option),
+For example, to profile a neutron server process (which is listening on
+port 8002 configured through the :oslo.config:option:`backdoor_port` option):
.. code-block:: bash
@@ -206,9 +227,8 @@
$ neutron port-delete p1; neutron port-delete p1
$ echo "prof('neutron')" | nc localhost 8002
-
-This will generate "/tmp/neutron.prof" as stats file. Later user can print
-the stats from the trace file like below
+This will generate a stats file in ``/tmp/neutron.prof``. Stats can be printed
+from the trace file as follows:
.. code-block:: python
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.service-1.38.0/oslo.service.egg-info/PKG-INFO
new/oslo.service-1.40.2/oslo.service.egg-info/PKG-INFO
--- old/oslo.service-1.38.0/oslo.service.egg-info/PKG-INFO 2019-02-26
01:09:41.000000000 +0100
+++ new/oslo.service-1.40.2/oslo.service.egg-info/PKG-INFO 2019-09-12
18:37:54.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: oslo.service
-Version: 1.38.0
+Version: 1.40.2
Summary: oslo.service library
Home-page: https://docs.openstack.org/oslo.service/latest/
Author: OpenStack
@@ -35,7 +35,7 @@
* Free software: Apache license
* Documentation: https://docs.openstack.org/oslo.service/latest/
- * Source: https://git.openstack.org/cgit/openstack/oslo.service
+ * Source: https://opendev.org/openstack/oslo.service
* Bugs: https://bugs.launchpad.net/oslo.service
* Release notes: https://docs.openstack.org/releasenotes/oslo.service/
@@ -50,4 +50,5 @@
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
+Classifier: Programming Language :: Python :: 3.7
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.service-1.38.0/oslo.service.egg-info/SOURCES.txt
new/oslo.service-1.40.2/oslo.service.egg-info/SOURCES.txt
--- old/oslo.service-1.38.0/oslo.service.egg-info/SOURCES.txt 2019-02-26
01:09:41.000000000 +0100
+++ new/oslo.service-1.40.2/oslo.service.egg-info/SOURCES.txt 2019-09-12
18:37:54.000000000 +0200
@@ -15,6 +15,7 @@
setup.py
test-requirements.txt
tox.ini
+doc/requirements.txt
doc/source/conf.py
doc/source/index.rst
doc/source/configuration/index.rst
@@ -73,6 +74,8 @@
releasenotes/notes/add-timeout-looping-call-5cc396b75597c3c2.yaml
releasenotes/notes/add_reno-3b4ae0789e9c45b4.yaml
releasenotes/notes/profile-worker-5d3fd0f0251d62b8.yaml
+releasenotes/notes/service-children-SIGHUP-15d0cf6d2a1bdbf9.yaml
+releasenotes/notes/support-pid-in-eventlet-backdoor-socket-path-1863eaad1dd08556.yaml
releasenotes/notes/threadgroup-cancel-bd89d72f383a3d9b.yaml
releasenotes/notes/timer-args-f578c8f9d08b217d.yaml
releasenotes/notes/timer-stop_on_exception-9f21d7c4d6d1b0d9.yaml
@@ -82,6 +85,7 @@
releasenotes/source/pike.rst
releasenotes/source/queens.rst
releasenotes/source/rocky.rst
+releasenotes/source/stein.rst
releasenotes/source/unreleased.rst
releasenotes/source/_static/.placeholder
releasenotes/source/_templates/.placeholder
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.service-1.38.0/oslo.service.egg-info/pbr.json
new/oslo.service-1.40.2/oslo.service.egg-info/pbr.json
--- old/oslo.service-1.38.0/oslo.service.egg-info/pbr.json 2019-02-26
01:09:41.000000000 +0100
+++ new/oslo.service-1.40.2/oslo.service.egg-info/pbr.json 2019-09-12
18:37:54.000000000 +0200
@@ -1 +1 @@
-{"git_version": "ca6f839", "is_release": true}
\ No newline at end of file
+{"git_version": "a7621c8", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.service-1.38.0/oslo_service/_options.py
new/oslo.service-1.40.2/oslo_service/_options.py
--- old/oslo.service-1.38.0/oslo_service/_options.py 2019-02-26
01:07:10.000000000 +0100
+++ new/oslo.service-1.40.2/oslo_service/_options.py 2019-09-12
18:37:18.000000000 +0200
@@ -31,7 +31,8 @@
" option is mutually exclusive with 'backdoor_port' in"
" that only one should be provided. If both are provided"
" then the existence of this option overrides the usage of"
- " that option.")
+ " that option. Inside the path {pid} will be replaced with"
+ " the PID of the current process.")
]
periodic_opts = [
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.service-1.38.0/oslo_service/eventlet_backdoor.py
new/oslo.service-1.40.2/oslo_service/eventlet_backdoor.py
--- old/oslo.service-1.38.0/oslo_service/eventlet_backdoor.py 2019-02-26
01:07:10.000000000 +0100
+++ new/oslo.service-1.40.2/oslo_service/eventlet_backdoor.py 2019-09-12
18:37:18.000000000 +0200
@@ -214,8 +214,16 @@
# listen(). In any case, pull the port number out here.
where_running = sock.getsockname()[1]
else:
- sock = _try_open_unix_domain_socket(conf.backdoor_socket)
- where_running = conf.backdoor_socket
+ try:
+ backdoor_socket_path = conf.backdoor_socket.format(pid=os.getpid())
+ except (KeyError, IndexError, ValueError) as e:
+ backdoor_socket_path = conf.backdoor_socket
+ LOG.warning("Could not apply format string to eventlet "
+ "backdoor socket path ({}) - continuing with "
+ "unformatted path"
+ "".format(e))
+ sock = _try_open_unix_domain_socket(backdoor_socket_path)
+ where_running = backdoor_socket_path
# NOTE(johannes): The standard sys.displayhook will print the value of
# the last expression and set it to __builtin__._, which overwrites
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.service-1.38.0/oslo_service/service.py
new/oslo.service-1.40.2/oslo_service/service.py
--- old/oslo.service-1.38.0/oslo_service/service.py 2019-02-26
01:07:10.000000000 +0100
+++ new/oslo.service-1.40.2/oslo_service/service.py 2019-09-12
18:37:18.000000000 +0200
@@ -261,12 +261,10 @@
"""
self.conf = conf
conf.register_opts(_options.service_opts)
- self.services = Services()
+ self.services = Services(restart_method=restart_method)
self.backdoor_port = (
eventlet_backdoor.initialize_if_enabled(self.conf))
self.restart_method = restart_method
- if restart_method not in _LAUNCHER_RESTART_METHODS:
- raise ValueError(_("Invalid restart_method: %s") % restart_method)
def launch_service(self, service, workers=1):
"""Load and start the given service.
@@ -309,7 +307,7 @@
"""
if self.restart_method == 'reload':
self.conf.reload_config_files()
- elif self.restart_method == 'mutate':
+ else: # self.restart_method == 'mutate'
self.conf.mutate_config_files()
self.services.restart()
@@ -372,7 +370,7 @@
super(ServiceLauncher, self).wait()
except SignalExit as exc:
signame = self.signal_handler.signals_to_name[exc.signo]
- LOG.info('Caught %s, exiting', signame)
+ LOG.info('Caught %s, handling', signame)
status = exc.code
signo = exc.signo
except SystemExit as exc:
@@ -518,7 +516,7 @@
launcher.wait()
except SignalExit as exc:
signame = self.signal_handler.signals_to_name[exc.signo]
- LOG.info('Child caught %s, exiting', signame)
+ LOG.info('Child caught %s, handling', signame)
status = exc.code
signo = exc.signo
except SystemExit as exc:
@@ -668,16 +666,18 @@
if not _is_sighup_and_daemon(self.sigcaught):
break
+ child_signal = signal.SIGTERM
if self.restart_method == 'reload':
self.conf.reload_config_files()
elif self.restart_method == 'mutate':
self.conf.mutate_config_files()
+ child_signal = signal.SIGHUP
for service in set(
[wrap.service for wrap in self.children.values()]):
service.reset()
for pid in self.children:
- os.kill(pid, signal.SIGTERM)
+ os.kill(pid, child_signal)
self.running = True
self.sigcaught = None
@@ -743,7 +743,10 @@
class Services(object):
- def __init__(self):
+ def __init__(self, restart_method='reload'):
+ if restart_method not in _LAUNCHER_RESTART_METHODS:
+ raise ValueError(_("Invalid restart_method: %s") % restart_method)
+ self.restart_method = restart_method
self.services = []
self.tg = threadgroup.ThreadGroup()
self.done = event.Event()
@@ -776,12 +779,23 @@
self.tg.wait()
def restart(self):
- """Reset services and start them in new threads."""
- self.stop()
- self.done = event.Event()
+ """Reset services.
+
+ The behavior of this function varies depending on the value of the
+ restart_method member. If the restart_method is `reload`, then it
+ will stop the services, reset them, and start them in new threads.
+ If the restart_method is `mutate`, then it will just reset the
+ services without restarting them.
+ """
+ if self.restart_method == 'reload':
+ self.stop()
+ self.done = event.Event()
for restart_service in self.services:
restart_service.reset()
- self.tg.add_thread(self.run_service, restart_service, self.done)
+ if self.restart_method == 'reload':
+ self.tg.add_thread(self.run_service,
+ restart_service,
+ self.done)
@staticmethod
def run_service(service, done):
@@ -807,13 +821,17 @@
:param conf: an instance of ConfigOpts
:param service: a service to launch, must be an instance of
:class:`oslo_service.service.ServiceBase`
- :param workers: a number of processes in which a service will be running
+ :param workers: a number of processes in which a service will be running,
+ type should be int.
:param restart_method: Passed to the constructed launcher. If 'reload', the
launcher will call reload_config_files on SIGHUP. If 'mutate', it will
call mutate_config_files on SIGHUP. Other values produce a ValueError.
:returns: instance of a launcher that was used to launch the service
"""
+ if workers is not None and not isinstance(workers, six.integer_types):
+ raise TypeError(_("Type of workers should be int!"))
+
if workers is not None and workers <= 0:
raise ValueError(_("Number of workers should be positive!"))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.service-1.38.0/oslo_service/tests/test_eventlet_backdoor.py
new/oslo.service-1.40.2/oslo_service/tests/test_eventlet_backdoor.py
--- old/oslo.service-1.38.0/oslo_service/tests/test_eventlet_backdoor.py
2019-02-26 01:07:10.000000000 +0100
+++ new/oslo.service-1.40.2/oslo_service/tests/test_eventlet_backdoor.py
2019-09-12 18:37:18.000000000 +0200
@@ -38,6 +38,30 @@
path = eventlet_backdoor.initialize_if_enabled(self.conf)
self.assertEqual("/tmp/my_special_socket", path)
+ @mock.patch.object(eventlet, 'spawn')
+ @mock.patch.object(eventlet, 'listen')
+ def test_backdoor_path_with_format_string(self, listen_mock, spawn_mock):
+ self.config(backdoor_socket="/tmp/my_special_socket-{pid}")
+ listen_mock.side_effect = mock.Mock()
+ path = eventlet_backdoor.initialize_if_enabled(self.conf)
+ expected_path = "/tmp/my_special_socket-{}".format(os.getpid())
+ self.assertEqual(expected_path, path)
+
+ @mock.patch.object(eventlet, 'spawn')
+ @mock.patch.object(eventlet, 'listen')
+ def test_backdoor_path_with_broken_format_string(self, listen_mock,
+ spawn_mock):
+ broken_socket_paths = [
+ "/tmp/my_special_socket-{}",
+ "/tmp/my_special_socket-{broken",
+ "/tmp/my_special_socket-{broken}",
+ ]
+ for socket_path in broken_socket_paths:
+ self.config(backdoor_socket=socket_path)
+ listen_mock.side_effect = mock.Mock()
+ path = eventlet_backdoor.initialize_if_enabled(self.conf)
+ self.assertEqual(socket_path, path)
+
@mock.patch.object(os, 'unlink')
@mock.patch.object(eventlet, 'spawn')
@mock.patch.object(eventlet, 'listen')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.service-1.38.0/oslo_service/tests/test_service.py
new/oslo.service-1.40.2/oslo_service/tests/test_service.py
--- old/oslo.service-1.38.0/oslo_service/tests/test_service.py 2019-02-26
01:07:10.000000000 +0100
+++ new/oslo.service-1.40.2/oslo_service/tests/test_service.py 2019-09-12
18:37:18.000000000 +0200
@@ -385,6 +385,9 @@
for num_workers in [0, -1]:
self.assertRaises(ValueError, service.launch, self.conf,
svc, num_workers)
+ for num_workers in ["0", "a", "1"]:
+ self.assertRaises(TypeError, service.launch, self.conf,
+ svc, num_workers)
@mock.patch('signal.alarm')
@mock.patch('oslo_service.service.ProcessLauncher.launch_service')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.service-1.38.0/releasenotes/notes/service-children-SIGHUP-15d0cf6d2a1bdbf9.yaml
new/oslo.service-1.40.2/releasenotes/notes/service-children-SIGHUP-15d0cf6d2a1bdbf9.yaml
---
old/oslo.service-1.38.0/releasenotes/notes/service-children-SIGHUP-15d0cf6d2a1bdbf9.yaml
1970-01-01 01:00:00.000000000 +0100
+++
new/oslo.service-1.40.2/releasenotes/notes/service-children-SIGHUP-15d0cf6d2a1bdbf9.yaml
2019-09-12 18:37:18.000000000 +0200
@@ -0,0 +1,10 @@
+---
+fixes:
+ - |
+ ``SIGHUP`` is now handled properly with ``restart_method='mutate'``, no
+ longer restarting child processes. See `bug 1794708`_ for details. In
+ conjunction with the fix for `bug 1715374`_ in oslo.privsep, the
+ nova-compute service now behaves correctly when it receives ``SIGHUP``.
+
+ .. _`bug 1794708`: https://bugs.launchpad.net/oslo.service/+bug/1794708
+ .. _`bug 1715374`: https://bugs.launchpad.net/nova/+bug/1715374
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.service-1.38.0/releasenotes/notes/support-pid-in-eventlet-backdoor-socket-path-1863eaad1dd08556.yaml
new/oslo.service-1.40.2/releasenotes/notes/support-pid-in-eventlet-backdoor-socket-path-1863eaad1dd08556.yaml
---
old/oslo.service-1.38.0/releasenotes/notes/support-pid-in-eventlet-backdoor-socket-path-1863eaad1dd08556.yaml
1970-01-01 01:00:00.000000000 +0100
+++
new/oslo.service-1.40.2/releasenotes/notes/support-pid-in-eventlet-backdoor-socket-path-1863eaad1dd08556.yaml
2019-09-12 18:37:18.000000000 +0200
@@ -0,0 +1,8 @@
+---
+features:
+ - |
+ The config option backdoor_socket_path now is a format string that
+ supports {pid}, which will be replaced with the PID of the current
+ process. This makes the eventlet backdoor accessible when spawning
+ multiple processes with the same backdoor_socket_path inside the
+ configuration.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.service-1.38.0/releasenotes/source/index.rst
new/oslo.service-1.40.2/releasenotes/source/index.rst
--- old/oslo.service-1.38.0/releasenotes/source/index.rst 2019-02-26
01:07:10.000000000 +0100
+++ new/oslo.service-1.40.2/releasenotes/source/index.rst 2019-09-12
18:37:18.000000000 +0200
@@ -6,6 +6,7 @@
:maxdepth: 1
unreleased
+ stein
rocky
queens
pike
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.service-1.38.0/releasenotes/source/stein.rst
new/oslo.service-1.40.2/releasenotes/source/stein.rst
--- old/oslo.service-1.38.0/releasenotes/source/stein.rst 1970-01-01
01:00:00.000000000 +0100
+++ new/oslo.service-1.40.2/releasenotes/source/stein.rst 2019-09-12
18:37:18.000000000 +0200
@@ -0,0 +1,6 @@
+===================================
+ Stein Series Release Notes
+===================================
+
+.. release-notes::
+ :branch: stable/stein
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.service-1.38.0/setup.cfg
new/oslo.service-1.40.2/setup.cfg
--- old/oslo.service-1.38.0/setup.cfg 2019-02-26 01:09:41.000000000 +0100
+++ new/oslo.service-1.40.2/setup.cfg 2019-09-12 18:37:54.000000000 +0200
@@ -16,7 +16,8 @@
Programming Language :: Python :: 2
Programming Language :: Python :: 2.7
Programming Language :: Python :: 3
- Programming Language :: Python :: 3.5
+ Programming Language :: Python :: 3.6
+ Programming Language :: Python :: 3.7
[files]
packages =
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.service-1.38.0/test-requirements.txt
new/oslo.service-1.40.2/test-requirements.txt
--- old/oslo.service-1.38.0/test-requirements.txt 2019-02-26
01:07:10.000000000 +0100
+++ new/oslo.service-1.40.2/test-requirements.txt 2019-09-12
18:37:18.000000000 +0200
@@ -9,13 +9,9 @@
requests>=2.14.2 # Apache-2.0
stestr>=2.0.0 # Apache-2.0
-# These are needed for docs generation/testing
-openstackdocstheme>=1.18.1 # Apache-2.0
-sphinx!=1.6.6,>=1.6.2 # BSD
doc8>=0.6.0 # Apache-2.0
-reno>=2.5.0 # Apache-2.0
coverage!=4.4,>=4.0 # Apache-2.0
# Bandit security code scanner
-bandit>=1.1.0 # Apache-2.0
+bandit>=1.1.0,<1.6.0 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.service-1.38.0/tox.ini
new/oslo.service-1.40.2/tox.ini
--- old/oslo.service-1.38.0/tox.ini 2019-02-26 01:07:10.000000000 +0100
+++ new/oslo.service-1.40.2/tox.ini 2019-09-12 18:37:18.000000000 +0200
@@ -1,6 +1,6 @@
[tox]
minversion = 2.0
-envlist = py35,py27,pep8,bandit
+envlist = py27,py37,pep8,bandit
[testenv]
setenv =
@@ -9,7 +9,8 @@
CLIENT_NAME=oslo.service
install_command = pip install {opts} {packages}
deps =
-
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
+
-c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt}
+ -r{toxinidir}/doc/requirements.txt
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/requirements.txt
whitelist_externals = find
@@ -30,7 +31,11 @@
[testenv:docs]
basepython = python3
-commands = python setup.py build_sphinx
+whitelist_externals =
+ rm
+commands =
+ rm -rf doc/build
+ sphinx-build -W -b html doc/source doc/build/html {posargs}
[testenv:cover]
basepython = python3
@@ -54,7 +59,7 @@
[testenv:bandit]
basepython = python3
deps =
-
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
+
-c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt}
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/requirements.txt
commands = bandit -r oslo_service -n5 -x tests {posargs}