Hello community,

here is the log from the commit of package python-oslo.service for 
openSUSE:Factory checked in at 2017-02-21 13:42:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-oslo.service (Old)
 and      /work/SRC/openSUSE:Factory/.python-oslo.service.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-oslo.service"

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-oslo.service/python-oslo.service.changes  
2016-10-13 11:29:05.000000000 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-oslo.service.new/python-oslo.service.changes 
    2017-02-21 13:42:27.711053374 +0100
@@ -1,0 +2,17 @@
+Mon Feb 13 09:48:15 UTC 2017 - [email protected]
+
+- update to version 1.19.0:
+  - Update .coveragerc after the removal of respective directory
+  - Replace 'MagicMock' with 'Mock'
+  - Delete python bytecode file
+  - Imported Translations from Zanata
+  - Add Constraints support
+  - Add reno for release notes management
+  - Stay alive on double SIGHUP
+  - Show team and repo badges on README
+  - Changed the home-page link
+  - Enable release notes translation
+  - Add FixedIntervalWithTimeoutLoopingCall
+  - Updated from global requirements
+
+-------------------------------------------------------------------

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

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

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

Other differences:
------------------
++++++ python-oslo.service.spec ++++++
--- /var/tmp/diff_new_pack.ztbiGM/_old  2017-02-21 13:42:28.102998081 +0100
+++ /var/tmp/diff_new_pack.ztbiGM/_new  2017-02-21 13:42:28.102998081 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package python-oslo.service
 #
-# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
 
 %global sname oslo.service
 Name:           python-oslo.service
-Version:        1.16.0
+Version:        1.19.0
 Release:        0
 Summary:        OpenStack oslo.service library
 License:        Apache-2.0
@@ -30,7 +30,7 @@
 BuildRequires:  python-Paste
 BuildRequires:  python-PasteDeploy >= 1.5.0
 BuildRequires:  python-Routes >= 1.12.3
-BuildRequires:  python-WebOb >= 1.2.3
+BuildRequires:  python-WebOb >= 1.6.0
 BuildRequires:  python-devel
 BuildRequires:  python-eventlet >= 0.18.2
 BuildRequires:  python-fixtures >= 3.0.0
@@ -40,23 +40,23 @@
 BuildRequires:  python-oslo.concurrency >= 3.8.0
 BuildRequires:  python-oslo.config >= 3.14.0
 BuildRequires:  python-oslo.i18n >= 2.1.0
-BuildRequires:  python-oslo.log >= 1.14.0
-BuildRequires:  python-oslo.utils >= 3.16.0
+BuildRequires:  python-oslo.log >= 3.11.0
+BuildRequires:  python-oslo.utils >= 3.18.0
 BuildRequires:  python-oslotest >= 1.10.0
-BuildRequires:  python-pbr >= 1.6
+BuildRequires:  python-pbr >= 1.8
 BuildRequires:  python-six >= 1.9.0
 Requires:       python-Paste
 Requires:       python-PasteDeploy >= 1.5.0
 Requires:       python-Routes >= 1.12.3
-Requires:       python-WebOb >= 1.2.3
+Requires:       python-WebOb >= 1.6.0
 Requires:       python-eventlet >= 0.18.2
 Requires:       python-greenlet >= 0.3.2
 Requires:       python-monotonic >= 0.6
 Requires:       python-oslo.concurrency >= 3.8.0
 Requires:       python-oslo.config >= 3.14.0
 Requires:       python-oslo.i18n >= 2.1.0
-Requires:       python-oslo.log >= 1.14.0
-Requires:       python-oslo.utils >= 3.16.0
+Requires:       python-oslo.log >= 3.11.0
+Requires:       python-oslo.utils >= 3.18.0
 Requires:       python-six >= 1.9.0
 BuildArch:      noarch
 
@@ -70,7 +70,8 @@
 Summary:        Documentation for OpenStack service library
 Group:          Development/Languages/Python
 BuildRequires:  python-Sphinx
-BuildRequires:  python-oslosphinx >= 2.5.0
+BuildRequires:  python-oslosphinx >= 4.7.0
+BuildRequires:  python-reno >= 1.8.0
 
 %description doc
 oslo.service provides a framework for defining new long-running services using
@@ -80,7 +81,8 @@
 This package contains the documentation.
 
 %prep
-%setup -q -n %{sname}-%{version}
+%autosetup -n %{sname}-%{version}
+%py_req_cleanup
 
 %build
 %{py2_build}

++++++ _service ++++++
--- /var/tmp/diff_new_pack.ztbiGM/_old  2017-02-21 13:42:28.134993567 +0100
+++ /var/tmp/diff_new_pack.ztbiGM/_new  2017-02-21 13:42:28.134993567 +0100
@@ -1,11 +1,12 @@
 <services>
   <service mode="disabled" name="renderspec">
-    <param 
name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/newton/openstack/oslo.service/oslo.service.spec.j2</param>
+    <param 
name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/ocata/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/newton/global-requirements.txt</param>
+    <param 
name="requirements">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/ocata/global-requirements.txt</param>
+    <param name="changelog-email">[email protected]</param>
+    <param name="changelog-provider">gh,openstack,oslo.service</param>
   </service>
   <service mode="disabled" name="download_files">
-    <param name="changesgenerate">enable</param>
   </service>
   <service name="format_spec_file" mode="disabled"/>
 </services>

++++++ oslo.service-1.16.0.tar.gz -> oslo.service-1.19.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.service-1.16.0/.coveragerc 
new/oslo.service-1.19.0/.coveragerc
--- old/oslo.service-1.16.0/.coveragerc 2016-08-25 14:00:10.000000000 +0200
+++ new/oslo.service-1.19.0/.coveragerc 2017-01-18 15:10:22.000000000 +0100
@@ -1,7 +1,7 @@
 [run]
 branch = True
 source = oslo_service
-omit = oslo_service/tests/*,oslo_service/openstack/*
+omit = oslo_service/tests/*
 
 [report]
 ignore_errors = True
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.service-1.16.0/AUTHORS 
new/oslo.service-1.19.0/AUTHORS
--- old/oslo.service-1.16.0/AUTHORS     2016-08-25 14:03:44.000000000 +0200
+++ new/oslo.service-1.19.0/AUTHORS     2017-01-18 15:12:36.000000000 +0100
@@ -38,11 +38,13 @@
 Eric Guo <[email protected]>
 Eric Windisch <[email protected]>
 Fengqian.Gao <[email protected]>
+Flavio Percoco <[email protected]>
 Gary Kotton <[email protected]>
 Hengqing Hu <[email protected]>
 Ian Wienand <[email protected]>
 Ihar Hrachyshka <[email protected]>
 Ilya Shakhat <[email protected]>
+Iswarya_Vakati <[email protected]>
 James Carey <[email protected]>
 Jason Dunsmore <[email protected]>
 Jason Kölker <[email protected]>
@@ -59,6 +61,7 @@
 Julien Danjou <[email protected]>
 Kevin L. Mitchell <[email protected]>
 Kiall Mac Innes <[email protected]>
+Kirill Bespalov <[email protected]>
 Kurt Taylor <[email protected]>
 Marian Horban <[email protected]>
 Mark McClain <[email protected]>
@@ -87,17 +90,21 @@
 Thomas Herve <[email protected]>
 Tianhua Huang <[email protected]>
 Tom Cammann <[email protected]>
+Tony Breeds <[email protected]>
 Victor Sergeyev <[email protected]>
 Victor Stinner <[email protected]>
+Wenzhi Yu <[email protected]>
 ZhiQiang Fan <[email protected]>
 Zhongyue Luo <[email protected]>
 apporc <[email protected]>
 fujioka yuuichi <[email protected]>
+gecong1973 <[email protected]>
 gongysh <[email protected]>
 lei zhang <[email protected]>
 lin-hua-cheng <[email protected]>
 liu-sheng <[email protected]>
 liyingjun <[email protected]>
+melissaml <[email protected]>
 ravikumar-venkatesan <[email protected]>
 sonu.kumar <[email protected]>
 stanzgy <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.service-1.16.0/ChangeLog 
new/oslo.service-1.19.0/ChangeLog
--- old/oslo.service-1.16.0/ChangeLog   2016-08-25 14:03:44.000000000 +0200
+++ new/oslo.service-1.19.0/ChangeLog   2017-01-18 15:12:36.000000000 +0100
@@ -1,10 +1,39 @@
 CHANGES
 =======
 
+1.19.0
+------
+
+* Add FixedIntervalWithTimeoutLoopingCall
+* Add Constraints support
+* Show team and repo badges on README
+
+1.18.0
+------
+
+* Updated from global requirements
+* Updated from global requirements
+* Updated from global requirements
+* Imported Translations from Zanata
+* Update .coveragerc after the removal of respective directory
+* Delete python bytecode file
+
+1.17.0
+------
+
+* Changed the home-page link
+* Updated from global requirements
+* Replace 'MagicMock' with 'Mock'
+* Enable release notes translation
+* Updated from global requirements
+* Updated from global requirements
+* Updated from global requirements
+
 1.16.0
 ------
 
 * Updated from global requirements
+* Stay alive on double SIGHUP
 
 1.15.0
 ------
@@ -23,6 +52,7 @@
 * Updated from global requirements
 * Updated from global requirements
 * Updated from global requirements
+* Add reno for release notes management
 * Updated from global requirements
 
 1.12.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.service-1.16.0/PKG-INFO 
new/oslo.service-1.19.0/PKG-INFO
--- old/oslo.service-1.16.0/PKG-INFO    2016-08-25 14:03:45.000000000 +0200
+++ new/oslo.service-1.19.0/PKG-INFO    2017-01-18 15:12:37.000000000 +0100
@@ -1,12 +1,21 @@
 Metadata-Version: 1.1
 Name: oslo.service
-Version: 1.16.0
+Version: 1.19.0
 Summary: oslo.service library
-Home-page: http://wiki.openstack.org/wiki/Oslo#oslo.service
+Home-page: http://docs.openstack.org/developer/oslo.service
 Author: OpenStack
 Author-email: [email protected]
 License: UNKNOWN
-Description: ========================================================
+Description: ========================
+        Team and repository tags
+        ========================
+        
+        .. image:: http://governance.openstack.org/badges/oslo.service.svg
+            :target: http://governance.openstack.org/reference/tags/index.html
+        
+        .. Change things from this point on
+        
+        ========================================================
          oslo.service -- Library for running OpenStack services
         ========================================================
         
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.service-1.16.0/README.rst 
new/oslo.service-1.19.0/README.rst
--- old/oslo.service-1.16.0/README.rst  2016-08-25 14:00:10.000000000 +0200
+++ new/oslo.service-1.19.0/README.rst  2017-01-18 15:10:22.000000000 +0100
@@ -1,3 +1,12 @@
+========================
+Team and repository tags
+========================
+
+.. image:: http://governance.openstack.org/badges/oslo.service.svg
+    :target: http://governance.openstack.org/reference/tags/index.html
+
+.. Change things from this point on
+
 ========================================================
  oslo.service -- Library for running OpenStack services
 ========================================================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.service-1.16.0/oslo.service.egg-info/PKG-INFO 
new/oslo.service-1.19.0/oslo.service.egg-info/PKG-INFO
--- old/oslo.service-1.16.0/oslo.service.egg-info/PKG-INFO      2016-08-25 
14:03:44.000000000 +0200
+++ new/oslo.service-1.19.0/oslo.service.egg-info/PKG-INFO      2017-01-18 
15:12:36.000000000 +0100
@@ -1,12 +1,21 @@
 Metadata-Version: 1.1
 Name: oslo.service
-Version: 1.16.0
+Version: 1.19.0
 Summary: oslo.service library
-Home-page: http://wiki.openstack.org/wiki/Oslo#oslo.service
+Home-page: http://docs.openstack.org/developer/oslo.service
 Author: OpenStack
 Author-email: [email protected]
 License: UNKNOWN
-Description: ========================================================
+Description: ========================
+        Team and repository tags
+        ========================
+        
+        .. image:: http://governance.openstack.org/badges/oslo.service.svg
+            :target: http://governance.openstack.org/reference/tags/index.html
+        
+        .. Change things from this point on
+        
+        ========================================================
          oslo.service -- Library for running OpenStack services
         ========================================================
         
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.service-1.16.0/oslo.service.egg-info/SOURCES.txt 
new/oslo.service-1.19.0/oslo.service.egg-info/SOURCES.txt
--- old/oslo.service-1.16.0/oslo.service.egg-info/SOURCES.txt   2016-08-25 
14:03:45.000000000 +0200
+++ new/oslo.service-1.19.0/oslo.service.egg-info/SOURCES.txt   2017-01-18 
15:12:37.000000000 +0100
@@ -46,6 +46,7 @@
 oslo_service/sslutils.py
 oslo_service/systemd.py
 oslo_service/threadgroup.py
+oslo_service/version.py
 oslo_service/wsgi.py
 oslo_service/locale/en_GB/LC_MESSAGES/oslo_service-log-error.po
 oslo_service/locale/en_GB/LC_MESSAGES/oslo_service-log-info.po
@@ -65,4 +66,13 @@
 oslo_service/tests/ssl_cert/ca.crt
 oslo_service/tests/ssl_cert/ca.key
 oslo_service/tests/ssl_cert/certificate.crt
-oslo_service/tests/ssl_cert/privatekey.key
\ No newline at end of file
+oslo_service/tests/ssl_cert/privatekey.key
+releasenotes/notes/add-timeout-looping-call-5cc396b75597c3c2.yaml
+releasenotes/notes/add_reno-3b4ae0789e9c45b4.yaml
+releasenotes/source/conf.py
+releasenotes/source/index.rst
+releasenotes/source/unreleased.rst
+releasenotes/source/_static/.placeholder
+releasenotes/source/_templates/.placeholder
+releasenotes/source/locale/fr/LC_MESSAGES/releasenotes.po
+tools/tox_install.sh
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.service-1.16.0/oslo.service.egg-info/pbr.json 
new/oslo.service-1.19.0/oslo.service.egg-info/pbr.json
--- old/oslo.service-1.16.0/oslo.service.egg-info/pbr.json      2016-08-25 
14:03:44.000000000 +0200
+++ new/oslo.service-1.19.0/oslo.service.egg-info/pbr.json      2017-01-18 
15:12:36.000000000 +0100
@@ -1 +1 @@
-{"git_version": "9df6088", "is_release": true}
\ No newline at end of file
+{"is_release": true, "git_version": "d05e086"}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.service-1.16.0/oslo.service.egg-info/requires.txt 
new/oslo.service-1.19.0/oslo.service.egg-info/requires.txt
--- old/oslo.service-1.16.0/oslo.service.egg-info/requires.txt  2016-08-25 
14:03:44.000000000 +0200
+++ new/oslo.service-1.19.0/oslo.service.egg-info/requires.txt  2017-01-18 
15:12:36.000000000 +0100
@@ -1,11 +1,11 @@
-WebOb>=1.2.3
+WebOb>=1.6.0
 eventlet!=0.18.3,>=0.18.2
 greenlet>=0.3.2
 monotonic>=0.6
-oslo.utils>=3.16.0
+oslo.utils>=3.18.0
 oslo.concurrency>=3.8.0
-oslo.config>=3.14.0
-oslo.log>=1.14.0
+oslo.config!=3.18.0,>=3.14.0
+oslo.log>=3.11.0
 six>=1.9.0
 oslo.i18n>=2.1.0
 PasteDeploy>=1.5.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.service-1.16.0/oslo_service/loopingcall.py 
new/oslo.service-1.19.0/oslo_service/loopingcall.py
--- old/oslo.service-1.16.0/oslo_service/loopingcall.py 2016-08-25 
14:00:10.000000000 +0200
+++ new/oslo.service-1.19.0/oslo_service/loopingcall.py 2017-01-18 
15:10:22.000000000 +0100
@@ -17,6 +17,7 @@
 
 import random
 import sys
+import time
 
 from eventlet import event
 from eventlet import greenthread
@@ -179,6 +180,37 @@
         return self._start(_idle_for, initial_delay=initial_delay,
                            stop_on_exception=stop_on_exception)
 
+
+class FixedIntervalWithTimeoutLoopingCall(LoopingCallBase):
+    """A fixed interval looping call with timeout checking mechanism."""
+
+    _RUN_ONLY_ONE_MESSAGE = _("A fixed interval looping call with timeout"
+                              " checking and can only run one function at"
+                              " at a time")
+
+    _KIND = _('Fixed interval looping call with timeout checking.')
+
+    def start(self, interval, initial_delay=None,
+              stop_on_exception=True, timeout=0):
+        start_time = time.time()
+
+        def _idle_for(result, elapsed):
+            delay = round(elapsed - interval, 2)
+            if delay > 0:
+                func_name = reflection.get_callable_name(self.f)
+                LOG.warning(_LW('Function %(func_name)r run outlasted '
+                                'interval by %(delay).2f sec'),
+                            {'func_name': func_name, 'delay': delay})
+            elapsed_time = time.time() - start_time
+            if timeout > 0 and elapsed_time > timeout:
+                raise LoopingCallTimeOut(
+                    _('Looping call timed out after %.02f seconds')
+                    % elapsed_time)
+            return -delay if delay < 0 else 0
+
+        return self._start(_idle_for, initial_delay=initial_delay,
+                           stop_on_exception=stop_on_exception)
+
 
 class DynamicLoopingCall(LoopingCallBase):
     """A looping call which sleeps until the next known event.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.service-1.16.0/oslo_service/service.py 
new/oslo.service-1.19.0/oslo_service/service.py
--- old/oslo.service-1.16.0/oslo_service/service.py     2016-08-25 
14:00:10.000000000 +0200
+++ new/oslo.service-1.19.0/oslo_service/service.py     2017-01-18 
15:10:22.000000000 +0100
@@ -289,6 +289,7 @@
 
     def handle_signal(self):
         """Set self._handle_signal as a signal handler."""
+        self.signal_handler.clear()
         self.signal_handler.add_handler('SIGTERM', self._graceful_shutdown)
         self.signal_handler.add_handler('SIGINT', self._fast_exit)
         self.signal_handler.add_handler('SIGHUP', self._reload_service)
@@ -372,13 +373,13 @@
 
     def handle_signal(self):
         """Add instance's signal handlers to class handlers."""
-        self.signal_handler.add_handlers(('SIGTERM', 'SIGHUP'),
-                                         self._handle_signal)
+        self.signal_handler.add_handler('SIGTERM', self._handle_term)
+        self.signal_handler.add_handler('SIGHUP', self._handle_hup)
         self.signal_handler.add_handler('SIGINT', self._fast_exit)
         self.signal_handler.add_handler('SIGALRM', self._on_alarm_exit)
 
-    def _handle_signal(self, signo, frame):
-        """Set signal handlers.
+    def _handle_term(self, signo, frame):
+        """Handle a TERM event.
 
         :param signo: signal number
         :param frame: current stack frame
@@ -389,6 +390,19 @@
         # Allow the process to be killed again and die from natural causes
         self.signal_handler.clear()
 
+    def _handle_hup(self, signo, frame):
+        """Handle a HUP event.
+
+        :param signo: signal number
+        :param frame: current stack frame
+        """
+        self.sigcaught = signo
+        self.running = False
+
+        # Do NOT clear the signal_handler, allowing multiple SIGHUPs to be
+        # received swiftly. If a non-HUP is received before #wait loops, the
+        # second event will "overwrite" the HUP. This is fine.
+
     def _fast_exit(self, signo, frame):
         LOG.info(_LI('Caught SIGINT signal, instantaneous exiting'))
         os._exit(1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.service-1.16.0/oslo_service/tests/test_eventlet_backdoor.py 
new/oslo.service-1.19.0/oslo_service/tests/test_eventlet_backdoor.py
--- old/oslo.service-1.16.0/oslo_service/tests/test_eventlet_backdoor.py        
2016-08-25 14:00:10.000000000 +0200
+++ new/oslo.service-1.19.0/oslo_service/tests/test_eventlet_backdoor.py        
2017-01-18 15:10:22.000000000 +0100
@@ -34,7 +34,7 @@
     @mock.patch.object(eventlet, 'listen')
     def test_backdoor_path(self, listen_mock, spawn_mock):
         self.config(backdoor_socket="/tmp/my_special_socket")
-        listen_mock.side_effect = mock.MagicMock()
+        listen_mock.side_effect = mock.Mock()
         path = eventlet_backdoor.initialize_if_enabled(self.conf)
         self.assertEqual("/tmp/my_special_socket", path)
 
@@ -44,7 +44,7 @@
     def test_backdoor_path_already_exists(self, listen_mock,
                                           spawn_mock, unlink_mock):
         self.config(backdoor_socket="/tmp/my_special_socket")
-        sock = mock.MagicMock()
+        sock = mock.Mock()
         listen_mock.side_effect = [socket.error(errno.EADDRINUSE, ''), sock]
         path = eventlet_backdoor.initialize_if_enabled(self.conf)
         self.assertEqual("/tmp/my_special_socket", path)
@@ -56,7 +56,7 @@
     def test_backdoor_path_already_exists_and_gone(self, listen_mock,
                                                    spawn_mock, unlink_mock):
         self.config(backdoor_socket="/tmp/my_special_socket")
-        sock = mock.MagicMock()
+        sock = mock.Mock()
         listen_mock.side_effect = [socket.error(errno.EADDRINUSE, ''), sock]
         unlink_mock.side_effect = OSError(errno.ENOENT, '')
         path = eventlet_backdoor.initialize_if_enabled(self.conf)
@@ -91,7 +91,7 @@
     @mock.patch.object(eventlet, 'listen')
     def test_backdoor_port(self, listen_mock, spawn_mock):
         self.config(backdoor_port=1234)
-        sock = mock.MagicMock()
+        sock = mock.Mock()
         sock.getsockname.return_value = ('127.0.0.1', 1234)
         listen_mock.return_value = sock
         port = eventlet_backdoor.initialize_if_enabled(self.conf)
@@ -109,7 +109,7 @@
     @mock.patch.object(eventlet, 'listen')
     def test_backdoor_port_range(self, listen_mock, spawn_mock):
         self.config(backdoor_port='8800:8899')
-        sock = mock.MagicMock()
+        sock = mock.Mock()
         sock.getsockname.return_value = ('127.0.0.1', 8800)
         listen_mock.return_value = sock
         port = eventlet_backdoor.initialize_if_enabled(self.conf)
@@ -119,7 +119,7 @@
     @mock.patch.object(eventlet, 'listen')
     def test_backdoor_port_range_one_inuse(self, listen_mock, spawn_mock):
         self.config(backdoor_port='8800:8900')
-        sock = mock.MagicMock()
+        sock = mock.Mock()
         sock.getsockname.return_value = ('127.0.0.1', 8801)
         listen_mock.side_effect = [socket.error(errno.EADDRINUSE, ''), sock]
         port = eventlet_backdoor.initialize_if_enabled(self.conf)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.service-1.16.0/oslo_service/tests/test_loopingcall.py 
new/oslo.service-1.19.0/oslo_service/tests/test_loopingcall.py
--- old/oslo.service-1.16.0/oslo_service/tests/test_loopingcall.py      
2016-08-25 14:00:10.000000000 +0200
+++ new/oslo.service-1.19.0/oslo_service/tests/test_loopingcall.py      
2017-01-18 15:10:22.000000000 +0100
@@ -180,6 +180,15 @@
                        (i, expected, actual))
             self.assertAlmostEqual(expected, actual, message=message)
 
+    def test_looping_call_timed_out(self):
+
+        def _fake_task():
+            pass
+
+        timer = loopingcall.FixedIntervalWithTimeoutLoopingCall(_fake_task)
+        self.assertRaises(loopingcall.LoopingCallTimeOut,
+                          timer.start(interval=0.1, timeout=0.3).wait)
+
 
 class DynamicLoopingCallTestCase(test_base.BaseTestCase):
     def setUp(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.service-1.16.0/oslo_service/tests/test_service.py 
new/oslo.service-1.19.0/oslo_service/tests/test_service.py
--- old/oslo.service-1.16.0/oslo_service/tests/test_service.py  2016-08-25 
14:00:10.000000000 +0200
+++ new/oslo.service-1.19.0/oslo_service/tests/test_service.py  2017-01-18 
15:10:22.000000000 +0100
@@ -535,6 +535,38 @@
         serv = FooService()
         self.assertRaises(TypeError, launcher.launch_service, serv, 0)
 
+    @mock.patch("oslo_service.service.ProcessLauncher._start_child")
+    @mock.patch("oslo_service.service.ProcessLauncher.handle_signal")
+    @mock.patch("eventlet.greenio.GreenPipe")
+    @mock.patch("os.pipe")
+    def test_double_sighup(self, pipe_mock, green_pipe_mock,
+                           handle_signal_mock, start_child_mock):
+        # Test that issuing two SIGHUPs in a row does not exit; then send a
+        # TERM that does cause an exit.
+        pipe_mock.return_value = [None, None]
+        launcher = service.ProcessLauncher(self.conf)
+        serv = _Service()
+        launcher.launch_service(serv, workers=0)
+
+        def stager():
+            # -1: start state
+            # 0: post-init
+            # 1: first HUP sent
+            # 2: second HUP sent
+            # 3: TERM sent
+            stager.stage += 1
+            if stager.stage < 3:
+                launcher._handle_hup(1, mock.sentinel.frame)
+            elif stager.stage == 3:
+                launcher._handle_term(15, mock.sentinel.frame)
+            else:
+                self.fail("TERM did not kill launcher")
+        stager.stage = -1
+        handle_signal_mock.side_effect = stager
+
+        launcher.wait()
+        self.assertEqual(3, stager.stage)
+
 
 class GracefulShutdownTestService(service.Service):
     def __init__(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.service-1.16.0/oslo_service/version.py 
new/oslo.service-1.19.0/oslo_service/version.py
--- old/oslo.service-1.16.0/oslo_service/version.py     1970-01-01 
01:00:00.000000000 +0100
+++ new/oslo.service-1.19.0/oslo_service/version.py     2017-01-18 
15:10:22.000000000 +0100
@@ -0,0 +1,18 @@
+#    Copyright 2016 OpenStack Foundation
+#
+#    Licensed under the Apache License, Version 2.0 (the "License"); you may
+#    not use this file except in compliance with the License. You may obtain
+#    a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+#    Unless required by applicable law or agreed to in writing, software
+#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+#    License for the specific language governing permissions and limitations
+#    under the License.
+
+
+import pbr.version
+
+version_info = pbr.version.VersionInfo('oslo_service')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.service-1.16.0/releasenotes/notes/add-timeout-looping-call-5cc396b75597c3c2.yaml
 
new/oslo.service-1.19.0/releasenotes/notes/add-timeout-looping-call-5cc396b75597c3c2.yaml
--- 
old/oslo.service-1.16.0/releasenotes/notes/add-timeout-looping-call-5cc396b75597c3c2.yaml
   1970-01-01 01:00:00.000000000 +0100
+++ 
new/oslo.service-1.19.0/releasenotes/notes/add-timeout-looping-call-5cc396b75597c3c2.yaml
   2017-01-18 15:10:22.000000000 +0100
@@ -0,0 +1,5 @@
+---
+features:
+  - |
+    Add a new type of looping call: FixedIntervalWithTimeoutLoopingCall. It is
+    a FixedIntervalLoopingCall with timeout checking.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.service-1.16.0/releasenotes/notes/add_reno-3b4ae0789e9c45b4.yaml 
new/oslo.service-1.19.0/releasenotes/notes/add_reno-3b4ae0789e9c45b4.yaml
--- old/oslo.service-1.16.0/releasenotes/notes/add_reno-3b4ae0789e9c45b4.yaml   
1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.service-1.19.0/releasenotes/notes/add_reno-3b4ae0789e9c45b4.yaml   
2017-01-18 15:10:22.000000000 +0100
@@ -0,0 +1,3 @@
+---
+other:
+  - Switch to reno for managing release notes.
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.service-1.16.0/releasenotes/source/conf.py 
new/oslo.service-1.19.0/releasenotes/source/conf.py
--- old/oslo.service-1.16.0/releasenotes/source/conf.py 1970-01-01 
01:00:00.000000000 +0100
+++ new/oslo.service-1.19.0/releasenotes/source/conf.py 2017-01-18 
15:10:22.000000000 +0100
@@ -0,0 +1,277 @@
+# -*- coding: utf-8 -*-
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This file is execfile()d with the current directory set to its
+# containing dir.
+#
+# Note that not all possible configuration values are present in this
+# autogenerated file.
+#
+# All configuration values have a default; values that are commented out
+# serve to show the default.
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+# sys.path.insert(0, os.path.abspath('.'))
+
+# -- General configuration ------------------------------------------------
+
+# If your documentation needs a minimal Sphinx version, state it here.
+# needs_sphinx = '1.0'
+
+# Add any Sphinx extension module names here, as strings. They can be
+# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
+# ones.
+extensions = [
+    'oslosphinx',
+    'reno.sphinxext',
+]
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['_templates']
+
+# The suffix of source filenames.
+source_suffix = '.rst'
+
+# The encoding of source files.
+# source_encoding = 'utf-8-sig'
+
+# The master toctree document.
+master_doc = 'index'
+
+# General information about the project.
+project = u'oslo.service Release Notes'
+copyright = u'2016, oslo.service Developers'
+
+# The version info for the project you're documenting, acts as replacement for
+# |version| and |release|, also used in various other places throughout the
+# built documents.
+#
+# The short X.Y version.
+from oslo_service.version import version_info as oslo_service_version
+# The full version, including alpha/beta/rc tags.
+release = oslo_service_version.version_string_with_vcs()
+# The short X.Y version.
+version = oslo_service_version.canonical_version_string()
+
+# The language for content autogenerated by Sphinx. Refer to documentation
+# for a list of supported languages.
+# language = None
+
+# There are two options for replacing |today|: either, you set today to some
+# non-false value, then it is used:
+# today = ''
+# Else, today_fmt is used as the format for a strftime call.
+# today_fmt = '%B %d, %Y'
+
+# List of patterns, relative to source directory, that match files and
+# directories to ignore when looking for source files.
+exclude_patterns = []
+
+# The reST default role (used for this markup: `text`) to use for all
+# documents.
+# default_role = None
+
+# If true, '()' will be appended to :func: etc. cross-reference text.
+# add_function_parentheses = True
+
+# If true, the current module name will be prepended to all description
+# unit titles (such as .. function::).
+# add_module_names = True
+
+# If true, sectionauthor and moduleauthor directives will be shown in the
+# output. They are ignored by default.
+# show_authors = False
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = 'sphinx'
+
+# A list of ignored prefixes for module index sorting.
+# modindex_common_prefix = []
+
+# If true, keep warnings as "system message" paragraphs in the built documents.
+# keep_warnings = False
+
+
+# -- Options for HTML output ----------------------------------------------
+
+# The theme to use for HTML and HTML Help pages.  See the documentation for
+# a list of builtin themes.
+html_theme = 'default'
+
+# Theme options are theme-specific and customize the look and feel of a theme
+# further.  For a list of options available for each theme, see the
+# documentation.
+# html_theme_options = {}
+
+# Add any paths that contain custom themes here, relative to this directory.
+# html_theme_path = []
+
+# The name for this set of Sphinx documents.  If None, it defaults to
+# "<project> v<release> documentation".
+# html_title = None
+
+# A shorter title for the navigation bar.  Default is the same as html_title.
+# html_short_title = None
+
+# The name of an image file (relative to this directory) to place at the top
+# of the sidebar.
+# html_logo = None
+
+# The name of an image file (within the static path) to use as favicon of the
+# docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32
+# pixels large.
+# html_favicon = None
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ['_static']
+
+# Add any extra paths that contain custom files (such as robots.txt or
+# .htaccess) here, relative to this directory. These files are copied
+# directly to the root of the documentation.
+# html_extra_path = []
+
+# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
+# using the given strftime format.
+# html_last_updated_fmt = '%b %d, %Y'
+
+# If true, SmartyPants will be used to convert quotes and dashes to
+# typographically correct entities.
+# html_use_smartypants = True
+
+# Custom sidebar templates, maps document names to template names.
+# html_sidebars = {}
+
+# Additional templates that should be rendered to pages, maps page names to
+# template names.
+# html_additional_pages = {}
+
+# If false, no module index is generated.
+# html_domain_indices = True
+
+# If false, no index is generated.
+# html_use_index = True
+
+# If true, the index is split into individual pages for each letter.
+# html_split_index = False
+
+# If true, links to the reST sources are added to the pages.
+# html_show_sourcelink = True
+
+# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
+# html_show_sphinx = True
+
+# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
+# html_show_copyright = True
+
+# If true, an OpenSearch description file will be output, and all pages will
+# contain a <link> tag referring to it.  The value of this option must be the
+# base URL from which the finished HTML is served.
+# html_use_opensearch = ''
+
+# This is the file name suffix for HTML files (e.g. ".xhtml").
+# html_file_suffix = None
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = 'oslo.serviceReleaseNotesDoc'
+
+
+# -- Options for LaTeX output ---------------------------------------------
+
+latex_elements = {
+    # The paper size ('letterpaper' or 'a4paper').
+    # 'papersize': 'letterpaper',
+
+    # The font size ('10pt', '11pt' or '12pt').
+    # 'pointsize': '10pt',
+
+    # Additional stuff for the LaTeX preamble.
+    # 'preamble': '',
+}
+
+# Grouping the document tree into LaTeX files. List of tuples
+# (source start file, target name, title,
+#  author, documentclass [howto, manual, or own class]).
+latex_documents = [
+    ('index', 'oslo.serviceReleaseNotes.tex',
+     u'oslo.service Release Notes Documentation',
+     u'oslo.service Developers', 'manual'),
+]
+
+# The name of an image file (relative to this directory) to place at the top of
+# the title page.
+# latex_logo = None
+
+# For "manual" documents, if this is true, then toplevel headings are parts,
+# not chapters.
+# latex_use_parts = False
+
+# If true, show page references after internal links.
+# latex_show_pagerefs = False
+
+# If true, show URL addresses after external links.
+# latex_show_urls = False
+
+# Documents to append as an appendix to all manuals.
+# latex_appendices = []
+
+# If false, no module index is generated.
+# latex_domain_indices = True
+
+
+# -- Options for manual page output ---------------------------------------
+
+# One entry per manual page. List of tuples
+# (source start file, name, description, authors, manual section).
+man_pages = [
+    ('index', 'oslo.serviceReleaseNotes',
+     u'oslo.service Release Notes Documentation',
+     [u'oslo.service Developers'], 1)
+]
+
+# If true, show URL addresses after external links.
+# man_show_urls = False
+
+
+# -- Options for Texinfo output -------------------------------------------
+
+# Grouping the document tree into Texinfo files. List of tuples
+# (source start file, target name, title, author,
+#  dir menu entry, description, category)
+texinfo_documents = [
+    ('index', 'oslo.serviceReleaseNotes',
+     u'oslo.service Release Notes Documentation',
+     u'oslo.service Developers', 'oslo.serviceReleaseNotes',
+     'Provides a framework for defining new long-running services using the'
+     ' patterns established by other OpenStack applications',
+     'Miscellaneous'),
+]
+
+# Documents to append as an appendix to all manuals.
+# texinfo_appendices = []
+
+# If false, no module index is generated.
+# texinfo_domain_indices = True
+
+# How to display URL addresses: 'footnote', 'no', or 'inline'.
+# texinfo_show_urls = 'footnote'
+
+# If true, do not generate a @detailmenu in the "Top" node's menu.
+# texinfo_no_detailmenu = False
+
+# -- Options for Internationalization output ------------------------------
+locale_dirs = ['locale/']
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.service-1.16.0/releasenotes/source/index.rst 
new/oslo.service-1.19.0/releasenotes/source/index.rst
--- old/oslo.service-1.16.0/releasenotes/source/index.rst       1970-01-01 
01:00:00.000000000 +0100
+++ new/oslo.service-1.19.0/releasenotes/source/index.rst       2017-01-18 
15:10:22.000000000 +0100
@@ -0,0 +1,8 @@
+============================
+ oslo.service Release Notes
+============================
+
+ .. toctree::
+    :maxdepth: 1
+
+    unreleased
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.service-1.16.0/releasenotes/source/locale/fr/LC_MESSAGES/releasenotes.po
 
new/oslo.service-1.19.0/releasenotes/source/locale/fr/LC_MESSAGES/releasenotes.po
--- 
old/oslo.service-1.16.0/releasenotes/source/locale/fr/LC_MESSAGES/releasenotes.po
   1970-01-01 01:00:00.000000000 +0100
+++ 
new/oslo.service-1.19.0/releasenotes/source/locale/fr/LC_MESSAGES/releasenotes.po
   2017-01-18 15:10:22.000000000 +0100
@@ -0,0 +1,30 @@
+# Gérald LONLAS <[email protected]>, 2016. #zanata
+msgid ""
+msgstr ""
+"Project-Id-Version: oslo.service Release Notes 1.16.1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2016-10-18 11:11+0000\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"PO-Revision-Date: 2016-10-22 06:05+0000\n"
+"Last-Translator: Gérald LONLAS <[email protected]>\n"
+"Language-Team: French\n"
+"Language: fr\n"
+"X-Generator: Zanata 3.7.3\n"
+"Plural-Forms: nplurals=2; plural=(n > 1)\n"
+
+msgid "1.16.0-13"
+msgstr "1.16.0-13"
+
+msgid "Other Notes"
+msgstr "Autres notes"
+
+msgid "Switch to reno for managing release notes."
+msgstr "Commence à utiliser reno pour la gestion des notes de release"
+
+msgid "Unreleased Release Notes"
+msgstr "Note de release pour les changements non déployées"
+
+msgid "oslo.service Release Notes"
+msgstr "Note de release pour oslo.service"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.service-1.16.0/releasenotes/source/unreleased.rst 
new/oslo.service-1.19.0/releasenotes/source/unreleased.rst
--- old/oslo.service-1.16.0/releasenotes/source/unreleased.rst  1970-01-01 
01:00:00.000000000 +0100
+++ new/oslo.service-1.19.0/releasenotes/source/unreleased.rst  2017-01-18 
15:10:22.000000000 +0100
@@ -0,0 +1,5 @@
+==========================
+ Unreleased Release Notes
+==========================
+
+.. release-notes::
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.service-1.16.0/requirements.txt 
new/oslo.service-1.19.0/requirements.txt
--- old/oslo.service-1.16.0/requirements.txt    2016-08-25 14:00:10.000000000 
+0200
+++ new/oslo.service-1.19.0/requirements.txt    2017-01-18 15:10:22.000000000 
+0100
@@ -2,14 +2,14 @@
 # of appearance. Changing the order has an impact on the overall integration
 # process, which may cause wedges in the gate later.
 
-WebOb>=1.2.3 # MIT
+WebOb>=1.6.0 # MIT
 eventlet!=0.18.3,>=0.18.2 # MIT
 greenlet>=0.3.2 # MIT
 monotonic>=0.6 # Apache-2.0
-oslo.utils>=3.16.0 # Apache-2.0
+oslo.utils>=3.18.0 # Apache-2.0
 oslo.concurrency>=3.8.0 # Apache-2.0
-oslo.config>=3.14.0 # Apache-2.0
-oslo.log>=1.14.0 # Apache-2.0
+oslo.config!=3.18.0,>=3.14.0 # Apache-2.0
+oslo.log>=3.11.0 # Apache-2.0
 six>=1.9.0 # MIT
 oslo.i18n>=2.1.0 # Apache-2.0
 PasteDeploy>=1.5.0 # MIT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.service-1.16.0/setup.cfg 
new/oslo.service-1.19.0/setup.cfg
--- old/oslo.service-1.16.0/setup.cfg   2016-08-25 14:03:45.000000000 +0200
+++ new/oslo.service-1.19.0/setup.cfg   2017-01-18 15:12:37.000000000 +0100
@@ -5,7 +5,7 @@
        README.rst
 author = OpenStack
 author-email = [email protected]
-home-page = http://wiki.openstack.org/wiki/Oslo#oslo.service
+home-page = http://docs.openstack.org/developer/oslo.service
 classifier = 
        Environment :: OpenStack
        Intended Audience :: Information Technology
@@ -61,5 +61,4 @@
 [egg_info]
 tag_build = 
 tag_date = 0
-tag_svn_revision = 0
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.service-1.16.0/test-requirements.txt 
new/oslo.service-1.19.0/test-requirements.txt
--- old/oslo.service-1.16.0/test-requirements.txt       2016-08-25 
14:00:10.000000000 +0200
+++ new/oslo.service-1.19.0/test-requirements.txt       2017-01-18 
15:10:22.000000000 +0100
@@ -8,11 +8,12 @@
 oslotest>=1.10.0 # Apache-2.0
 
 # These are needed for docs generation/testing
-oslosphinx!=3.4.0,>=2.5.0 # Apache-2.0
-sphinx!=1.3b1,<1.3,>=1.2.1 # BSD
+oslosphinx>=4.7.0 # Apache-2.0
+sphinx!=1.3b1,<1.4,>=1.2.1 # BSD
 doc8 # Apache-2.0
+reno>=1.8.0 # Apache-2.0
 
-coverage>=3.6 # Apache-2.0
+coverage>=4.0 # Apache-2.0
 
 # Bandit security code scanner
 bandit>=1.1.0 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.service-1.16.0/tools/tox_install.sh 
new/oslo.service-1.19.0/tools/tox_install.sh
--- old/oslo.service-1.16.0/tools/tox_install.sh        1970-01-01 
01:00:00.000000000 +0100
+++ new/oslo.service-1.19.0/tools/tox_install.sh        2017-01-18 
15:10:22.000000000 +0100
@@ -0,0 +1,30 @@
+#!/usr/bin/env bash
+
+# Client constraint file contains this client version pin that is in conflict
+# with installing the client from source. We should remove the version pin in
+# the constraints file before applying it for from-source installation.
+
+CONSTRAINTS_FILE="$1"
+shift 1
+
+set -e
+
+# NOTE(tonyb): Place this in the tox enviroment's log dir so it will get
+# published to logs.openstack.org for easy debugging.
+localfile="$VIRTUAL_ENV/log/upper-constraints.txt"
+
+if [[ "$CONSTRAINTS_FILE" != http* ]]; then
+    CONSTRAINTS_FILE="file://$CONSTRAINTS_FILE"
+fi
+# NOTE(tonyb): need to add curl to bindep.txt if the project supports bindep
+curl "$CONSTRAINTS_FILE" --insecure --progress-bar --output "$localfile"
+
+pip install -c"$localfile" openstack-requirements
+
+# This is the main purpose of the script: Allow local installation of
+# the current repo. It is listed in constraints file and thus any
+# install will be constrained and we need to unconstrain it.
+edit-constraints "$localfile" -- "$CLIENT_NAME"
+
+pip install -c"$localfile" -U "$@"
+exit $?
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.service-1.16.0/tox.ini 
new/oslo.service-1.19.0/tox.ini
--- old/oslo.service-1.16.0/tox.ini     2016-08-25 14:00:10.000000000 +0200
+++ new/oslo.service-1.19.0/tox.ini     2017-01-18 15:10:23.000000000 +0100
@@ -1,12 +1,17 @@
 [tox]
-minversion = 1.6
+minversion = 2.0
 envlist = py34,py27,pypy,pep8, bandit
 
 [testenv]
+setenv =
+    VIRTUAL_ENV={envdir}
+    BRANCH_NAME=master
+    CLIENT_NAME=oslo.service
+install_command = {toxinidir}/tools/tox_install.sh 
{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
 {opts} {packages}
 deps = -r{toxinidir}/test-requirements.txt
 whitelist_externals = find
 commands =
-    find . -type f -name "*.pyc" -delete
+    find . -type f -name "*.py[co]" -delete
     python setup.py testr --slowest --testr-args='{posargs}'
 
 [testenv:pep8]
@@ -14,7 +19,7 @@
 
 [testenv:py27]
 commands =
-    find . -type f -name "*.pyc" -delete
+    find . -type f -name "*.py[co]" -delete
     python setup.py testr --slowest --testr-args='{posargs}'
     doc8 --ignore-path "doc/source/history.rst" doc/source
 
@@ -51,3 +56,6 @@
 [testenv:bandit]
 deps = -r{toxinidir}/test-requirements.txt
 commands = bandit -c bandit.yaml -r oslo_service -n5 -p gate
+
+[testenv:releasenotes]
+commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html 
releasenotes/source releasenotes/build/html


Reply via email to