Hello community,

here is the log from the commit of package python-oslo.service for 
openSUSE:Factory checked in at 2018-09-07 15:39:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-oslo.service (Old)
 and      /work/SRC/openSUSE:Factory/.python-oslo.service.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-oslo.service"

Fri Sep  7 15:39:09 2018 rev:12 rq:633109 version:1.31.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-oslo.service/python-oslo.service.changes  
2018-03-19 23:36:29.233446310 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-oslo.service.new/python-oslo.service.changes 
    2018-09-07 15:39:10.826550530 +0200
@@ -1,0 +2,29 @@
+Sat Sep  1 09:01:29 UTC 2018 - [email protected]
+
+- update to version 1.31.3
+  - Update reno for stable/queens
+  - Imported Translations from Zanata
+  - Revert "Revert "Permit aborting loopingcall while sleeping""
+  - Add release notes link to README
+  - Convert oslo.service to using stestr
+  - Add test dependency on requests
+  - Remove unnecessary pyNN testenv
+  - Fix oslo.service ProcessLauncher fails to call stop
+  - Python 3: Fix non-deterministic test
+  - Remove stale pip-missing-reqs tox test
+  - [ThreadGroup] Don't remove timer when stop timers
+  - Update links in README
+  - Trivial: Update pypi url to new url
+  - Fixup certificates and skip failing test
+  - Remove moxstubout
+  - Remove eventlet cap
+  - tox.ini: Use python3.5 in py35 environment
+  - set default python to python3
+  - fix tox python3 overrides
+  - Python 3: Fix eventlet wakeup after signal
+  - Make lower-constraints job voting
+  - move doc8 test to pep8 job
+  - Updated from global requirements
+  - add lower-constraints job
+
+-------------------------------------------------------------------

Old:
----
  oslo.service-1.29.0.tar.gz

New:
----
  oslo.service-1.31.3.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-oslo.service.spec ++++++
--- /var/tmp/diff_new_pack.DtXRBa/_old  2018-09-07 15:39:11.206550122 +0200
+++ /var/tmp/diff_new_pack.DtXRBa/_new  2018-09-07 15:39:11.210550118 +0200
@@ -20,33 +20,55 @@
 %global rdo 1
 %endif
 Name:           python-oslo.service
-Version:        1.29.0
+Version:        1.31.3
 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.29.0.tar.gz
+URL:            https://launchpad.net/oslo.service
+Source0:        
https://files.pythonhosted.org/packages/source/o/oslo.service/oslo.service-1.31.3.tar.gz
 BuildRequires:  openstack-macros
 BuildRequires:  procps
-BuildRequires:  python-Paste >= 2.0.2
-BuildRequires:  python-PasteDeploy >= 1.5.0
-BuildRequires:  python-Routes >= 2.3.1
-BuildRequires:  python-WebOb >= 1.7.1
 BuildRequires:  python-devel
-BuildRequires:  python-eventlet >= 0.18.2
-BuildRequires:  python-fixtures >= 3.0.0
-BuildRequires:  python-greenlet >= 0.4.10
-BuildRequires:  python-mock >= 2.0.0
-BuildRequires:  python-monotonic >= 0.6
-BuildRequires:  python-oslo.concurrency >= 3.25.0
-BuildRequires:  python-oslo.config >= 5.1.0
-BuildRequires:  python-oslo.i18n >= 3.15.3
-BuildRequires:  python-oslo.log >= 3.36.0
-BuildRequires:  python-oslo.utils >= 3.33.0
-BuildRequires:  python-oslotest >= 3.2.0
-BuildRequires:  python-pbr >= 2.0.0
-BuildRequires:  python-six >= 1.10.0
+BuildRequires:  python2-Paste >= 2.0.2
+BuildRequires:  python2-PasteDeploy >= 1.5.0
+BuildRequires:  python2-Routes >= 2.3.1
+BuildRequires:  python2-WebOb >= 1.7.1
+BuildRequires:  python2-eventlet >= 0.18.2
+BuildRequires:  python2-fixtures
+BuildRequires:  python2-greenlet >= 0.4.10
+BuildRequires:  python2-mock
+BuildRequires:  python2-monotonic >= 0.6
+BuildRequires:  python2-oslo.concurrency >= 3.25.0
+BuildRequires:  python2-oslo.config >= 5.1.0
+BuildRequires:  python2-oslo.i18n >= 3.15.3
+BuildRequires:  python2-oslo.log >= 3.36.0
+BuildRequires:  python2-oslo.utils >= 3.33.0
+BuildRequires:  python2-oslotest
+BuildRequires:  python2-pbr
+BuildRequires:  python2-requests
+BuildRequires:  python2-six >= 1.10.0
+BuildRequires:  python2-stestr
+BuildRequires:  python3-Paste >= 2.0.2
+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
+BuildRequires:  python3-greenlet >= 0.4.10
+BuildRequires:  python3-mock
+BuildRequires:  python3-monotonic >= 0.6
+BuildRequires:  python3-oslo.concurrency >= 3.25.0
+BuildRequires:  python3-oslo.config >= 5.1.0
+BuildRequires:  python3-oslo.i18n >= 3.15.3
+BuildRequires:  python3-oslo.log >= 3.36.0
+BuildRequires:  python3-oslo.utils >= 3.33.0
+BuildRequires:  python3-oslotest
+BuildRequires:  python3-pbr
+BuildRequires:  python3-requests
+BuildRequires:  python3-six >= 1.10.0
+BuildRequires:  python3-stestr
 Requires:       python-Paste >= 2.0.2
 Requires:       python-PasteDeploy >= 1.5.0
 Requires:       python-Routes >= 2.3.1
@@ -61,6 +83,7 @@
 Requires:       python-oslo.utils >= 3.33.0
 Requires:       python-six >= 1.10.0
 BuildArch:      noarch
+%python_subpackages
 
 %description
 oslo.service provides a framework for defining new long-running services using
@@ -68,14 +91,13 @@
 utilities long-running applications might need for working with SSL or WSGI,
 performing periodic operations, interacting with systemd, etc.
 
-%package doc
+%package -n python-oslo.service-doc
 Summary:        Documentation for OpenStack service library
 Group:          Development/Languages/Python
 BuildRequires:  python-Sphinx
-BuildRequires:  python-openstackdocstheme >= 1.18.1
-BuildRequires:  python-reno >= 2.5.0
+BuildRequires:  python-openstackdocstheme
 
-%description doc
+%description -n python-oslo.service-doc
 oslo.service provides a framework for defining new long-running services using
 the patterns established by other OpenStack applications. It also includes
 utilities long-running applications might need for working with SSL or WSGI,
@@ -83,12 +105,12 @@
 This package contains the documentation.
 
 %prep
-%autosetup -p1 -n oslo.service-1.29.0
+%autosetup -p1 -n oslo.service-1.31.3
 %py_req_cleanup
 sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
 
 %build
-%{py2_build}
+%{python_build}
 
 # generate html docs
 %{__python2} setup.py build_sphinx
@@ -96,21 +118,18 @@
 rm -rf doc/build/html/.{doctrees,buildinfo}
 
 %install
-%{py2_install}
+%{python_install}
 
 %check
-# FIXME(jpena): unlock unit tests on RDO once there is a newer version of 
python-cryptography
-%if 0%{?rdo} == 0
-%{__python2} setup.py testr
-%endif
+%python_exec -m stestr.cli run
 
-%files
+%files %{python_files}
 %license LICENSE
 %doc README.rst ChangeLog
-%{python2_sitelib}/oslo_service
-%{python2_sitelib}/*.egg-info
+%{python_sitelib}/oslo_service
+%{python_sitelib}/*.egg-info
 
-%files doc
+%files -n python-oslo.service-doc
 %license LICENSE
 %doc doc/build/html
 

++++++ _service ++++++
--- /var/tmp/diff_new_pack.DtXRBa/_old  2018-09-07 15:39:11.230550096 +0200
+++ /var/tmp/diff_new_pack.DtXRBa/_new  2018-09-07 15:39:11.234550092 +0200
@@ -1,8 +1,8 @@
 <services>
   <service mode="disabled" name="renderspec">
-    <param 
name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/queens/openstack/oslo.service/oslo.service.spec.j2</param>
+    <param 
name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/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/rpm-packaging/stable/queens/requirements.txt</param>
+    <param 
name="requirements">https://raw.githubusercontent.com/openstack/oslo.service/stable/rocky/requirements.txt</param>
     <param name="changelog-email">[email protected]</param>
     <param name="changelog-provider">gh,openstack,oslo.service</param>
   </service>

++++++ oslo.service-1.29.0.tar.gz -> oslo.service-1.31.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.service-1.29.0/.stestr.conf 
new/oslo.service-1.31.3/.stestr.conf
--- old/oslo.service-1.29.0/.stestr.conf        1970-01-01 01:00:00.000000000 
+0100
+++ new/oslo.service-1.31.3/.stestr.conf        2018-07-24 00:38:25.000000000 
+0200
@@ -0,0 +1,3 @@
+[DEFAULT]
+test_path=./oslo_service/tests
+top_path=./
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.service-1.29.0/.testr.conf 
new/oslo.service-1.31.3/.testr.conf
--- old/oslo.service-1.29.0/.testr.conf 2018-01-08 15:13:39.000000000 +0100
+++ new/oslo.service-1.31.3/.testr.conf 1970-01-01 01:00:00.000000000 +0100
@@ -1,7 +0,0 @@
-[DEFAULT]
-test_command=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} \
-             OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} \
-             OS_TEST_TIMEOUT=${OS_TEST_TIMEOUT:-60} \
-             ${PYTHON:-python} -m subunit.run discover -t ./ ./oslo_service 
$LISTOPT $IDOPTION
-test_id_option=--load-list $IDFILE
-test_list_option=--list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.service-1.29.0/.zuul.yaml 
new/oslo.service-1.31.3/.zuul.yaml
--- old/oslo.service-1.29.0/.zuul.yaml  1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.service-1.31.3/.zuul.yaml  2018-07-24 00:38:25.000000000 +0200
@@ -0,0 +1,7 @@
+- project:
+    check:
+      jobs:
+        - openstack-tox-lower-constraints
+    gate:
+      jobs:
+        - openstack-tox-lower-constraints
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.service-1.29.0/AUTHORS 
new/oslo.service-1.31.3/AUTHORS
--- old/oslo.service-1.29.0/AUTHORS     2018-01-08 15:16:02.000000000 +0100
+++ new/oslo.service-1.31.3/AUTHORS     2018-07-24 00:42:44.000000000 +0200
@@ -20,6 +20,7 @@
 Chang Bo Guo <[email protected]>
 ChangBo Guo(gcb) <[email protected]>
 ChangBo Guo(gcb) <[email protected]>
+Charles Short <[email protected]>
 Christian Berendt <[email protected]>
 Christopher Lefelhocz <[email protected]>
 Chuck Short <[email protected]>
@@ -27,6 +28,7 @@
 Corey Bryant <[email protected]>
 Dan Prince <[email protected]>
 Daniel P. Berrange <[email protected]>
+Davanum Srinivas (dims) <[email protected]>
 Davanum Srinivas <[email protected]>
 Davanum Srinivas <[email protected]>
 David Ripton <[email protected]>
@@ -64,6 +66,7 @@
 Joshua Harlow <[email protected]>
 Joshua Harlow <[email protected]>
 Julien Danjou <[email protected]>
+Kenneth Giusti <[email protected]>
 Kevin L. Mitchell <[email protected]>
 Kiall Mac Innes <[email protected]>
 Kirill Bespalov <[email protected]>
@@ -99,9 +102,11 @@
 Thomas Herve <[email protected]>
 Tianhua Huang <[email protected]>
 Tom Cammann <[email protected]>
+TommyLike <[email protected]>
 Tony Breeds <[email protected]>
 Victor Sergeyev <[email protected]>
 Victor Stinner <[email protected]>
+Vu Cong Tuan <[email protected]>
 Wenzhi Yu <[email protected]>
 Zane Bitter <[email protected]>
 ZhiQiang Fan <[email protected]>
@@ -111,6 +116,7 @@
 fujioka yuuichi <[email protected]>
 gecong1973 <[email protected]>
 gongysh <[email protected]>
+jun923.gu <[email protected]>
 lei zhang <[email protected]>
 lin-hua-cheng <[email protected]>
 liu-sheng <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.service-1.29.0/ChangeLog 
new/oslo.service-1.31.3/ChangeLog
--- old/oslo.service-1.29.0/ChangeLog   2018-01-08 15:16:02.000000000 +0100
+++ new/oslo.service-1.31.3/ChangeLog   2018-07-24 00:42:44.000000000 +0200
@@ -1,6 +1,55 @@
 CHANGES
 =======
 
+1.31.3
+------
+
+* Remove unnecessary pyNN testenv
+* Convert oslo.service to using stestr
+* Add release notes link to README
+* Fix oslo.service ProcessLauncher fails to call stop
+* fix tox python3 overrides
+* Add test dependency on requests
+* Remove moxstubout
+
+1.31.2
+------
+
+* [ThreadGroup] Don't remove timer when stop timers
+* Make lower-constraints job voting
+* tox.ini: Use python3.5 in py35 environment
+* Python 3: Fix eventlet wakeup after signal
+* Python 3: Fix non-deterministic test
+* Remove stale pip-missing-reqs tox test
+* Trivial: Update pypi url to new url
+* add lower-constraints job
+* move doc8 test to pep8 job
+* set default python to python3
+
+1.31.1
+------
+
+* Revert "Revert "Permit aborting loopingcall while sleeping""
+
+1.31.0
+------
+
+* Remove eventlet cap
+* Fixup certificates and skip failing test
+
+1.30.0
+------
+
+* Imported Translations from Zanata
+* Imported Translations from Zanata
+* Update links in README
+* Imported Translations from Zanata
+* Updated from global requirements
+* Update reno for stable/queens
+* Updated from global requirements
+* Updated from global requirements
+* Updated from global requirements
+
 1.29.0
 ------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.service-1.29.0/PKG-INFO 
new/oslo.service-1.31.3/PKG-INFO
--- old/oslo.service-1.29.0/PKG-INFO    2018-01-08 15:16:02.000000000 +0100
+++ new/oslo.service-1.31.3/PKG-INFO    2018-07-24 00:42:45.000000000 +0200
@@ -1,18 +1,17 @@
 Metadata-Version: 1.1
 Name: oslo.service
-Version: 1.29.0
+Version: 1.31.3
 Summary: oslo.service library
 Home-page: https://docs.openstack.org/oslo.service/latest/
 Author: OpenStack
 Author-email: [email protected]
 License: UNKNOWN
-Description-Content-Type: UNKNOWN
 Description: ========================
         Team and repository tags
         ========================
         
-        .. image:: http://governance.openstack.org/badges/oslo.service.svg
-            :target: http://governance.openstack.org/reference/tags/index.html
+        .. image:: https://governance.openstack.org/tc/badges/oslo.service.svg
+            :target: 
https://governance.openstack.org/tc/ference/tags/index.html
         
         .. Change things from this point on
         
@@ -21,11 +20,11 @@
         ========================================================
         
         .. image:: https://img.shields.io/pypi/v/oslo.service.svg
-            :target: https://pypi.python.org/pypi/oslo.service/
+            :target: https://pypi.org/project/oslo.service/
             :alt: Latest Version
         
         .. image:: https://img.shields.io/pypi/dm/oslo.service.svg
-            :target: https://pypi.python.org/pypi/oslo.service/
+            :target: https://pypi.org/project/oslo.service/
             :alt: Downloads
         
         oslo.service provides a framework for defining new long-running
@@ -38,6 +37,7 @@
         * Documentation: https://docs.openstack.org/oslo.service/latest/
         * Source: https://git.openstack.org/cgit/openstack/oslo.service
         * Bugs: https://bugs.launchpad.net/oslo.service
+        * Release notes: https://docs.openstack.org/releasenotes/oslo.service/
         
         
 Platform: UNKNOWN
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.service-1.29.0/README.rst 
new/oslo.service-1.31.3/README.rst
--- old/oslo.service-1.29.0/README.rst  2018-01-08 15:13:39.000000000 +0100
+++ new/oslo.service-1.31.3/README.rst  2018-07-24 00:38:25.000000000 +0200
@@ -2,8 +2,8 @@
 Team and repository tags
 ========================
 
-.. image:: http://governance.openstack.org/badges/oslo.service.svg
-    :target: http://governance.openstack.org/reference/tags/index.html
+.. image:: https://governance.openstack.org/tc/badges/oslo.service.svg
+    :target: https://governance.openstack.org/tc/ference/tags/index.html
 
 .. Change things from this point on
 
@@ -12,11 +12,11 @@
 ========================================================
 
 .. image:: https://img.shields.io/pypi/v/oslo.service.svg
-    :target: https://pypi.python.org/pypi/oslo.service/
+    :target: https://pypi.org/project/oslo.service/
     :alt: Latest Version
 
 .. image:: https://img.shields.io/pypi/dm/oslo.service.svg
-    :target: https://pypi.python.org/pypi/oslo.service/
+    :target: https://pypi.org/project/oslo.service/
     :alt: Downloads
 
 oslo.service provides a framework for defining new long-running
@@ -29,3 +29,4 @@
 * Documentation: https://docs.openstack.org/oslo.service/latest/
 * Source: https://git.openstack.org/cgit/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.29.0/RELEASENOTES.rst 
new/oslo.service-1.31.3/RELEASENOTES.rst
--- old/oslo.service-1.29.0/RELEASENOTES.rst    1970-01-01 01:00:00.000000000 
+0100
+++ new/oslo.service-1.31.3/RELEASENOTES.rst    2018-07-24 00:42:45.000000000 
+0200
@@ -0,0 +1,3 @@
+============
+oslo.service
+============
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.service-1.29.0/lower-constraints.txt 
new/oslo.service-1.31.3/lower-constraints.txt
--- old/oslo.service-1.29.0/lower-constraints.txt       1970-01-01 
01:00:00.000000000 +0100
+++ new/oslo.service-1.31.3/lower-constraints.txt       2018-07-24 
00:38:25.000000000 +0200
@@ -0,0 +1,74 @@
+alabaster==0.7.10
+appdirs==1.3.0
+Babel==2.3.4
+bandit==1.1.0
+chardet==3.0.4
+coverage==4.0
+debtcollector==1.2.0
+doc8==0.6.0
+docutils==0.11
+dulwich==0.15.0
+eventlet==0.18.2
+extras==1.0.0
+fasteners==0.7.0
+fixtures==3.0.0
+flake8==2.5.5
+gitdb==0.6.4
+GitPython==1.0.1
+greenlet==0.4.10
+hacking==0.12.0
+imagesize==0.7.1
+iso8601==0.1.11
+Jinja2==2.10
+keystoneauth1==3.4.0
+linecache2==1.0.0
+MarkupSafe==1.0
+mccabe==0.2.1
+mock==2.0.0
+monotonic==0.6
+mox3==0.20.0
+msgpack-python==0.4.0
+netaddr==0.7.18
+netifaces==0.10.4
+openstackdocstheme==1.18.1
+os-client-config==1.28.0
+oslo.concurrency==3.25.0
+oslo.config==5.1.0
+oslo.context==2.19.2
+oslo.i18n==3.15.3
+oslo.log==3.36.0
+oslo.serialization==2.18.0
+oslo.utils==3.33.0
+oslotest==3.2.0
+Paste==2.0.2
+PasteDeploy==1.5.0
+pbr==2.0.0
+pep8==1.5.7
+pyflakes==0.8.1
+Pygments==2.2.0
+pyinotify==0.9.6
+pyparsing==2.1.0
+python-dateutil==2.5.3
+python-mimeparse==1.6.0
+python-subunit==1.0.0
+pytz==2013.6
+PyYAML==3.12
+reno==2.5.0
+repoze.lru==0.7
+requests==2.14.2
+requestsexceptions==1.2.0
+restructuredtext-lint==1.1.1
+rfc3986==0.3.1
+Routes==2.3.1
+six==1.10.0
+smmap==0.9.0
+snowballstemmer==1.2.1
+Sphinx==1.6.2
+sphinxcontrib-websupport==1.0.1
+stestr==2.0.0
+stevedore==1.20.0
+testtools==2.2.0
+traceback2==1.4.0
+unittest2==1.1.0
+WebOb==1.7.1
+wrapt==1.7.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.service-1.29.0/oslo.service.egg-info/PKG-INFO 
new/oslo.service-1.31.3/oslo.service.egg-info/PKG-INFO
--- old/oslo.service-1.29.0/oslo.service.egg-info/PKG-INFO      2018-01-08 
15:16:02.000000000 +0100
+++ new/oslo.service-1.31.3/oslo.service.egg-info/PKG-INFO      2018-07-24 
00:42:44.000000000 +0200
@@ -1,18 +1,17 @@
 Metadata-Version: 1.1
 Name: oslo.service
-Version: 1.29.0
+Version: 1.31.3
 Summary: oslo.service library
 Home-page: https://docs.openstack.org/oslo.service/latest/
 Author: OpenStack
 Author-email: [email protected]
 License: UNKNOWN
-Description-Content-Type: UNKNOWN
 Description: ========================
         Team and repository tags
         ========================
         
-        .. image:: http://governance.openstack.org/badges/oslo.service.svg
-            :target: http://governance.openstack.org/reference/tags/index.html
+        .. image:: https://governance.openstack.org/tc/badges/oslo.service.svg
+            :target: 
https://governance.openstack.org/tc/ference/tags/index.html
         
         .. Change things from this point on
         
@@ -21,11 +20,11 @@
         ========================================================
         
         .. image:: https://img.shields.io/pypi/v/oslo.service.svg
-            :target: https://pypi.python.org/pypi/oslo.service/
+            :target: https://pypi.org/project/oslo.service/
             :alt: Latest Version
         
         .. image:: https://img.shields.io/pypi/dm/oslo.service.svg
-            :target: https://pypi.python.org/pypi/oslo.service/
+            :target: https://pypi.org/project/oslo.service/
             :alt: Downloads
         
         oslo.service provides a framework for defining new long-running
@@ -38,6 +37,7 @@
         * Documentation: https://docs.openstack.org/oslo.service/latest/
         * Source: https://git.openstack.org/cgit/openstack/oslo.service
         * Bugs: https://bugs.launchpad.net/oslo.service
+        * Release notes: https://docs.openstack.org/releasenotes/oslo.service/
         
         
 Platform: UNKNOWN
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.service-1.29.0/oslo.service.egg-info/SOURCES.txt 
new/oslo.service-1.31.3/oslo.service.egg-info/SOURCES.txt
--- old/oslo.service-1.29.0/oslo.service.egg-info/SOURCES.txt   2018-01-08 
15:16:02.000000000 +0100
+++ new/oslo.service-1.31.3/oslo.service.egg-info/SOURCES.txt   2018-07-24 
00:42:45.000000000 +0200
@@ -1,6 +1,7 @@
 .coveragerc
 .mailmap
-.testr.conf
+.stestr.conf
+.zuul.yaml
 AUTHORS
 CONTRIBUTING.rst
 ChangeLog
@@ -8,6 +9,7 @@
 LICENSE
 README.rst
 babel.cfg
+lower-constraints.txt
 requirements.txt
 setup.cfg
 setup.py
@@ -71,6 +73,7 @@
 releasenotes/source/index.rst
 releasenotes/source/ocata.rst
 releasenotes/source/pike.rst
+releasenotes/source/queens.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.29.0/oslo.service.egg-info/pbr.json 
new/oslo.service-1.31.3/oslo.service.egg-info/pbr.json
--- old/oslo.service-1.29.0/oslo.service.egg-info/pbr.json      2018-01-08 
15:16:02.000000000 +0100
+++ new/oslo.service-1.31.3/oslo.service.egg-info/pbr.json      2018-07-24 
00:42:44.000000000 +0200
@@ -1 +1 @@
-{"git_version": "e753070", "is_release": true}
\ No newline at end of file
+{"git_version": "62d4119", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.service-1.29.0/oslo.service.egg-info/requires.txt 
new/oslo.service-1.31.3/oslo.service.egg-info/requires.txt
--- old/oslo.service-1.29.0/oslo.service.egg-info/requires.txt  2018-01-08 
15:16:02.000000000 +0100
+++ new/oslo.service-1.31.3/oslo.service.egg-info/requires.txt  2018-07-24 
00:42:44.000000000 +0200
@@ -1,11 +1,11 @@
 WebOb>=1.7.1
-eventlet!=0.18.3,!=0.20.1,<0.21.0,>=0.18.2
+eventlet!=0.18.3,!=0.20.1,>=0.18.2
 greenlet>=0.4.10
 monotonic>=0.6
 oslo.utils>=3.33.0
-oslo.concurrency>=3.20.0
+oslo.concurrency>=3.25.0
 oslo.config>=5.1.0
-oslo.log>=3.30.0
+oslo.log>=3.36.0
 six>=1.10.0
 oslo.i18n>=3.15.3
 PasteDeploy>=1.5.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.service-1.29.0/oslo_service/locale/en_GB/LC_MESSAGES/oslo_service.po 
new/oslo.service-1.31.3/oslo_service/locale/en_GB/LC_MESSAGES/oslo_service.po
--- 
old/oslo.service-1.29.0/oslo_service/locale/en_GB/LC_MESSAGES/oslo_service.po   
    2018-01-08 15:13:39.000000000 +0100
+++ 
new/oslo.service-1.31.3/oslo_service/locale/en_GB/LC_MESSAGES/oslo_service.po   
    2018-07-24 00:38:25.000000000 +0200
@@ -3,17 +3,17 @@
 # Andi Chandler <[email protected]>, 2017. #zanata
 msgid ""
 msgstr ""
-"Project-Id-Version: oslo.service 1.25.1.dev9\n"
+"Project-Id-Version: oslo.service VERSION\n"
 "Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n";
-"POT-Creation-Date: 2017-09-18 13:02+0000\n"
+"POT-Creation-Date: 2018-01-30 05:35+0000\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "PO-Revision-Date: 2017-10-07 09:30+0000\n"
 "Last-Translator: Andi Chandler <[email protected]>\n"
 "Language-Team: English (United Kingdom)\n"
-"Language: en-GB\n"
-"X-Generator: Zanata 3.9.6\n"
+"Language: en_GB\n"
+"X-Generator: Zanata 4.3.3\n"
 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
 
 msgid ""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.service-1.29.0/oslo_service/loopingcall.py 
new/oslo.service-1.31.3/oslo_service/loopingcall.py
--- old/oslo.service-1.29.0/oslo_service/loopingcall.py 2018-01-08 
15:13:39.000000000 +0100
+++ new/oslo.service-1.31.3/oslo_service/loopingcall.py 2018-07-24 
00:38:25.000000000 +0200
@@ -17,11 +17,13 @@
 
 import random
 import sys
+import threading
 import time
 
 from eventlet import event
 from eventlet import greenthread
 from oslo_log import log as logging
+from oslo_utils import eventletutils
 from oslo_utils import excutils
 from oslo_utils import reflection
 from oslo_utils import timeutils
@@ -75,6 +77,53 @@
     return func
 
 
+def _Event():
+    if eventletutils.is_monkey_patched('thread'):
+        return _ThreadingEvent()
+    else:
+        return _GreenEvent()
+
+
+class _ThreadingEvent(object):
+    def __init__(self):
+        self._abort = threading.Event()
+
+    def is_running(self):
+        return not self._abort.is_set()
+
+    def clear(self):
+        self._abort.clear()
+
+    def wait(self, timeout):
+        self._abort.wait(timeout)
+
+    def stop(self):
+        self._abort.set()
+
+    def done(self):
+        pass
+
+
+class _GreenEvent(object):
+    def __init__(self):
+        self._running = False
+
+    def is_running(self):
+        return self._running
+
+    def clear(self):
+        self._running = True
+
+    def wait(self, timeout):
+        greenthread.sleep(timeout)
+
+    def stop(self):
+        self._running = False
+
+    def done(self):
+        self._running = False
+
+
 class LoopingCallBase(object):
     _KIND = _("Unknown looping call")
 
@@ -85,19 +134,26 @@
         self.args = args
         self.kw = kw
         self.f = f
-        self._running = False
         self._thread = None
         self.done = None
+        self._event = _Event()
+
+    @property
+    def _running(self):
+        return self._event.is_running()
 
     def stop(self):
-        self._running = False
+        self._event.stop()
 
     def wait(self):
         return self.done.wait()
 
     def _on_done(self, gt, *args, **kwargs):
         self._thread = None
-        self._running = False
+        self._event.done()
+
+    def _sleep(self, timeout):
+        self._event.wait(timeout)
 
     def _start(self, idle_for, initial_delay=None, stop_on_exception=True):
         """Start the looping
@@ -114,8 +170,8 @@
         """
         if self._thread is not None:
             raise RuntimeError(self._RUN_ONLY_ONE_MESSAGE)
-        self._running = True
         self.done = event.Event()
+        self._event.clear()
         self._thread = greenthread.spawn(
             self._run_loop, idle_for,
             initial_delay=initial_delay, stop_on_exception=stop_on_exception)
@@ -129,7 +185,7 @@
         func = self.f if stop_on_exception else _safe_wrapper(self.f, kind,
                                                               func_name)
         if initial_delay:
-            greenthread.sleep(initial_delay)
+            self._sleep(initial_delay)
         try:
             watch = timeutils.StopWatch()
             while self._running:
@@ -143,7 +199,7 @@
                           'for %(idle).02f seconds',
                           {'func_name': func_name, 'idle': idle,
                            'kind': kind})
-                greenthread.sleep(idle)
+                self._sleep(idle)
         except LoopingCallDone as e:
             self.done.send(e.retvalue)
         except Exception:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.service-1.29.0/oslo_service/service.py 
new/oslo.service-1.31.3/oslo_service/service.py
--- old/oslo.service-1.29.0/oslo_service/service.py     2018-01-08 
15:13:49.000000000 +0100
+++ new/oslo.service-1.31.3/oslo_service/service.py     2018-07-24 
00:38:25.000000000 +0200
@@ -21,7 +21,9 @@
 import collections
 import copy
 import errno
+import functools
 import gc
+import inspect
 import io
 import logging
 import os
@@ -129,6 +131,9 @@
 
     def __init__(self, *args, **kwargs):
         super(SignalHandler, self).__init__(*args, **kwargs)
+
+        self.__setup_signal_interruption()
+
         # Map all signal names to signal integer values and create a
         # reverse mapping (for easier + quick lookup).
         self._ignore_signals = ('SIG_DFL', 'SIG_IGN')
@@ -174,6 +179,64 @@
         # clear(): clear() is not reentrant (bug #1538204).
         eventlet.spawn(self._handle_signal_cb, signo, frame)
 
+        # On Python >= 3.5, ensure that eventlet's poll() or sleep() call is
+        # interrupted by raising an exception. If the signal handler does not
+        # raise an exception then due to PEP 475 the call will not return until
+        # an event is detected on a file descriptor or the timeout is reached,
+        # and thus eventlet will not wake up and notice that there has been a
+        # new thread spawned.
+        if self.__force_interrupt_on_signal:
+            try:
+                interrupted_frame = inspect.stack(context=0)[1]
+            except IndexError:
+                pass
+            else:
+                if ((interrupted_frame.function == 'do_poll' and
+                     interrupted_frame.filename == self.__hub_module_file) or
+                    (interrupted_frame.function == 'do_sleep' and
+                     interrupted_frame.filename == __file__)):
+                    raise IOError(errno.EINTR, 'Interrupted')
+
+    def __setup_signal_interruption(self):
+        """Set up to do the Right Thing with signals during poll() and sleep().
+
+        For Python 3.5 and later, deal with the changes in PEP 475 that prevent
+        a signal from interrupting eventlet's call to poll() or sleep().
+        """
+        self.__force_interrupt_on_signal = sys.version_info >= (3, 5)
+
+        if self.__force_interrupt_on_signal:
+            try:
+                from eventlet.hubs import poll as poll_hub
+            except ImportError:
+                pass
+            else:
+                # This is a function we can test for in the stack when handling
+                # a signal - it's safe to raise an IOError with EINTR anywhere
+                # in this function.
+                def do_sleep(time_sleep_func, seconds):
+                    return time_sleep_func(seconds)
+
+                time_sleep = eventlet.patcher.original('time').sleep
+
+                # Wrap time.sleep to ignore the interruption error we're
+                # injecting from the signal handler. This makes the behaviour
+                # the same as sleep() in Python 2, where EINTR causes the
+                # sleep to be interrupted (and not resumed), but no exception
+                # is raised.
+                @functools.wraps(time_sleep)
+                def sleep_wrapper(seconds):
+                    try:
+                        return do_sleep(time_sleep, seconds)
+                    except (IOError, InterruptedError) as err:
+                        if err.errno != errno.EINTR:
+                            raise
+
+                poll_hub.sleep = sleep_wrapper
+
+            hub = eventlet.hubs.get_hub()
+            self.__hub_module_file = sys.modules[hub.__module__].__file__
+
     def _handle_signal_cb(self, signo, frame):
         for handler in self._signal_handlers[signo]:
             handler(signo, frame)
@@ -457,8 +520,10 @@
             status = exc.code
             signo = exc.signo
         except SystemExit as exc:
+            launcher.stop()
             status = exc.code
         except BaseException:
+            launcher.stop()
             LOG.exception('Unhandled exception')
             status = 2
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.service-1.29.0/oslo_service/tests/ssl_cert/ca.crt 
new/oslo.service-1.31.3/oslo_service/tests/ssl_cert/ca.crt
--- old/oslo.service-1.29.0/oslo_service/tests/ssl_cert/ca.crt  2018-01-08 
15:13:39.000000000 +0100
+++ new/oslo.service-1.31.3/oslo_service/tests/ssl_cert/ca.crt  2018-07-24 
00:38:25.000000000 +0200
@@ -1,40 +1,18 @@
 -----BEGIN CERTIFICATE-----
-MIIHADCCBOigAwIBAgIJAOjPGLL9VDhjMA0GCSqGSIb3DQEBDQUAMIGwMQswCQYD
-VQQGEwJVUzEOMAwGA1UECBMFVGV4YXMxDzANBgNVBAcTBkF1c3RpbjEdMBsGA1UE
-ChMUT3BlblN0YWNrIEZvdW5kYXRpb24xHTAbBgNVBAsTFE9wZW5TdGFjayBEZXZl
-bG9wZXJzMRAwDgYDVQQDEwdUZXN0IENBMTAwLgYJKoZIhvcNAQkBFiFvcGVuc3Rh
-Y2stZGV2QGxpc3RzLm9wZW5zdGFjay5vcmcwHhcNMTUwMTA4MDIyOTEzWhcNMjUw
-MTA4MDIyOTEzWjCBsDELMAkGA1UEBhMCVVMxDjAMBgNVBAgTBVRleGFzMQ8wDQYD
-VQQHEwZBdXN0aW4xHTAbBgNVBAoTFE9wZW5TdGFjayBGb3VuZGF0aW9uMR0wGwYD
-VQQLExRPcGVuU3RhY2sgRGV2ZWxvcGVyczEQMA4GA1UEAxMHVGVzdCBDQTEwMC4G
-CSqGSIb3DQEJARYhb3BlbnN0YWNrLWRldkBsaXN0cy5vcGVuc3RhY2sub3JnMIIC
-IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAwILIMebpHYK1E1zhyi6713GG
-TQ9DFeLOE1T25+XTJqAkO7efQzZfB8QwCXy/8bmbhmKgQQ7APuuDci8SKCkYeWCx
-qJRGmg0tZVlj5gCfrV2u+olwS+XyaOGCFkYScs6D34BaE2rGD2GDryoSPc2feAt6
-X4+ZkDPZnvaHQP6j9Ofq/4WmsECEas0IO5X8SDF8afA47U9ZXFkcgQK6HCHDcokL
-aaZxEyZFSaPex6ZAESNthkGOxEThRPxAkJhqYCeMl3Hff98XEUcFNzuAOmcnQJJg
-RemwJO2hS5KS3Y3p9/nBRlh3tSAG1nbY5kXSpyaq296D9x/esnXlt+9JUmn1rKyv
-maFBC/SbzyyQoO3MT5r8rKte0bulLw1bZOZNlhxSv2KCg5RD6vlNrnpsZszw4nj2
-8fBroeFp0JMeT8jcqGs3qdm8sXLcBgiTalLYtiCNV9wZjOduQotuFN6mDwZvfa6h
-zZjcBNfqeLyTEnFb5k6pIla0wydWx/jvBAzoxOkEcVjak747A+p/rriD5hVUBH0B
-uNaWcEgKe9jcHnLvU8hUxFtgPxUHOOR+eMa+FS3ApKf9sJ/zVUq0uxyA9hUnsvnq
-v/CywLSvaNKBiKQTL0QLEXnw6EQb7g/XuwC5mmt+l30wGh9M1U/QMaU/+YzT4sVL
-TXIHJ7ExRTbEecbNbjsCAwEAAaOCARkwggEVMB0GA1UdDgQWBBQTWz2WEB0sJg9c
-xfM5JeJMIAJq0jCB5QYDVR0jBIHdMIHagBQTWz2WEB0sJg9cxfM5JeJMIAJq0qGB
-tqSBszCBsDELMAkGA1UEBhMCVVMxDjAMBgNVBAgTBVRleGFzMQ8wDQYDVQQHEwZB
-dXN0aW4xHTAbBgNVBAoTFE9wZW5TdGFjayBGb3VuZGF0aW9uMR0wGwYDVQQLExRP
-cGVuU3RhY2sgRGV2ZWxvcGVyczEQMA4GA1UEAxMHVGVzdCBDQTEwMC4GCSqGSIb3
-DQEJARYhb3BlbnN0YWNrLWRldkBsaXN0cy5vcGVuc3RhY2sub3JnggkA6M8Ysv1U
-OGMwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQ0FAAOCAgEAIfAD6uVorT5WomG1
-2DWRm3kuwa+EDimgVF6VRvxCzyHx7e/6KJQj149KpMQ6e0ZPjqQw+pZ+jJSgq6TP
-MEjCHgIDwdKhi9LmQWIlo8xdzgfZW2VQkVLvwkqAnWWhCy9oGc/Ypk8pjiZfCx+/
-DSJBbFnopI9f8epAKMq7N3jJyEMoTctzmI0KckrZnJ1Gq4MZpoxGmkJiGhWoUk8p
-r8apXZ6B1DzO1XxpGw2BIcrUC3bQS/vPrg5/XbyaAu2BSgu6iF7ULqkBsEd0yK/L
-i2gO9eTacaX3zJBQOlMJFsIAgIiVw6Rq6BuhU9zxDoopY4feta/NDOpk1OjY3MV7
-4rcLTU6XYaItMDRe+dmjBOK+xspsaCU4kHEkA7mHL5YZhEEWLHj6QY8tAiIQMVQZ
-RuTpQIbNkjLW8Ls+CbwL2LkUFB19rKu9tFpzEJ1IIeFmt5HZsL5ri6W2qkSPIbIe
-Qq15kl/a45jgBbgn2VNA5ecjW20hhXyaS9AKWXK+AeFBaFIFDUrB2UP4YSDbJWUJ
-0LKe+QuumXdl+iRdkgb1Tll7qme8gXAeyzVGHK2AsaBg+gkEeSyVLRKIixceyy+3
-6yqlKJhk2qeV3ceOfVm9ZdvRlzWyVctaTcGIpDFqf4y8YyVhL1e2KGKcmYtbLq+m
-rtku4CM3HldxcM4wqSB1VcaTX8o=
+MIIC6jCCAdKgAwIBAgIUZdS0qsU+lp2Vjxqir0wtWawoGTAwDQYJKoZIhvcNAQEL
+BQAwDTELMAkGA1UEAxMCQ0EwHhcNMTgwNDA5MjAxNzAwWhcNMjMwNDA4MjAxNzAw
+WjANMQswCQYDVQQDEwJDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+ALg+95eNXP1S3KQMmhuABAbL6WIyumwuKej/WWCke33TXO0g6vkKuhsVOIjqkDow
+73iWrcEhuGCOkmAkLOASz6BP7m+QBreS8XQ57BpIz1x3hFZ/UKYStWCuTLgwHYzO
+QgrA2Neu41zfJ6ia8p+fPFqhX05sVl0TJeh3zktN9KfwliFznIy/j3XR/x/tKX0O
+rGDwz0kB7QyR/N2aQGxokFQZhwLnlFHinY4jvPQpsINpxrdwUlBI0ajIAd7aIo3f
+uiQ9a4n71Ngf/3Dk44NIAMuAqzTQFRIndXWfTsyxfW6qiZMJn4lqr0p3nVEP8Bxb
++UROl/R6YHapi4HgoCLbCOUCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1Ud
+EwEB/wQFMAMBAf8wHQYDVR0OBBYEFIf1eOkulZ9jqaJIIgvnvZfQwS2aMA0GCSqG
+SIb3DQEBCwUAA4IBAQA5KwHzREGtXJR5RmzgckxQtPNJS5iQ4/ZZUIIEjnFnXpUL
+J3R+n5uGT89NTCm5XlMKljTNdPEogn7alxlNSRLbPoJO7mY6cdhGXYOxaln2gQSi
+2V4Shxi59JT3wEr52ipkU/UprB1VrWQ5CFAXd+oybTAte1VMFjiz77NDjPEhTqn6
+o788buJscyoRMdGl9gB36dQMzaFHx8yavmAS+CD20d0PDdx+PCeDBO7jVjSli4GC
+0IeleBcNkW9Oe1rj355HK2JHc81WJLoE33Q+1E10bVT5tb1d0qq8M6zqQ3WLLWOz
+H1encDyc6bpt55qAzSq9vRgWhtYngpeepTtXpTUN
 -----END CERTIFICATE-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.service-1.29.0/oslo_service/tests/ssl_cert/ca.key 
new/oslo.service-1.31.3/oslo_service/tests/ssl_cert/ca.key
--- old/oslo.service-1.29.0/oslo_service/tests/ssl_cert/ca.key  2018-01-08 
15:13:39.000000000 +0100
+++ new/oslo.service-1.31.3/oslo_service/tests/ssl_cert/ca.key  2018-07-24 
00:38:25.000000000 +0200
@@ -1,51 +1,27 @@
 -----BEGIN RSA PRIVATE KEY-----
-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
+MIIEpQIBAAKCAQEAuD73l41c/VLcpAyaG4AEBsvpYjK6bC4p6P9ZYKR7fdNc7SDq
++Qq6GxU4iOqQOjDveJatwSG4YI6SYCQs4BLPoE/ub5AGt5LxdDnsGkjPXHeEVn9Q
+phK1YK5MuDAdjM5CCsDY167jXN8nqJryn588WqFfTmxWXRMl6HfOS030p/CWIXOc
+jL+PddH/H+0pfQ6sYPDPSQHtDJH83ZpAbGiQVBmHAueUUeKdjiO89Cmwg2nGt3BS
+UEjRqMgB3toijd+6JD1rifvU2B//cOTjg0gAy4CrNNAVEid1dZ9OzLF9bqqJkwmf
+iWqvSnedUQ/wHFv5RE6X9HpgdqmLgeCgItsI5QIDAQABAoIBAQCRvq2YouiGM3/5
+/UYCrveAcNlDJqG1ZacderC29CYD2KjPo5R8QHILbnP0Sqigf4lPONJlzkjNiLpd
+dwBQmFDJnbEday8FFCYQLKmJ+UKfAKQc0EV5uZ7kxbxGjzkw4w/29aoSo3OTSatT
+go6emhXiE3kSzjxbEASSqgL0Ksx3806J59Mv5FMVp7EOiKVcux6Rg7tc24tpg/Aa
+6TR3oAGc4DGVQHko25eJY6iRRgFBt3n+M5oLwFrEz8ec4RQML1ov2ybBS25gzzyk
+aDBW9HRKucqQWMDHcg/YfTRBruW971oUuVXmMtLei6ZKYFTVA7+ZhomKGhnj+Wqz
+dTmH3XgBAoGBAM1BMTXhmZXRALlwTr5Iw+pn2OrOh7I8Z3ZOqtb0iXmCqbFfSo1I
+KvIEEfF+ATzOVdLrqo4iVwtQW7VAvJt9NJWNaIXIoY6HhGAVeDvq4zJ4ng/MkjPc
+KKjKy9TmwU8pDhprFCNFY5NmHxgKHUpPybvSfFBdIBPqjkk331/0PgXlAoGBAOXM
+HDbjmldWzUTTXztJx7loQgedajMLlZXIfzO84jvHvUp/IWzf1r0QjqO5o5XZwR9U
+6jfQEcz06Hrk4m8W5LqfMzOyHOBNhMCDXpFMlJct6I5XITQj28g4ZUtEuVJOUQKH
+Hl6hMidkFN1h23jis2u/ZeIt/FjczFNIGWIXaMcBAoGBALylcF8/S/OgNnQ5PoYx
+Rq+IZpvY2mr8jXL09pu+ASRG7UPyewjDDYWGLB+yWdzTH5pNs2ITOcFSSBecujyG
+pO/XGfvr3GCtOQM+eFVJmytmJJAMy0sSy+PnD9RLidwBtc6eH9ITEmQE9gsYMLd+
+AcG4wTzzemoTqFavHYSJbP/pAoGAB1B13XFlKj6DDhvEPjjc+JPO9jsWdEV8H2Zg
+Vh8+/DQhXEurnrGJPj9WqvNvt4dU1FB5nAktZ96rv62lX2/VG/ORR6X1sVYGUbJc
+wjczy5QUgONZFTXG+xqAbuLjGzGO9ouiddSfqg1PdLR2reRZXaab8ZURISr1/fif
+hjXEigECgYEAgBZDchm/FaOLzIzi3wAHBeG/jnC0NTcLxzDzqh7NNs6ADSEvXOn+
+O5HyD4iOkicBUotl7J9+4I5ivQjA5QbEjq+CWtHMaHd4xDv/jxvo6cuYJV5SSno3
+ev3hxhD5cCGuw0u9LN6M5ERAelPMTeGHGhTLsW7ZMzdj+g/gddBnqKA=
 -----END RSA PRIVATE KEY-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.service-1.29.0/oslo_service/tests/ssl_cert/certificate.crt 
new/oslo.service-1.31.3/oslo_service/tests/ssl_cert/certificate.crt
--- old/oslo.service-1.29.0/oslo_service/tests/ssl_cert/certificate.crt 
2018-01-08 15:13:39.000000000 +0100
+++ new/oslo.service-1.31.3/oslo_service/tests/ssl_cert/certificate.crt 
2018-07-24 00:38:25.000000000 +0200
@@ -1,41 +1,20 @@
 -----BEGIN CERTIFICATE-----
-MIIHHjCCBQagAwIBAgIBATANBgkqhkiG9w0BAQ0FADCBsDELMAkGA1UEBhMCVVMx
-DjAMBgNVBAgTBVRleGFzMQ8wDQYDVQQHEwZBdXN0aW4xHTAbBgNVBAoTFE9wZW5T
-dGFjayBGb3VuZGF0aW9uMR0wGwYDVQQLExRPcGVuU3RhY2sgRGV2ZWxvcGVyczEQ
-MA4GA1UEAxMHVGVzdCBDQTEwMC4GCSqGSIb3DQEJARYhb3BlbnN0YWNrLWRldkBs
-aXN0cy5vcGVuc3RhY2sub3JnMB4XDTE1MDEwODAyNTQzNVoXDTI1MDEwODAyNTQz
-NVoweDELMAkGA1UEBhMCVVMxDjAMBgNVBAgTBVRleGFzMQ8wDQYDVQQHEwZBdXN0
-aW4xHTAbBgNVBAoTFE9wZW5TdGFjayBGb3VuZGF0aW9uMR0wGwYDVQQLExRPcGVu
-U3RhY2sgRGV2ZWxvcGVyczEKMAgGA1UEAxQBKjCCAiIwDQYJKoZIhvcNAQEBBQAD
-ggIPADCCAgoCggIBANBJtvyhMKBn397hE7x9Ce/Ny+4ENQfr9VrHuvGNCR3W/uUb
-QafdNdZCYNAGPrq2T3CEYK0IJxZjr2HuTcSK9StBMFauTeIPqVUVkO3Tjq1Rkv+L
-np/e6DhHkjCU6Eq/jIw3ic0QoxLygTybGxXgJgVoBzGsJufzOQ14tfkzGeGyE3L5
-z5DpCNQqWLWF7soMx3kM5hBm+LWeoiBPjmsEXQY+UYiDlSLW/6I855X/wwDW5+Ot
-P6/1lWUfcyAyIqj3t0pmxZeY7xQnabWjhXT2dTK+dlwRjb77w665AgeF1R5lpTvU
-yT1aQwgH1kd9GeQbkBDwWSVLH9boPPgdMLtX2ipUgQAAEhIOUWXOYZVHVNXhV6Cr
-jAgvfdF39c9hmuXovPP24ikW4L+d5RPE7Vq9KJ4Uzijw9Ghu4lQQCRZ8SCNZIYJn
-Tz53+6fs93WwnnEPto9tFRKeNWt3jx/wjluDFhhBTZO4snNIq9xnCYSEQAIsRBVW
-Ahv7LqWLigUy7a9HMIyi3tQEZN9NCDy4BNuJDu33XWLLVMwNrIiR5mdCUFoRKt/E
-+YPj7bNlzZMTSGLoBFPM71Lnfym9HazHDE1KxvT4gzYMubK4Y07meybiL4QNvU08
-ITgFU6DAGob+y/GHqw+bmez5y0F/6FlyV+SiSrbVEEtzp9Ewyrxb85OJFK0tAgMB
-AAGjggF4MIIBdDBLBgNVHREERDBCgglsb2NhbGhvc3SCDWlwNi1sb2NhbGhvc3SC
-CTEyNy4wLjAuMYIDOjoxhwR/AAABhxAAAAAAAAAAAAAAAAAAAAABMB0GA1UdDgQW
-BBSjWxD0qedj9eeGUWyGphy5PU67dDCB5QYDVR0jBIHdMIHagBQTWz2WEB0sJg9c
-xfM5JeJMIAJq0qGBtqSBszCBsDELMAkGA1UEBhMCVVMxDjAMBgNVBAgTBVRleGFz
-MQ8wDQYDVQQHEwZBdXN0aW4xHTAbBgNVBAoTFE9wZW5TdGFjayBGb3VuZGF0aW9u
-MR0wGwYDVQQLExRPcGVuU3RhY2sgRGV2ZWxvcGVyczEQMA4GA1UEAxMHVGVzdCBD
-QTEwMC4GCSqGSIb3DQEJARYhb3BlbnN0YWNrLWRldkBsaXN0cy5vcGVuc3RhY2su
-b3JnggkA6M8Ysv1UOGMwCQYDVR0TBAIwADATBgNVHSUEDDAKBggrBgEFBQcDATAN
-BgkqhkiG9w0BAQ0FAAOCAgEAIGx/acXQEiGYFBJUduE6/Y6LBuHEVMcj0yfbLzja
-Eb35xKWHuX7tgQPwXy6UGlYM8oKIptIp/9eEuYXte6u5ncvD7e/JldCUVd0fW8hm
-fBOhfqVstcTmlfZ6WqTJD6Bp/FjUH+8qf8E+lsjNy7i0EsmcQOeQm4mkocHG1AA4
-MEeuDg33lV6XCjW450BoZ/FTfwZSuTlGgFlEzUUrAe/ETdajF9G9aJ+0OvXzE1tU
-pvbvkU8eg4pLXxrzboOhyQMEmCikdkMYjo/0ZQrXrrJ1W8mCinkJdz6CToc7nUkU
-F8tdAY0rKMEM8SYHngMJU2943lpGbQhE5B4oms8I+SMTyCVz2Vu5I43Px68Y0GUN
-Bn5qu0w2Vj8eradoPF8pEAIVICIvlbiRepPbNZ7FieSsY2TEfLtxBd2DLE1YWeE5
-p/RDBxqcDrGQuSg6gFSoLEhYgQcGnYgD75EIE8f/LrHFOAeSYEOhibFbK5G8p/2h
-EHcKZ9lvTgqwHn0FiTqZ3LWxVFsZiTsiyXErpJ2Nu2WTzo0k1xJMUpJqHuUZraei
-N5fA5YuDp2ShXRoZyVieRvp0TCmm6sHL8Pn0K8weJchYrvV1yvPKeuISN/fVCQev
-88yih5Rh5R2szwoY3uVImpd99bMm0e1bXrQug43ZUz9rC4ABN6+lZvuorDWRVI7U
-I1M=
+MIIDPjCCAiagAwIBAgIUPYihitTTb7gWtqs/i6AAYFW6DNIwDQYJKoZIhvcNAQEL
+BQAwDTELMAkGA1UEAxMCQ0EwHhcNMTgwNDA5MjAxNzAwWhcNMjMwNDA4MjAxNzAw
+WjARMQ8wDQYDVQQDEwZjbGllbnQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQCqaPl2WX6j50gkQldm+VsP1m7ZtPfNjMmn3GSw++a1aaZo9wz7odmrTX/r
+WcC9wulwEwOMtquVAk5gp5UDOXAXgqszN9goNvOrk9rdpe8Y5p1ZqniI74sl6GFT
+l6q/vxIjG5A72tbjTEGcbeYUwhCF/p74QjXgPCxKbWwCDGRl+32IykWGYWjxhTBp
+72aCCu1BAixQ0zj8QY747DF6nYMDLhsmN24vJ8kFBpsQ+Fgk0/VYbwt2yLIWyAhG
+1Pe/TkLA1A1aBh6qCEogxRkNhYkYnOGDt7GABcnXRhrQg+3oVPrDO1Ypd8H6qAUj
+s8USD6XWlpZpet3OGx3bTubk6LXNAgMBAAGjgZEwgY4wDgYDVR0PAQH/BAQDAgWg
+MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMB0G
+A1UdDgQWBBQC5/cd1gqoU4rItbUuFczSEza0qjAfBgNVHSMEGDAWgBSH9XjpLpWf
+Y6miSCIL572X0MEtmjAPBgNVHREECDAGhwR/AAABMA0GCSqGSIb3DQEBCwUAA4IB
+AQBZRABYxl0l7DOmzMbTOR0qcMry7BWeyn+S4b2NeUQm6xQer+H7b0D6hO4bEvM2
+l4sjmTYzWUEDqzbe2V40fofaye5PsWJhDdED8X2OJ8op7tFuv8FS2ac/9Z8bh6Bj
+clEYZT2iFdVTLXtl7za6XzD9A1yQrhE1PTqQmiOZBziGi+UJTs22SU/Z3x1cXKqc
+gzkZRoG7OZ60XCfwotJDcspfG/bqn5pTW2qMcLilf4UPUeMk3WBbhEvV7Fd+jKe8
+0LHsAD4lh2+yUbLYcV3/gQEZ+MESrDhgcWLoy9O9eiZ+odz2kW2gwPXZ6/rr3Ek7
+mMvfWWF4vMPlO+vCPFq33jie
 -----END CERTIFICATE-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.service-1.29.0/oslo_service/tests/ssl_cert/privatekey.key 
new/oslo.service-1.31.3/oslo_service/tests/ssl_cert/privatekey.key
--- old/oslo.service-1.29.0/oslo_service/tests/ssl_cert/privatekey.key  
2018-01-08 15:13:39.000000000 +0100
+++ new/oslo.service-1.31.3/oslo_service/tests/ssl_cert/privatekey.key  
2018-07-24 00:38:25.000000000 +0200
@@ -1,51 +1,27 @@
 -----BEGIN RSA PRIVATE KEY-----
-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
+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
 -----END RSA PRIVATE KEY-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.service-1.29.0/oslo_service/tests/test_loopingcall.py 
new/oslo.service-1.31.3/oslo_service/tests/test_loopingcall.py
--- old/oslo.service-1.29.0/oslo_service/tests/test_loopingcall.py      
2018-01-08 15:13:39.000000000 +0100
+++ new/oslo.service-1.31.3/oslo_service/tests/test_loopingcall.py      
2018-07-24 00:38:25.000000000 +0200
@@ -285,7 +285,7 @@
         else:
             self.num_runs = self.num_runs - 1
 
-    @mock.patch('eventlet.greenthread.sleep')
+    @mock.patch('oslo_service.loopingcall.LoopingCallBase._sleep')
     def test_timeout_task_without_return(self, sleep_mock):
         self.num_runs = 1
         timer = loopingcall.DynamicLoopingCall(
@@ -294,7 +294,7 @@
         timer.start(periodic_interval_max=5).wait()
         sleep_mock.assert_has_calls([mock.call(5)])
 
-    @mock.patch('eventlet.greenthread.sleep')
+    @mock.patch('oslo_service.loopingcall.LoopingCallBase._sleep')
     def test_interval_adjustment(self, sleep_mock):
         self.num_runs = 2
 
@@ -303,7 +303,7 @@
 
         sleep_mock.assert_has_calls([mock.call(5), mock.call(1)])
 
-    @mock.patch('eventlet.greenthread.sleep')
+    @mock.patch('oslo_service.loopingcall.LoopingCallBase._sleep')
     def test_initial_delay(self, sleep_mock):
         self.num_runs = 1
 
@@ -315,7 +315,7 @@
 
 class TestBackOffLoopingCall(test_base.BaseTestCase):
     @mock.patch('random.SystemRandom.gauss')
-    @mock.patch('eventlet.greenthread.sleep')
+    @mock.patch('oslo_service.loopingcall.LoopingCallBase._sleep')
     def test_exponential_backoff(self, sleep_mock, random_mock):
         def false():
             return False
@@ -340,7 +340,7 @@
         self.assertEqual(expected_times, sleep_mock.call_args_list)
 
     @mock.patch('random.SystemRandom.gauss')
-    @mock.patch('eventlet.greenthread.sleep')
+    @mock.patch('oslo_service.loopingcall.LoopingCallBase._sleep')
     def test_exponential_backoff_negative_value(self, sleep_mock, random_mock):
         def false():
             return False
@@ -366,7 +366,7 @@
         self.assertEqual(expected_times, sleep_mock.call_args_list)
 
     @mock.patch('random.SystemRandom.gauss')
-    @mock.patch('eventlet.greenthread.sleep')
+    @mock.patch('oslo_service.loopingcall.LoopingCallBase._sleep')
     def test_no_backoff(self, sleep_mock, random_mock):
         random_mock.return_value = 1
         func = mock.Mock()
@@ -381,7 +381,7 @@
         self.assertTrue(retvalue, 'return value')
 
     @mock.patch('random.SystemRandom.gauss')
-    @mock.patch('eventlet.greenthread.sleep')
+    @mock.patch('oslo_service.loopingcall.LoopingCallBase._sleep')
     def test_no_sleep(self, sleep_mock, random_mock):
         # Any call that executes properly the first time shouldn't sleep
         random_mock.return_value = 1
@@ -394,7 +394,7 @@
         self.assertTrue(retvalue, 'return value')
 
     @mock.patch('random.SystemRandom.gauss')
-    @mock.patch('eventlet.greenthread.sleep')
+    @mock.patch('oslo_service.loopingcall.LoopingCallBase._sleep')
     def test_max_interval(self, sleep_mock, random_mock):
         def false():
             return False
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.service-1.29.0/oslo_service/tests/test_service.py 
new/oslo.service-1.31.3/oslo_service/tests/test_service.py
--- old/oslo.service-1.29.0/oslo_service/tests/test_service.py  2018-01-08 
15:13:39.000000000 +0100
+++ new/oslo.service-1.31.3/oslo_service/tests/test_service.py  2018-07-24 
00:38:25.000000000 +0200
@@ -454,9 +454,10 @@
 
         self.assertFalse(launcher.running)
         self.assertFalse(launcher.children)
-        self.assertEqual([mock.call(222, signal_mock.SIGTERM),
-                          mock.call(22, signal_mock.SIGTERM)],
-                         mock_kill.mock_calls)
+        mock_kill.assert_has_calls([mock.call(222, signal_mock.SIGTERM),
+                                    mock.call(22, signal_mock.SIGTERM)],
+                                   any_order=True)
+        self.assertEqual(2, mock_kill.call_count)
         mock_service_stop.assert_called_once_with()
 
     def test__handle_signal(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.service-1.29.0/oslo_service/tests/test_threadgroup.py 
new/oslo.service-1.31.3/oslo_service/tests/test_threadgroup.py
--- old/oslo.service-1.29.0/oslo_service/tests/test_threadgroup.py      
2018-01-08 15:13:39.000000000 +0100
+++ new/oslo.service-1.31.3/oslo_service/tests/test_threadgroup.py      
2018-07-24 00:38:25.000000000 +0200
@@ -80,6 +80,7 @@
 
         self.assertEqual(0, len(self.tg.threads))
         self.assertTrue(end_time - start_time < 1)
+        self.assertEqual(0, len(self.tg.timers))
 
     def test_stop_gracefully(self):
 
@@ -92,6 +93,7 @@
 
         self.assertEqual(0, len(self.tg.threads))
         self.assertTrue(end_time - start_time >= 1)
+        self.assertEqual(0, len(self.tg.timers))
 
     def test_cancel_early(self):
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.service-1.29.0/oslo_service/tests/test_wsgi.py 
new/oslo.service-1.31.3/oslo_service/tests/test_wsgi.py
--- old/oslo.service-1.29.0/oslo_service/tests/test_wsgi.py     2018-01-08 
15:13:39.000000000 +0100
+++ new/oslo.service-1.31.3/oslo_service/tests/test_wsgi.py     2018-07-24 
00:38:25.000000000 +0200
@@ -34,7 +34,6 @@
 from oslo_service.tests import base
 from oslo_service import wsgi
 from oslo_utils import netutils
-from oslotest import moxstubout
 
 
 SSL_CERT_DIR = os.path.normpath(os.path.join(
@@ -56,9 +55,10 @@
 
     def setUp(self):
         super(TestLoaderNothingExists, self).setUp()
-        mox_fixture = self.useFixture(moxstubout.MoxStubout())
-        self.stubs = mox_fixture.stubs
-        self.stubs.Set(os.path, 'exists', lambda _: False)
+        mock_patcher = mock.patch.object(os.path, 'exists',
+                                         lambda _: False)
+        mock_patcher.start()
+        self.addCleanup(mock_patcher.stop)
 
     def test_relpath_config_not_found(self):
         self.config(api_paste_config='api-paste.ini')
@@ -353,6 +353,7 @@
 
     @testtools.skipIf(not netutils.is_ipv6_enabled(), "no ipv6 support")
     @testtools.skipIf(six.PY3, "bug/1482633: test hangs on Python 3")
+    @testtools.skip("using raw IPv6 addresses with SSL certs is broken")
     def test_app_using_ipv6_and_ssl(self):
         greetings = 'Hello, World!!!'
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.service-1.29.0/oslo_service/threadgroup.py 
new/oslo.service-1.31.3/oslo_service/threadgroup.py
--- old/oslo.service-1.29.0/oslo_service/threadgroup.py 2018-01-08 
15:13:39.000000000 +0100
+++ new/oslo.service-1.31.3/oslo_service/threadgroup.py 2018-07-24 
00:38:25.000000000 +0200
@@ -125,9 +125,11 @@
             lambda x: x.stop(),
             lambda x: LOG.exception('Error stopping thread.'))
 
-    def stop_timers(self):
+    def stop_timers(self, wait=False):
         for timer in self.timers:
             timer.stop()
+        if wait:
+            self._wait_timers()
         self.timers = []
 
     def stop(self, graceful=False):
@@ -137,17 +139,17 @@
           Never kill threads.
         * In case of graceful=False, kill threads immediately.
         """
-        self.stop_timers()
+        self.stop_timers(wait=graceful)
         if graceful:
             # In case of graceful=True, wait for all threads to be
             # finished, never kill threads
-            self.wait()
+            self._wait_threads()
         else:
             # In case of graceful=False(Default), kill threads
             # immediately
             self._stop_threads()
 
-    def wait(self):
+    def _wait_timers(self):
         for x in self.timers:
             try:
                 x.wait()
@@ -156,10 +158,16 @@
                 pass
             except Exception:
                 LOG.exception('Error waiting on timer.')
+
+    def _wait_threads(self):
         self._perform_action_on_threads(
             lambda x: x.wait(),
             lambda x: LOG.exception('Error waiting on thread.'))
 
+    def wait(self):
+        self._wait_timers()
+        self._wait_threads()
+
     def _any_threads_alive(self):
         current = threading.current_thread()
         for x in self.threads[:]:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.service-1.29.0/releasenotes/notes/reno.cache 
new/oslo.service-1.31.3/releasenotes/notes/reno.cache
--- old/oslo.service-1.29.0/releasenotes/notes/reno.cache       1970-01-01 
01:00:00.000000000 +0100
+++ new/oslo.service-1.31.3/releasenotes/notes/reno.cache       2018-07-24 
00:42:45.000000000 +0200
@@ -0,0 +1,3 @@
+---
+file-contents: {}
+notes: []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.service-1.29.0/releasenotes/source/index.rst 
new/oslo.service-1.31.3/releasenotes/source/index.rst
--- old/oslo.service-1.29.0/releasenotes/source/index.rst       2018-01-08 
15:13:39.000000000 +0100
+++ new/oslo.service-1.31.3/releasenotes/source/index.rst       2018-07-24 
00:38:25.000000000 +0200
@@ -6,5 +6,6 @@
    :maxdepth: 1
 
    unreleased
+   queens
    pike
    ocata
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.service-1.29.0/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po
 
new/oslo.service-1.31.3/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po
--- 
old/oslo.service-1.29.0/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po
        2018-01-08 15:13:39.000000000 +0100
+++ 
new/oslo.service-1.31.3/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po
        2018-07-24 00:38:25.000000000 +0200
@@ -1,17 +1,18 @@
 # Andi Chandler <[email protected]>, 2017. #zanata
+# Andi Chandler <[email protected]>, 2018. #zanata
 msgid ""
 msgstr ""
-"Project-Id-Version: oslo.service Release Notes 1.25.1\n"
+"Project-Id-Version: oslo.service Release Notes\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-09-18 13:02+0000\n"
+"POT-Creation-Date: 2018-03-01 11:24+0000\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"PO-Revision-Date: 2017-10-07 09:31+0000\n"
+"PO-Revision-Date: 2018-01-27 01:26+0000\n"
 "Last-Translator: Andi Chandler <[email protected]>\n"
 "Language-Team: English (United Kingdom)\n"
-"Language: en-GB\n"
-"X-Generator: Zanata 3.9.6\n"
+"Language: en_GB\n"
+"X-Generator: Zanata 4.3.3\n"
 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
 
 msgid "1.17.0"
@@ -39,6 +40,9 @@
 msgid "Pike Series Release Notes"
 msgstr "Pike Series Release Notes"
 
+msgid "Queens Series Release Notes"
+msgstr "Queens Series Release Notes"
+
 msgid "Switch to reno for managing release notes."
 msgstr "Switch to Reno for managing release notes."
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.service-1.29.0/releasenotes/source/locale/fr/LC_MESSAGES/releasenotes.po
 
new/oslo.service-1.31.3/releasenotes/source/locale/fr/LC_MESSAGES/releasenotes.po
--- 
old/oslo.service-1.29.0/releasenotes/source/locale/fr/LC_MESSAGES/releasenotes.po
   2018-01-08 15:13:39.000000000 +0100
+++ 
new/oslo.service-1.31.3/releasenotes/source/locale/fr/LC_MESSAGES/releasenotes.po
   2018-07-24 00:38:25.000000000 +0200
@@ -1,9 +1,9 @@
 # Gérald LONLAS <[email protected]>, 2016. #zanata
 msgid ""
 msgstr ""
-"Project-Id-Version: oslo.service Release Notes 1.25.1\n"
+"Project-Id-Version: oslo.service Release Notes\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-08-18 18:08+0000\n"
+"POT-Creation-Date: 2018-03-01 11:24+0000\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -11,7 +11,7 @@
 "Last-Translator: Gérald LONLAS <[email protected]>\n"
 "Language-Team: French\n"
 "Language: fr\n"
-"X-Generator: Zanata 3.9.6\n"
+"X-Generator: Zanata 4.3.3\n"
 "Plural-Forms: nplurals=2; plural=(n > 1)\n"
 
 msgid "Other Notes"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.service-1.29.0/releasenotes/source/queens.rst 
new/oslo.service-1.31.3/releasenotes/source/queens.rst
--- old/oslo.service-1.29.0/releasenotes/source/queens.rst      1970-01-01 
01:00:00.000000000 +0100
+++ new/oslo.service-1.31.3/releasenotes/source/queens.rst      2018-07-24 
00:38:25.000000000 +0200
@@ -0,0 +1,6 @@
+===================================
+ Queens Series Release Notes
+===================================
+
+.. release-notes::
+   :branch: stable/queens
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.service-1.29.0/requirements.txt 
new/oslo.service-1.31.3/requirements.txt
--- old/oslo.service-1.29.0/requirements.txt    2018-01-08 15:13:39.000000000 
+0100
+++ new/oslo.service-1.31.3/requirements.txt    2018-07-24 00:38:25.000000000 
+0200
@@ -3,13 +3,13 @@
 # process, which may cause wedges in the gate later.
 
 WebOb>=1.7.1 # MIT
-eventlet!=0.18.3,!=0.20.1,<0.21.0,>=0.18.2 # MIT
+eventlet!=0.18.3,!=0.20.1,>=0.18.2 # MIT
 greenlet>=0.4.10 # MIT
 monotonic>=0.6 # Apache-2.0
 oslo.utils>=3.33.0 # Apache-2.0
-oslo.concurrency>=3.20.0 # Apache-2.0
+oslo.concurrency>=3.25.0 # Apache-2.0
 oslo.config>=5.1.0 # Apache-2.0
-oslo.log>=3.30.0 # Apache-2.0
+oslo.log>=3.36.0 # Apache-2.0
 six>=1.10.0 # MIT
 oslo.i18n>=3.15.3 # Apache-2.0
 PasteDeploy>=1.5.0 # MIT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.service-1.29.0/test-requirements.txt 
new/oslo.service-1.31.3/test-requirements.txt
--- old/oslo.service-1.29.0/test-requirements.txt       2018-01-08 
15:13:39.000000000 +0100
+++ new/oslo.service-1.31.3/test-requirements.txt       2018-07-24 
00:38:25.000000000 +0200
@@ -5,11 +5,13 @@
 fixtures>=3.0.0 # Apache-2.0/BSD
 hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0
 mock>=2.0.0 # BSD
-oslotest>=1.10.0 # Apache-2.0
+oslotest>=3.2.0 # Apache-2.0
+requests>=2.14.2 # Apache-2.0
+stestr>=2.0.0 # Apache-2.0
 
 # These are needed for docs generation/testing
-openstackdocstheme>=1.17.0 # Apache-2.0
-sphinx>=1.6.2 # BSD
+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
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.service-1.29.0/tox.ini 
new/oslo.service-1.31.3/tox.ini
--- old/oslo.service-1.29.0/tox.ini     2018-01-08 15:13:39.000000000 +0100
+++ new/oslo.service-1.31.3/tox.ini     2018-07-24 00:38:25.000000000 +0200
@@ -1,6 +1,6 @@
 [tox]
 minversion = 2.0
-envlist = py35,py27,pypy,pep8,bandit
+envlist = py35,py27,pep8,bandit
 
 [testenv]
 setenv =
@@ -15,26 +15,25 @@
 whitelist_externals = find
 commands =
     find . -type f -name "*.py[co]" -delete
-    python setup.py testr --slowest --testr-args='{posargs}'
+    stestr run --slowest {posargs}
 
 [testenv:pep8]
+basepython = python3
 commands =
     flake8
     bandit -r oslo_service -n5 -x tests
-
-[testenv:py27]
-commands =
-    find . -type f -name "*.py[co]" -delete
-    python setup.py testr --slowest --testr-args='{posargs}'
     doc8 --ignore-path "doc/source/history.rst" doc/source
 
 [testenv:venv]
+basepython = python3
 commands = {posargs}
 
 [testenv:docs]
+basepython = python3
 commands = python setup.py build_sphinx
 
 [testenv:cover]
+basepython = python3
 commands = python setup.py test --coverage 
--coverage-package-name=oslo_service --testr-args='{posargs}'
 
 [flake8]
@@ -47,18 +46,12 @@
 [hacking]
 import_exceptions = oslo_service._i18n
 
-[testenv:pip-missing-reqs]
-# do not install test-requirements as that will pollute the virtualenv for
-# determining missing packages
-# this also means that pip-missing-reqs must be installed separately, outside
-# of the requirements.txt files
-deps = pip_missing_reqs
-commands = pip-missing-reqs -d --ignore-module=oslo_service* 
--ignore-module=pkg_resources --ignore-file=oslo_service/tests/* oslo_service
-
 [testenv:debug]
+basepython = python3
 commands = oslo_debug_helper -t oslo_service/tests {posargs}
 
 [testenv:bandit]
+basepython = python3
 deps =
   
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
   -r{toxinidir}/test-requirements.txt
@@ -66,4 +59,12 @@
 commands = bandit -r oslo_service -n5 -x tests {posargs}
 
 [testenv:releasenotes]
+basepython = python3
 commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html 
releasenotes/source releasenotes/build/html
+
+[testenv:lower-constraints]
+basepython = python3
+deps =
+  -c{toxinidir}/lower-constraints.txt
+  -r{toxinidir}/test-requirements.txt
+  -r{toxinidir}/requirements.txt


Reply via email to