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