Hello community,

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

Package is "python-oslo.utils"

Fri Sep  7 15:39:12 2018 rev:16 rq:633110 version:3.36.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-oslo.utils/python-oslo.utils.changes      
2018-03-19 23:36:36.705176773 +0100
+++ /work/SRC/openSUSE:Factory/.python-oslo.utils.new/python-oslo.utils.changes 
2018-09-07 15:39:13.606547546 +0200
@@ -1,0 +2,31 @@
+Mon Sep  3 09:00:25 UTC 2018 - cloud-de...@suse.de
+
+- update to version 3.36.4
+  - Update reno for stable/queens
+  - Switch to stestr
+  - Imported Translations from Zanata
+  - Add release notes link to README
+  - Replace 'assertFalse(a in b)' with 'assertNotIn(a, b)'
+  - Fix breaking unit tests due to iso8601 changes
+  - Capitalize Oslo
+  - Add private_key to the list of sanitized keys
+  - Fix exception with secretutils
+  - Clean imports in code
+  - Remove stale pip-missing-reqs tox test
+  - Update links in README
+  - Add bindep.txt file to prevent fallback to generic list
+  - Trivial: Update pypi url to new url
+  - Add -W for document build
+  - Handle non-string keys appropriately
+  - eventletutils: Fix behavior discrepency when reusing Events
+  - Clean old output before new doc builds
+  - Document specs_matcher.py functions
+  - set default python to python3
+  - fix tox python3 overrides
+  - Fix project name in user docs
+  - Remove sphinx settings from setup.cfg
+  - Updated from global requirements
+  - add lower-constraints job
+- remove 0001-Fix-breaking-unit-tests-due-to-iso8601-changes.patch (upstream)
+
+-------------------------------------------------------------------

Old:
----
  0001-Fix-breaking-unit-tests-due-to-iso8601-changes.patch
  oslo.utils-3.35.0.tar.gz

New:
----
  oslo.utils-3.36.4.tar.gz

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

Other differences:
------------------
++++++ python-oslo.utils.spec ++++++
--- /var/tmp/diff_new_pack.xBOqRT/_old  2018-09-07 15:39:14.058547061 +0200
+++ /var/tmp/diff_new_pack.xBOqRT/_new  2018-09-07 15:39:14.062547057 +0200
@@ -17,57 +17,56 @@
 
 
 Name:           python-oslo.utils
-Version:        3.35.0
+Version:        3.36.4
 Release:        0
 Summary:        OpenStack Utils Library
 License:        Apache-2.0
 Group:          Development/Languages/Python
-Url:            https://launchpad.net/oslo.utils
-Source0:        
https://files.pythonhosted.org/packages/source/o/oslo.utils/oslo.utils-3.35.0.tar.gz
-Patch1:         0001-Fix-breaking-unit-tests-due-to-iso8601-changes.patch
+URL:            https://launchpad.net/oslo.utils
+Source0:        
https://files.pythonhosted.org/packages/source/o/oslo.utils/oslo.utils-3.36.4.tar.gz
 BuildRequires:  openstack-macros
 BuildRequires:  python2-Babel
 BuildRequires:  python2-ddt
-BuildRequires:  python2-debtcollector
-BuildRequires:  python2-fixtures >= 3.0.0
-BuildRequires:  python2-iso8601
+BuildRequires:  python2-debtcollector >= 1.2.0
+BuildRequires:  python2-fixtures
+BuildRequires:  python2-iso8601 >= 0.1.11
 BuildRequires:  python2-mock
-BuildRequires:  python2-monotonic
-BuildRequires:  python2-netaddr
-BuildRequires:  python2-netifaces
-BuildRequires:  python2-oslo.i18n
+BuildRequires:  python2-monotonic >= 0.6
+BuildRequires:  python2-netaddr >= 0.7.18
+BuildRequires:  python2-netifaces >= 0.10.4
+BuildRequires:  python2-oslo.i18n >= 3.15.3
 BuildRequires:  python2-oslotest
-BuildRequires:  python2-pbr
-BuildRequires:  python2-pyparsing
+BuildRequires:  python2-pbr >= 2.0.0
+BuildRequires:  python2-pyparsing >= 2.1.0
 BuildRequires:  python2-python-subunit
-BuildRequires:  python2-testrepository
+BuildRequires:  python2-stestr
 BuildRequires:  python2-testscenarios
 BuildRequires:  python2-testtools
 BuildRequires:  python3-Babel
 BuildRequires:  python3-ddt
-BuildRequires:  python3-debtcollector
-BuildRequires:  python3-fixtures >= 3.0.0
-BuildRequires:  python3-iso8601
+BuildRequires:  python3-debtcollector >= 1.2.0
+BuildRequires:  python3-fixtures
+BuildRequires:  python3-iso8601 >= 0.1.11
 BuildRequires:  python3-mock
-BuildRequires:  python3-monotonic
-BuildRequires:  python3-netaddr
-BuildRequires:  python3-netifaces
-BuildRequires:  python3-oslo.i18n
+BuildRequires:  python3-monotonic >= 0.6
+BuildRequires:  python3-netaddr >= 0.7.18
+BuildRequires:  python3-netifaces >= 0.10.4
+BuildRequires:  python3-oslo.i18n >= 3.15.3
 BuildRequires:  python3-oslotest
-BuildRequires:  python3-pbr
-BuildRequires:  python3-pyparsing
+BuildRequires:  python3-pbr >= 2.0.0
+BuildRequires:  python3-pyparsing >= 2.1.0
 BuildRequires:  python3-python-subunit
-BuildRequires:  python3-testrepository
+BuildRequires:  python3-stestr
 BuildRequires:  python3-testscenarios
 BuildRequires:  python3-testtools
-Requires:       python-debtcollector
-Requires:       python-iso8601
-Requires:       python-monotonic
-Requires:       python-netaddr
-Requires:       python-netifaces
-Requires:       python-oslo.i18n
-Requires:       python-pyparsing
-Requires:       python-pytz
+Requires:       python-debtcollector >= 1.2.0
+Requires:       python-iso8601 >= 0.1.11
+Requires:       python-monotonic >= 0.6
+Requires:       python-netaddr >= 0.7.18
+Requires:       python-netifaces >= 0.10.4
+Requires:       python-oslo.i18n >= 3.15.3
+Requires:       python-pyparsing >= 2.1.0
+Requires:       python-pytz >= 2013.6
 Requires:       python-six >= 1.10.0
 BuildArch:      noarch
 %python_subpackages
@@ -86,7 +85,7 @@
 Documentation for OpenStack utils library.
 
 %prep
-%autosetup -p1 -n oslo.utils-3.35.0
+%autosetup -p1 -n oslo.utils-3.36.4
 
 sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
 %py_req_cleanup
@@ -98,14 +97,13 @@
 %python_install
 
 # generate html docs
-%{__python2} setup.py build_sphinx
+#%{__python2} setup.py build_sphinx
+PBR_VERSION=3.36.4 sphinx-build -b html doc/source doc/build/html
 # remove the sphinx-build leftovers
 rm -rf doc/build/html/.{doctrees,buildinfo}
 
 %check
-%{python_expand rm -rf .testrepository
-$python setup.py test
-}
+%python_exec -m stestr.cli run
 
 %files %{python_files}
 %license LICENSE

++++++ _service ++++++
--- /var/tmp/diff_new_pack.xBOqRT/_old  2018-09-07 15:39:14.086547031 +0200
+++ /var/tmp/diff_new_pack.xBOqRT/_new  2018-09-07 15:39:14.086547031 +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.utils/oslo.utils.spec.j2</param>
+    <param 
name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/openstack/oslo.utils/oslo.utils.spec.j2</param>
     <param name="output-name">python-oslo.utils.spec</param>
-    <param 
name="requirements">https://raw.githubusercontent.com/openstack/requirements/stable/queens/requirements.txt</param>
+    <param 
name="requirements">https://raw.githubusercontent.com/openstack/oslo.utils/stable/rocky/requirements.txt</param>
     <param name="changelog-email">cloud-de...@suse.de</param>
     <param name="changelog-provider">gh,openstack,oslo.utils</param>
   </service>

++++++ oslo.utils-3.35.0.tar.gz -> oslo.utils-3.36.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.utils-3.35.0/.stestr.conf 
new/oslo.utils-3.36.4/.stestr.conf
--- old/oslo.utils-3.35.0/.stestr.conf  1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.utils-3.36.4/.stestr.conf  2018-07-20 03:08:41.000000000 +0200
@@ -0,0 +1,3 @@
+[DEFAULT]
+test_path=./oslo_utils/tests
+top_path=./
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.utils-3.35.0/.testr.conf 
new/oslo.utils-3.36.4/.testr.conf
--- old/oslo.utils-3.35.0/.testr.conf   2018-01-15 22:05:34.000000000 +0100
+++ new/oslo.utils-3.36.4/.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 ./ . $LISTOPT 
$IDOPTION
-test_id_option=--load-list $IDFILE
-test_list_option=--list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.utils-3.35.0/.zuul.yaml 
new/oslo.utils-3.36.4/.zuul.yaml
--- old/oslo.utils-3.35.0/.zuul.yaml    1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.utils-3.36.4/.zuul.yaml    2018-07-20 03:08:41.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.utils-3.35.0/AUTHORS 
new/oslo.utils-3.36.4/AUTHORS
--- old/oslo.utils-3.35.0/AUTHORS       2018-01-15 22:08:44.000000000 +0100
+++ new/oslo.utils-3.36.4/AUTHORS       2018-07-20 03:11:33.000000000 +0200
@@ -69,17 +69,21 @@
 Johannes Erdfelt <johannes.erdf...@rackspace.com>
 John Eckersberg <jecke...@redhat.com>
 John L. Villalovos <john.l.villalo...@intel.com>
+John L. Villalovos <openstack....@sodarock.com>
 Jordan Pittier <jordan.pitt...@scality.com>
 Joshua Harlow <harlo...@gmail.com>
 Joshua Harlow <harlo...@yahoo-inc.com>
 Joshua Harlow <jxhar...@godaddy.com>
 Julien Danjou <jul...@danjou.info>
+Kenneth Giusti <kgiu...@gmail.com>
 Kevin Houdebert <ke...@qwazerty.eu>
 Lucas Alvares Gomes <lucasago...@gmail.com>
+Matthew Booth <mbo...@redhat.com>
 Mehdi Abaakouk <mehdi.abaak...@enovance.com>
 Michael Wilson <geekinu...@gmail.com>
 Monty Taylor <mord...@inaugust.com>
 Morgan Fainberg <morgan.fainb...@gmail.com>
+Nguyen Hung Phuong <phuon...@vn.fujitsu.com>
 Noorul Islam K M <noo...@noorul.com>
 Oleg Bondarev <obonda...@mirantis.com>
 Oleksii Chuprykov <ochupry...@mirantis.com>
@@ -97,6 +101,7 @@
 Russell Bryant <rbry...@redhat.com>
 SandyWalsh <sandy.wa...@rackspace.com>
 Sean Dague <sda...@linux.vnet.ibm.com>
+Sean McGinnis <sean.mcgin...@huawei.com>
 Sergey Kraynev <skray...@mirantis.com>
 Sergey Lukjanov <slukja...@mirantis.com>
 Sirisha Devineni <sirisha_devin...@persistent.co.in>
@@ -108,21 +113,25 @@
 Swapnil Kulkarni (coolsvap) <m...@coolsvap.net>
 Timur Sufiev <tsuf...@mirantis.com>
 Tony Breeds <t...@bakeyournoodle.com>
+Tovin Seven <vin...@vn.fujitsu.com>
 Valeriy Ponomaryov <vponomar...@mirantis.com>
 Victor Sergeyev <vserge...@mirantis.com>
 Victor Stinner <victor.stin...@enovance.com>
 Victor Stinner <vstin...@redhat.com>
+Vu Cong Tuan <tua...@vn.fujitsu.com>
 Wen Zhi Yu <wenzhi...@163.com>
 Yaguang Tang <heut2...@gmail.com>
 Young <afe.yo...@gmail.com>
 Yunhong, Jiang <yunhong.ji...@intel.com>
 Zane Bitter <zbit...@redhat.com>
 ZhiQiang Fan <aji.zq...@gmail.com>
+ZhongShengping <chd...@163.com>
 Zhongyue Luo <lzye...@gmail.com>
 Zhongyue Luo <zhongyue....@intel.com>
 Zuul <z...@review.openstack.org>
 avnish <avnish....@nectechnologies.in>
 bhagyashris <bhagyashri.shew...@nttdata.com>
+changxun <zho...@dtdream.com>
 dharmendra <dharmendra.kushw...@nectechnologies.in>
 ekudryashova <ekudryash...@mirantis.com>
 gecong1973 <ge.c...@zte.com.cn>
@@ -138,5 +147,6 @@
 pran1990 <pranes...@gmail.com>
 ricolin <rico....@easystack.cn>
 sridhargaddam <sridhar.gad...@enovance.com>
+sunyandi <su...@inspur.com>
 zhangsong <zhangs...@cmss.chinamobile.com>
 zhengyao1 <zheng.y...@zte.com.cn>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.utils-3.35.0/ChangeLog 
new/oslo.utils-3.36.4/ChangeLog
--- old/oslo.utils-3.35.0/ChangeLog     2018-01-15 22:08:44.000000000 +0100
+++ new/oslo.utils-3.36.4/ChangeLog     2018-07-20 03:11:33.000000000 +0200
@@ -1,6 +1,55 @@
 CHANGES
 =======
 
+3.36.4
+------
+
+* Handle non-string keys appropriately
+* Switch to stestr
+* Add release notes link to README
+
+3.36.3
+------
+
+* fix tox python3 overrides
+* Fix exception with secretutils
+
+3.36.2
+------
+
+* Add private\_key to the list of sanitized keys
+* Remove stale pip-missing-reqs tox test
+* Capitalize Oslo
+
+3.36.1
+------
+
+* Trivial: Update pypi url to new url
+* set default python to python3
+* eventletutils: Fix behavior discrepency when reusing Events
+* Fix project name in user docs
+* add lower-constraints job
+* Clean old output before new doc builds
+* Remove sphinx settings from setup.cfg
+* Add bindep.txt file to prevent fallback to generic list
+* Updated from global requirements
+
+3.36.0
+------
+
+* Add -W for document build
+* Imported Translations from Zanata
+* Update links in README
+* Imported Translations from Zanata
+* Fix breaking unit tests due to iso8601 changes
+* Document specs\_matcher.py functions
+* Clean imports in code
+* Update reno for stable/queens
+* Updated from global requirements
+* Replace 'assertFalse(a in b)' with 'assertNotIn(a, b)'
+* Updated from global requirements
+* Updated from global requirements
+
 3.35.0
 ------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.utils-3.35.0/PKG-INFO 
new/oslo.utils-3.36.4/PKG-INFO
--- old/oslo.utils-3.35.0/PKG-INFO      2018-01-15 22:08:44.000000000 +0100
+++ new/oslo.utils-3.36.4/PKG-INFO      2018-07-20 03:11:33.000000000 +0200
@@ -1,18 +1,17 @@
 Metadata-Version: 1.1
 Name: oslo.utils
-Version: 3.35.0
+Version: 3.36.4
 Summary: Oslo Utility library
 Home-page: https://docs.openstack.org/oslo.utils/latest/
 Author: OpenStack
 Author-email: openstack-...@lists.openstack.org
 License: UNKNOWN
-Description-Content-Type: UNKNOWN
 Description: ========================
         Team and repository tags
         ========================
         
-        .. image:: http://governance.openstack.org/badges/oslo.utils.svg
-            :target: http://governance.openstack.org/reference/tags/index.html
+        .. image:: https://governance.openstack.org/tc/badges/oslo.utils.svg
+            :target: 
https://governance.openstack.org/tc/reference/tags/index.html
         
         .. Change things from this point on
         
@@ -21,11 +20,11 @@
         ==========
         
         .. image:: https://img.shields.io/pypi/v/oslo.utils.svg
-            :target: https://pypi.python.org/pypi/oslo.utils/
+            :target: https://pypi.org/project/oslo.utils/
             :alt: Latest Version
         
         .. image:: https://img.shields.io/pypi/dm/oslo.utils.svg
-            :target: https://pypi.python.org/pypi/oslo.utils/
+            :target: https://pypi.org/project/oslo.utils/
             :alt: Downloads
         
         The oslo.utils library provides support for common utility type 
functions,
@@ -35,6 +34,7 @@
         * Documentation: https://docs.openstack.org/oslo.utils/latest/
         * Source: https://git.openstack.org/cgit/openstack/oslo.utils
         * Bugs: https://bugs.launchpad.net/oslo.utils
+        * Release notes: https://docs.openstack.org/releasenotes/oslo.utils/
         
         
 Platform: UNKNOWN
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.utils-3.35.0/README.rst 
new/oslo.utils-3.36.4/README.rst
--- old/oslo.utils-3.35.0/README.rst    2018-01-15 22:05:34.000000000 +0100
+++ new/oslo.utils-3.36.4/README.rst    2018-07-20 03:08:41.000000000 +0200
@@ -2,8 +2,8 @@
 Team and repository tags
 ========================
 
-.. image:: http://governance.openstack.org/badges/oslo.utils.svg
-    :target: http://governance.openstack.org/reference/tags/index.html
+.. image:: https://governance.openstack.org/tc/badges/oslo.utils.svg
+    :target: https://governance.openstack.org/tc/reference/tags/index.html
 
 .. Change things from this point on
 
@@ -12,11 +12,11 @@
 ==========
 
 .. image:: https://img.shields.io/pypi/v/oslo.utils.svg
-    :target: https://pypi.python.org/pypi/oslo.utils/
+    :target: https://pypi.org/project/oslo.utils/
     :alt: Latest Version
 
 .. image:: https://img.shields.io/pypi/dm/oslo.utils.svg
-    :target: https://pypi.python.org/pypi/oslo.utils/
+    :target: https://pypi.org/project/oslo.utils/
     :alt: Downloads
 
 The oslo.utils library provides support for common utility type functions,
@@ -26,3 +26,4 @@
 * Documentation: https://docs.openstack.org/oslo.utils/latest/
 * Source: https://git.openstack.org/cgit/openstack/oslo.utils
 * Bugs: https://bugs.launchpad.net/oslo.utils
+* Release notes: https://docs.openstack.org/releasenotes/oslo.utils/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.utils-3.35.0/bindep.txt 
new/oslo.utils-3.36.4/bindep.txt
--- old/oslo.utils-3.35.0/bindep.txt    1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.utils-3.36.4/bindep.txt    2018-07-20 03:08:41.000000000 +0200
@@ -0,0 +1,9 @@
+# This is a cross-platform list tracking distribution packages needed by tests;
+# see http://docs.openstack.org/infra/bindep/ for additional information.
+
+locales [platform:debian]
+python-dev [platform:dpkg]
+python-devel [platform:rpm]
+python3-all-dev [platform:ubuntu !platform:ubuntu-precise]
+python3-dev [platform:dpkg]
+python3-devel [platform:fedora]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.utils-3.35.0/doc/requirements.txt 
new/oslo.utils-3.36.4/doc/requirements.txt
--- old/oslo.utils-3.35.0/doc/requirements.txt  2018-01-15 22:05:53.000000000 
+0100
+++ new/oslo.utils-3.36.4/doc/requirements.txt  2018-07-20 03:08:41.000000000 
+0200
@@ -2,7 +2,7 @@
 # of appearance. Changing the order has an impact on the overall integration
 # process, which may cause wedges in the gate later.
 # this is required for the docs build jobs
-sphinx>=1.6.2 # BSD
-openstackdocstheme>=1.17.0 # Apache-2.0
+sphinx!=1.6.6,!=1.6.7,>=1.6.2 # BSD
+openstackdocstheme>=1.18.1 # Apache-2.0
 reno>=2.5.0 # Apache-2.0
 fixtures>=3.0.0 # Apache-2.0/BSD
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.utils-3.35.0/doc/source/index.rst 
new/oslo.utils-3.36.4/doc/source/index.rst
--- old/oslo.utils-3.35.0/doc/source/index.rst  2018-01-15 22:05:34.000000000 
+0100
+++ new/oslo.utils-3.36.4/doc/source/index.rst  2018-07-20 03:08:41.000000000 
+0200
@@ -2,7 +2,7 @@
 Welcome to oslo.utils's documentation!
 ======================================
 
-The `oslo`_ utils library provides support for common utility type functions,
+The `Oslo`_ utils library provides support for common utility type functions,
 such as encoding, exception handling, string manipulation, and time handling.
 
 .. toctree::
@@ -19,4 +19,4 @@
 * :ref:`modindex`
 * :ref:`search`
 
-.. _oslo: https://wiki.openstack.org/wiki/Oslo
+.. _Oslo: https://wiki.openstack.org/wiki/Oslo
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.utils-3.35.0/doc/source/user/index.rst 
new/oslo.utils-3.36.4/doc/source/user/index.rst
--- old/oslo.utils-3.35.0/doc/source/user/index.rst     2018-01-15 
22:05:34.000000000 +0100
+++ new/oslo.utils-3.36.4/doc/source/user/index.rst     2018-07-20 
03:08:41.000000000 +0200
@@ -1,6 +1,6 @@
-==================
-Using oslo.service
-==================
+================
+Using oslo.utils
+================
 
 .. toctree::
    :maxdepth: 2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.utils-3.35.0/lower-constraints.txt 
new/oslo.utils-3.36.4/lower-constraints.txt
--- old/oslo.utils-3.35.0/lower-constraints.txt 1970-01-01 01:00:00.000000000 
+0100
+++ new/oslo.utils-3.36.4/lower-constraints.txt 2018-07-20 03:08:41.000000000 
+0200
@@ -0,0 +1,45 @@
+appdirs==1.3.0
+Babel==2.3.4
+bandit==1.4.0
+coverage==4.0
+ddt==1.0.1
+debtcollector==1.2.0
+extras==1.0.0
+fixtures==3.0.0
+flake8==2.5.5
+funcsigs==1.0.0
+gitdb==0.6.4
+GitPython==1.0.1
+hacking==0.12.0
+iso8601==0.1.11
+keystoneauth1==3.4.0
+linecache2==1.0.0
+mccabe==0.2.1
+mock==2.0.0
+monotonic==0.6
+netaddr==0.7.18
+netifaces==0.10.4
+os-client-config==1.28.0
+oslo.config==5.2.0
+oslo.i18n==3.15.3
+oslotest==3.2.0
+pbr==2.0.0
+pep8==1.5.7
+pyflakes==0.8.1
+pyparsing==2.1.0
+python-mimeparse==1.6.0
+python-subunit==1.0.0
+pytz==2013.6
+PyYAML==3.12
+requests==2.14.2
+requestsexceptions==1.2.0
+rfc3986==0.3.1
+six==1.10.0
+smmap==0.9.0
+stestr==2.0.0
+stevedore==1.20.0
+testscenarios==0.4
+testtools==2.2.0
+traceback2==1.4.0
+unittest2==1.1.0
+wrapt==1.7.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.utils-3.35.0/oslo.utils.egg-info/PKG-INFO 
new/oslo.utils-3.36.4/oslo.utils.egg-info/PKG-INFO
--- old/oslo.utils-3.35.0/oslo.utils.egg-info/PKG-INFO  2018-01-15 
22:08:44.000000000 +0100
+++ new/oslo.utils-3.36.4/oslo.utils.egg-info/PKG-INFO  2018-07-20 
03:11:33.000000000 +0200
@@ -1,18 +1,17 @@
 Metadata-Version: 1.1
 Name: oslo.utils
-Version: 3.35.0
+Version: 3.36.4
 Summary: Oslo Utility library
 Home-page: https://docs.openstack.org/oslo.utils/latest/
 Author: OpenStack
 Author-email: openstack-...@lists.openstack.org
 License: UNKNOWN
-Description-Content-Type: UNKNOWN
 Description: ========================
         Team and repository tags
         ========================
         
-        .. image:: http://governance.openstack.org/badges/oslo.utils.svg
-            :target: http://governance.openstack.org/reference/tags/index.html
+        .. image:: https://governance.openstack.org/tc/badges/oslo.utils.svg
+            :target: 
https://governance.openstack.org/tc/reference/tags/index.html
         
         .. Change things from this point on
         
@@ -21,11 +20,11 @@
         ==========
         
         .. image:: https://img.shields.io/pypi/v/oslo.utils.svg
-            :target: https://pypi.python.org/pypi/oslo.utils/
+            :target: https://pypi.org/project/oslo.utils/
             :alt: Latest Version
         
         .. image:: https://img.shields.io/pypi/dm/oslo.utils.svg
-            :target: https://pypi.python.org/pypi/oslo.utils/
+            :target: https://pypi.org/project/oslo.utils/
             :alt: Downloads
         
         The oslo.utils library provides support for common utility type 
functions,
@@ -35,6 +34,7 @@
         * Documentation: https://docs.openstack.org/oslo.utils/latest/
         * Source: https://git.openstack.org/cgit/openstack/oslo.utils
         * Bugs: https://bugs.launchpad.net/oslo.utils
+        * Release notes: https://docs.openstack.org/releasenotes/oslo.utils/
         
         
 Platform: UNKNOWN
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.utils-3.35.0/oslo.utils.egg-info/SOURCES.txt 
new/oslo.utils-3.36.4/oslo.utils.egg-info/SOURCES.txt
--- old/oslo.utils-3.35.0/oslo.utils.egg-info/SOURCES.txt       2018-01-15 
22:08:44.000000000 +0100
+++ new/oslo.utils-3.36.4/oslo.utils.egg-info/SOURCES.txt       2018-07-20 
03:11:33.000000000 +0200
@@ -1,6 +1,7 @@
 .coveragerc
 .mailmap
-.testr.conf
+.stestr.conf
+.zuul.yaml
 AUTHORS
 CONTRIBUTING.rst
 ChangeLog
@@ -8,6 +9,8 @@
 LICENSE
 README.rst
 babel.cfg
+bindep.txt
+lower-constraints.txt
 requirements.txt
 setup.cfg
 setup.py
@@ -98,6 +101,7 @@
 releasenotes/source/newton.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.utils-3.35.0/oslo.utils.egg-info/pbr.json 
new/oslo.utils-3.36.4/oslo.utils.egg-info/pbr.json
--- old/oslo.utils-3.35.0/oslo.utils.egg-info/pbr.json  2018-01-15 
22:08:44.000000000 +0100
+++ new/oslo.utils-3.36.4/oslo.utils.egg-info/pbr.json  2018-07-20 
03:11:33.000000000 +0200
@@ -1 +1 @@
-{"git_version": "a449545", "is_release": true}
\ No newline at end of file
+{"git_version": "7f83970", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.utils-3.35.0/oslo.utils.egg-info/requires.txt 
new/oslo.utils-3.36.4/oslo.utils.egg-info/requires.txt
--- old/oslo.utils-3.35.0/oslo.utils.egg-info/requires.txt      2018-01-15 
22:08:44.000000000 +0100
+++ new/oslo.utils-3.36.4/oslo.utils.egg-info/requires.txt      2018-07-20 
03:11:33.000000000 +0200
@@ -1,6 +1,5 @@
 pbr!=2.1.0,>=2.0.0
 six>=1.10.0
-funcsigs>=1.0.0
 iso8601>=0.1.11
 oslo.i18n>=3.15.3
 monotonic>=0.6
@@ -9,3 +8,6 @@
 netifaces>=0.10.4
 debtcollector>=1.2.0
 pyparsing>=2.1.0
+
+[:(python_version=='2.7' or python_version=='2.6')]
+funcsigs>=1.0.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.utils-3.35.0/oslo_utils/eventletutils.py 
new/oslo.utils-3.36.4/oslo_utils/eventletutils.py
--- old/oslo.utils-3.35.0/oslo_utils/eventletutils.py   2018-01-15 
22:05:34.000000000 +0100
+++ new/oslo.utils-3.36.4/oslo_utils/eventletutils.py   2018-07-20 
03:08:41.000000000 +0200
@@ -159,6 +159,9 @@
     isSet = is_set
 
     def set(self):
+        if self._set:
+            self._event.reset()
+
         self._set = True
         self._event.send(True)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.utils-3.35.0/oslo_utils/locale/en_GB/LC_MESSAGES/oslo_utils.po 
new/oslo.utils-3.36.4/oslo_utils/locale/en_GB/LC_MESSAGES/oslo_utils.po
--- old/oslo.utils-3.35.0/oslo_utils/locale/en_GB/LC_MESSAGES/oslo_utils.po     
2018-01-15 22:05:34.000000000 +0100
+++ new/oslo.utils-3.36.4/oslo_utils/locale/en_GB/LC_MESSAGES/oslo_utils.po     
2018-07-20 03:08:41.000000000 +0200
@@ -7,20 +7,21 @@
 # OpenStack Infra <zan...@openstack.org>, 2015. #zanata
 # Andi Chandler <a...@gowling.com>, 2016. #zanata
 # Andreas Jaeger <jaegera...@gmail.com>, 2016. #zanata
+# Andi Chandler <a...@gowling.com>, 2018. #zanata
 msgid ""
 msgstr ""
-"Project-Id-Version: oslo.utils 3.12.1.dev3\n"
+"Project-Id-Version: oslo.utils VERSION\n"
 "Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n";
-"POT-Creation-Date: 2016-06-10 18:11+0000\n"
+"POT-Creation-Date: 2018-02-09 13:01+0000\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"PO-Revision-Date: 2016-06-09 11:15+0000\n"
+"PO-Revision-Date: 2018-02-06 11:26+0000\n"
 "Last-Translator: Andi Chandler <a...@gowling.com>\n"
-"Language: en-GB\n"
+"Language: en_GB\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "Generated-By: Babel 2.0\n"
-"X-Generator: Zanata 3.7.3\n"
+"X-Generator: Zanata 4.3.3\n"
 "Language-Team: English (United Kingdom)\n"
 
 #, python-format
@@ -32,6 +33,18 @@
 msgstr "%(name)s has %(length)s characters, more than %(max_length)s."
 
 #, python-format
+msgid "%(value_name)s must be <= %(max_value)d"
+msgstr "%(value_name)s must be <= %(max_value)d"
+
+#, python-format
+msgid "%(value_name)s must be >= %(min_value)d"
+msgstr "%(value_name)s must be >= %(min_value)d"
+
+#, python-format
+msgid "%(value_name)s must be an integer"
+msgstr "%(value_name)s must be an integer"
+
+#, python-format
 msgid "%s is not a string or unicode"
 msgstr "%s is not a string or unicode"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.utils-3.35.0/oslo_utils/secretutils.py 
new/oslo.utils-3.36.4/oslo_utils/secretutils.py
--- old/oslo.utils-3.35.0/oslo_utils/secretutils.py     2018-01-15 
22:05:34.000000000 +0100
+++ new/oslo.utils-3.36.4/oslo_utils/secretutils.py     2018-07-20 
03:08:41.000000000 +0200
@@ -20,28 +20,26 @@
 
 import hmac
 
-import six
 
+def _constant_time_compare(first, second):
+    """Return True if both string or binary inputs are equal, otherwise False.
+
+    This function should take a constant amount of time regardless of
+    how many characters in the strings match. This function uses an
+    approach designed to prevent timing analysis by avoiding
+    content-based short circuiting behaviour, making it appropriate
+    for cryptography.
+    """
+    first = str(first)
+    second = str(second)
+    if len(first) != len(second):
+        return False
+    result = 0
+    for x, y in zip(first, second):
+        result |= ord(x) ^ ord(y)
+    return result == 0
 
 try:
     constant_time_compare = hmac.compare_digest
 except AttributeError:
-    def constant_time_compare(first, second):
-        """Returns True if both string inputs are equal, otherwise False.
-
-        This function should take a constant amount of time regardless of
-        how many characters in the strings match. This function uses an
-        approach designed to prevent timing analysis by avoiding
-        content-based short circuiting behaviour, making it appropriate
-        for cryptography.
-        """
-        if isinstance(first, six.string_types):
-            first = first.encode('utf-8')
-        if isinstance(second, six.string_types):
-            second = second.encode('utf-8')
-        if len(first) != len(second):
-            return False
-        result = 0
-        for x, y in zip(first, second):
-            result |= ord(x) ^ ord(y)
-        return result == 0
+    constant_time_compare = _constant_time_compare
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.utils-3.35.0/oslo_utils/specs_matcher.py 
new/oslo.utils-3.36.4/oslo_utils/specs_matcher.py
--- old/oslo.utils-3.35.0/oslo_utils/specs_matcher.py   2018-01-15 
22:05:34.000000000 +0100
+++ new/oslo.utils-3.36.4/oslo_utils/specs_matcher.py   2018-07-20 
03:08:41.000000000 +0200
@@ -17,9 +17,6 @@
 import operator
 
 import pyparsing
-from pyparsing import Literal
-from pyparsing import OneOrMore
-from pyparsing import Regex
 
 
 def _all_in(x, *y):
@@ -36,18 +33,21 @@
     # equal, see here for the original @ https://review.openstack.org/#/c/8089/
     '=': lambda x, y: float(x) >= float(y),
     # More sane ops/methods
+    # Numerical methods
     '!=': lambda x, y: float(x) != float(y),
     '<=': lambda x, y: float(x) <= float(y),
     '<': lambda x, y: float(x) < float(y),
     '==': lambda x, y: float(x) == float(y),
     '>=': lambda x, y: float(x) >= float(y),
     '>': lambda x, y: float(x) > float(y),
+    # String methods
     's!=': operator.ne,
     's<': operator.lt,
     's<=': operator.le,
     's==': operator.eq,
     's>': operator.gt,
     's>=': operator.ge,
+    # Other
     '<all-in>': _all_in,
     '<in>': lambda x, y: y in x,
     '<or>': lambda x, *y: any(x == a for a in y),
@@ -55,32 +55,71 @@
 
 
 def make_grammar():
-    """Creates the grammar to be used by a spec matcher."""
+    """Creates the grammar to be used by a spec matcher.
+
+The grammar created supports the following operations.
+
+Numerical values:
+  * ``=  :`` equal to or greater than. This is equivalent to ``>=`` and is
+    supported for `legacy reasons
+    
<http://docs.openstack.org/developer/nova/filter_scheduler.html#ComputeCapabilitiesFilter>`_
+  * ``!= :`` Float/integer value not equal
+  * ``<= :`` Float/integer value less than or equal
+  * ``<  :`` Float/integer value less than
+  * ``== :`` Float/integer value equal
+  * ``>= :`` Float/integer value greater than or equal
+  * ``>  :`` Float/integer value greater
+
+String operations:
+  * ``s!= :`` Not equal
+  * ``s<  :`` Less than
+  * ``s<= :`` Less than or equal
+  * ``s== :`` Equal
+  * ``s>  :`` Greater than
+  * ``s>= :`` Greater than or equal
+
+Other operations:
+  * ``<all-in> :`` All items 'in' value
+  * ``<in>     :`` Item 'in' value, like a substring in a string.
+  * ``<or>     :`` Logical 'or'
+
+If no operator is specified the default is ``s==`` (string equality comparison)
+
+Example operations:
+ * ``">= 60"`` Is the numerical value greater than or equal to 60
+ * ``"<or> spam <or> eggs"`` Does the value contain ``spam`` or ``eggs``
+ * ``"s== 2.1.0"`` Is the string value equal to ``2.1.0``
+ * ``"<in> gcc"`` Is the string ``gcc`` contained in the value string
+ * ``"<all-in> aes mmx"`` Are both ``aes`` and ``mmx`` in the value
+
+:returns: A pyparsing.MatchFirst object. See
+          https://pythonhosted.org/pyparsing/ for details on pyparsing.
+    """
     # This is apparently how pyparsing recommends to be used,
     # as http://pyparsing.wikispaces.com/share/view/644825 states that
     # it is not thread-safe to use a parser across threads.
 
     unary_ops = (
         # Order matters here (so that '=' doesn't match before '==')
-        Literal("==") | Literal("=") |
-        Literal("!=") | Literal("<in>") |
-        Literal(">=") | Literal("<=") |
-        Literal(">") | Literal("<") |
-        Literal("s==") | Literal("s!=") |
+        pyparsing.Literal("==") | pyparsing.Literal("=") |
+        pyparsing.Literal("!=") | pyparsing.Literal("<in>") |
+        pyparsing.Literal(">=") | pyparsing.Literal("<=") |
+        pyparsing.Literal(">") | pyparsing.Literal("<") |
+        pyparsing.Literal("s==") | pyparsing.Literal("s!=") |
         # Order matters here (so that '<' doesn't match before '<=')
-        Literal("s<=") | Literal("s<") |
+        pyparsing.Literal("s<=") | pyparsing.Literal("s<") |
         # Order matters here (so that '>' doesn't match before '>=')
-        Literal("s>=") | Literal("s>"))
+        pyparsing.Literal("s>=") | pyparsing.Literal("s>"))
 
-    all_in_nary_op = Literal("<all-in>")
-    or_ = Literal("<or>")
+    all_in_nary_op = pyparsing.Literal("<all-in>")
+    or_ = pyparsing.Literal("<or>")
 
     # An atom is anything not an keyword followed by anything but whitespace
-    atom = ~(unary_ops | all_in_nary_op | or_) + Regex(r"\S+")
+    atom = ~(unary_ops | all_in_nary_op | or_) + pyparsing.Regex(r"\S+")
 
     unary = unary_ops + atom
-    nary = all_in_nary_op + OneOrMore(atom)
-    disjunction = OneOrMore(or_ + atom)
+    nary = all_in_nary_op + pyparsing.OneOrMore(atom)
+    disjunction = pyparsing.OneOrMore(or_ + atom)
 
     # Even-numbered tokens will be '<or>', so we drop them
     disjunction.setParseAction(lambda _s, _l, t: ["<or>"] + t[1::2])
@@ -90,14 +129,31 @@
 
 
 def match(cmp_value, spec):
-    """Match a given value to a given spec DSL."""
+    """Match a given value to a given spec DSL.
+
+    This uses the grammar defined by make_grammar()
+
+    :param cmp_value: Value to be checked for match.
+    :param spec: The comparison specification string, for example ``">= 70"``
+                 or ``"s== string_value"``. See ``make_grammar()`` for examples
+                 of a specification string.
+    :returns: True if cmp_value is a match for spec. False otherwise.
+    """
     expr = make_grammar()
     try:
+        # As of 2018-01-29 documentation on parseString()
+        # 
https://pythonhosted.org/pyparsing/pyparsing.ParserElement-class.html#parseString
+        #
+        # parseString() will take our specification string, for example "< 6"
+        # and convert it into a list of ['<', "6"]
         tree = expr.parseString(spec)
     except pyparsing.ParseException:
+        # If an exception then we will just check if the value matches the spec
         tree = [spec]
     if len(tree) == 1:
         return tree[0] == cmp_value
 
-    op = op_methods[tree[0]]
-    return op(cmp_value, *tree[1:])
+    # tree[0] will contain a string representation of a comparison operation
+    # such as '>=', we then convert that string to a comparison function
+    compare_func = op_methods[tree[0]]
+    return compare_func(cmp_value, *tree[1:])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.utils-3.35.0/oslo_utils/strutils.py 
new/oslo.utils-3.36.4/oslo_utils/strutils.py
--- old/oslo.utils-3.35.0/oslo_utils/strutils.py        2018-01-15 
22:05:53.000000000 +0100
+++ new/oslo.utils-3.36.4/oslo_utils/strutils.py        2018-07-20 
03:08:41.000000000 +0200
@@ -58,7 +58,7 @@
 _SANITIZE_KEYS = ['adminPass', 'admin_pass', 'password', 'admin_password',
                   'auth_token', 'new_pass', 'auth_password', 'secret_uuid',
                   'secret', 'sys_pswd', 'token', 'configdrive',
-                  'CHAPPASSWORD', 'encrypted_key']
+                  'CHAPPASSWORD', 'encrypted_key', 'private_key']
 
 # NOTE(ldbragst): Let's build a list of regex objects using the list of
 # _SANITIZE_KEYS we already have. This way, we only have to add the new key
@@ -403,15 +403,21 @@
             continue
         # NOTE(jlvillal): Check to see if anything in the dictionary 'key'
         # contains any key specified in _SANITIZE_KEYS.
-        for sani_key in _SANITIZE_KEYS:
-            if sani_key in k:
-                out[k] = secret
-                break
-        else:
+        k_matched = False
+        if isinstance(k, six.string_types):
+            for sani_key in _SANITIZE_KEYS:
+                if sani_key in k:
+                    out[k] = secret
+                    k_matched = True
+                    break
+        if not k_matched:
             # We did not find a match for the key name in the
             # _SANITIZE_KEYS, so we fall through to here
             if isinstance(v, six.string_types):
                 out[k] = mask_password(v, secret=secret)
+            else:
+                # Just leave it alone.
+                out[k] = v
     return out
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.utils-3.35.0/oslo_utils/tests/test_eventletutils.py 
new/oslo.utils-3.36.4/oslo_utils/tests/test_eventletutils.py
--- old/oslo.utils-3.35.0/oslo_utils/tests/test_eventletutils.py        
2018-01-15 22:05:34.000000000 +0100
+++ new/oslo.utils-3.36.4/oslo_utils/tests/test_eventletutils.py        
2018-07-20 03:08:41.000000000 +0200
@@ -123,8 +123,8 @@
                           eventletutils.warn_eventlet_not_patched,
                           ['blah.blah'])
 
-    @mock.patch('oslo_utils.eventletutils._Event.clear')
-    def test_event_api_compat(self, mock_clear):
+    @mock.patch('oslo_utils.eventletutils._eventlet')
+    def test_event_api_compat(self, mock_eventlet):
         with mock.patch('oslo_utils.eventletutils.is_monkey_patched',
                         return_value=True):
             e_event = eventletutils.Event()
@@ -142,3 +142,11 @@
 
         for method in public_methods:
             self.assertTrue(hasattr(e_event, method))
+
+        # Ensure set() allows multiple invocations, same as in
+        # threading implementation.  Must call reset on underlying
+        # Event before reusing it
+        e_event.set()
+        self.assertEqual(0, mock_eventlet.event.Event().reset.call_count)
+        e_event.set()
+        self.assertEqual(1, mock_eventlet.event.Event().reset.call_count)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.utils-3.35.0/oslo_utils/tests/test_secretutils.py 
new/oslo.utils-3.36.4/oslo_utils/tests/test_secretutils.py
--- old/oslo.utils-3.35.0/oslo_utils/tests/test_secretutils.py  2018-01-15 
22:05:34.000000000 +0100
+++ new/oslo.utils-3.36.4/oslo_utils/tests/test_secretutils.py  2018-07-20 
03:08:41.000000000 +0200
@@ -12,6 +12,8 @@
 #    License for the specific language governing permissions and limitations
 #    under the License.
 
+import hmac
+
 from oslotest import base as test_base
 import testscenarios
 
@@ -21,15 +23,20 @@
 class SecretUtilsTest(testscenarios.TestWithScenarios,
                       test_base.BaseTestCase):
 
+    _gen_digest = lambda text: hmac.new(b'foo', text.encode('utf-8')).digest()
     scenarios = [
-        ('binary', {'converter': lambda text: text.encode('utf-8')}),
+        ('binary', {'converter': _gen_digest}),
         ('unicode', {'converter': lambda text: text}),
     ]
 
     def test_constant_time_compare(self):
         # make sure it works as a compare, the "constant time" aspect
         # isn't appropriate to test in unittests
-        ctc = secretutils.constant_time_compare
+
+        # Make sure the unittests are applied to our function instead of
+        # the built-in function, otherwise that is in vain.
+        ctc = secretutils._constant_time_compare
+
         self.assertTrue(ctc(self.converter(u'abcd'),
                             self.converter(u'abcd')))
         self.assertTrue(ctc(self.converter(u''),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.utils-3.35.0/oslo_utils/tests/test_specs_matcher.py 
new/oslo.utils-3.36.4/oslo_utils/tests/test_specs_matcher.py
--- old/oslo.utils-3.35.0/oslo_utils/tests/test_specs_matcher.py        
2018-01-15 22:05:34.000000000 +0100
+++ new/oslo.utils-3.36.4/oslo_utils/tests/test_specs_matcher.py        
2018-07-20 03:08:41.000000000 +0200
@@ -26,6 +26,21 @@
             req='1',
             matches=True)
 
+    def test_specs_fails_string_vs_int(self):
+        # With no operator specified it is a string comparison test, therefore
+        # '1' does not equal '01'
+        self._do_specs_matcher_test(
+            value='01',
+            req='1',
+            matches=False)
+
+    def test_specs_match_int_leading_zero(self):
+        # Show that numerical comparison works with leading zero
+        self._do_specs_matcher_test(
+            value='01',
+            req='== 1',
+            matches=True)
+
     def test_specs_fails_simple(self):
         self._do_specs_matcher_test(
             value='',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.utils-3.35.0/oslo_utils/tests/test_strutils.py 
new/oslo.utils-3.36.4/oslo_utils/tests/test_strutils.py
--- old/oslo.utils-3.35.0/oslo_utils/tests/test_strutils.py     2018-01-15 
22:05:53.000000000 +0100
+++ new/oslo.utils-3.36.4/oslo_utils/tests/test_strutils.py     2018-07-20 
03:08:41.000000000 +0200
@@ -660,6 +660,13 @@
         self.assertEqual(expected,
                          strutils.mask_dict_password(payload))
 
+    def test_do_an_int(self):
+        payload = {}
+        payload[1] = 2
+        expected = payload.copy()
+        self.assertEqual(expected,
+                         strutils.mask_dict_password(payload))
+
     def test_mask_values(self):
         payload = {'somekey': 'test = cmd --password my\xe9\x80\x80pass'}
         expected = {'somekey': 'test = cmd --password ***'}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.utils-3.35.0/oslo_utils/tests/test_timeutils.py 
new/oslo.utils-3.36.4/oslo_utils/tests/test_timeutils.py
--- old/oslo.utils-3.35.0/oslo_utils/tests/test_timeutils.py    2018-01-15 
22:05:34.000000000 +0100
+++ new/oslo.utils-3.36.4/oslo_utils/tests/test_timeutils.py    2018-07-20 
03:08:41.000000000 +0200
@@ -87,20 +87,18 @@
         t = timeutils.parse_strtime(s)
         self.assertEqual(orig_t, t)
 
-    def _test_is_older_than(self, fn):
-        strptime = datetime.datetime.strptime
-        with mock.patch('datetime.datetime') as datetime_mock:
-            datetime_mock.utcnow.return_value = self.skynet_self_aware_time
-            datetime_mock.strptime = strptime
-            expect_true = timeutils.is_older_than(fn(self.one_minute_before),
-                                                  59)
-            self.assertTrue(expect_true)
-            expect_false = timeutils.is_older_than(fn(self.one_minute_before),
-                                                   60)
-            self.assertFalse(expect_false)
-            expect_false = timeutils.is_older_than(fn(self.one_minute_before),
-                                                   61)
-            self.assertFalse(expect_false)
+    @mock.patch('datetime.datetime', wraps=datetime.datetime)
+    def _test_is_older_than(self, fn, datetime_mock):
+        datetime_mock.utcnow.return_value = self.skynet_self_aware_time
+        expect_true = timeutils.is_older_than(fn(self.one_minute_before),
+                                              59)
+        self.assertTrue(expect_true)
+        expect_false = timeutils.is_older_than(fn(self.one_minute_before),
+                                               60)
+        self.assertFalse(expect_false)
+        expect_false = timeutils.is_older_than(fn(self.one_minute_before),
+                                               61)
+        self.assertFalse(expect_false)
 
     def test_is_older_than_datetime(self):
         self._test_is_older_than(lambda x: x)
@@ -118,20 +116,18 @@
             tzinfo=iso8601.iso8601.FixedOffset(1, 0, 'foo')).replace(
                 hour=7))
 
-    def _test_is_newer_than(self, fn):
-        strptime = datetime.datetime.strptime
-        with mock.patch('datetime.datetime') as datetime_mock:
-            datetime_mock.utcnow.return_value = self.skynet_self_aware_time
-            datetime_mock.strptime = strptime
-            expect_true = timeutils.is_newer_than(fn(self.one_minute_after),
-                                                  59)
-            self.assertTrue(expect_true)
-            expect_false = timeutils.is_newer_than(fn(self.one_minute_after),
-                                                   60)
-            self.assertFalse(expect_false)
-            expect_false = timeutils.is_newer_than(fn(self.one_minute_after),
-                                                   61)
-            self.assertFalse(expect_false)
+    @mock.patch('datetime.datetime', wraps=datetime.datetime)
+    def _test_is_newer_than(self, fn, datetime_mock):
+        datetime_mock.utcnow.return_value = self.skynet_self_aware_time
+        expect_true = timeutils.is_newer_than(fn(self.one_minute_after),
+                                              59)
+        self.assertTrue(expect_true)
+        expect_false = timeutils.is_newer_than(fn(self.one_minute_after),
+                                               60)
+        self.assertFalse(expect_false)
+        expect_false = timeutils.is_newer_than(fn(self.one_minute_after),
+                                               61)
+        self.assertFalse(expect_false)
 
     def test_is_newer_than_datetime(self):
         self._test_is_newer_than(lambda x: x)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.utils-3.35.0/oslo_utils/tests/test_uuidutils.py 
new/oslo.utils-3.36.4/oslo_utils/tests/test_uuidutils.py
--- old/oslo.utils-3.35.0/oslo_utils/tests/test_uuidutils.py    2018-01-15 
22:05:34.000000000 +0100
+++ new/oslo.utils-3.36.4/oslo_utils/tests/test_uuidutils.py    2018-07-20 
03:08:41.000000000 +0200
@@ -33,7 +33,7 @@
         uuid_string = uuidutils.generate_uuid(dashed=False)
         self.assertIsInstance(uuid_string, str)
         self.assertEqual(len(uuid_string), 32)
-        self.assertFalse('-' in uuid_string)
+        self.assertNotIn('-', uuid_string)
 
     def test_is_uuid_like(self):
         self.assertTrue(uuidutils.is_uuid_like(str(uuid.uuid4())))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.utils-3.35.0/oslo_utils/timeutils.py 
new/oslo.utils-3.36.4/oslo_utils/timeutils.py
--- old/oslo.utils-3.35.0/oslo_utils/timeutils.py       2018-01-15 
22:05:34.000000000 +0100
+++ new/oslo.utils-3.36.4/oslo_utils/timeutils.py       2018-07-20 
03:08:41.000000000 +0200
@@ -55,7 +55,8 @@
                      if not subsecond
                      else _ISO8601_TIME_FORMAT_SUBSECOND)
     tz = at.tzinfo.tzname(None) if at.tzinfo else 'UTC'
-    st += ('Z' if tz == 'UTC' else tz)
+    # Need to handle either iso8601 or python UTC format
+    st += ('Z' if tz in ('UTC', 'UTC+00:00') else tz)
     return st
 
 
@@ -256,7 +257,9 @@
              minute=now.minute, second=now.second,
              microsecond=now.microsecond)
     if now.tzinfo:
-        d['tzname'] = now.tzinfo.tzname(None)
+        # Need to handle either iso8601 or python UTC format
+        tzname = now.tzinfo.tzname(None)
+        d['tzname'] = 'UTC' if tzname == 'UTC+00:00' else tzname
     return d
 
 
@@ -283,6 +286,8 @@
                            microsecond=tyme['microsecond'])
     tzname = tyme.get('tzname')
     if tzname:
+        # Need to handle either iso8601 or python UTC format
+        tzname = 'UTC' if tzname == 'UTC+00:00' else tzname
         tzinfo = pytz.timezone(tzname)
         dt = tzinfo.localize(dt)
     return dt
@@ -401,7 +406,7 @@
     monotonically increasing time providing function (which typically varies
     depending on operating system and python version).
 
-    .. _monotonic: https://pypi.python.org/pypi/monotonic/
+    .. _monotonic: https://pypi.org/project/monotonic/
 
     .. versionadded:: 1.4
     """
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.utils-3.35.0/releasenotes/source/index.rst 
new/oslo.utils-3.36.4/releasenotes/source/index.rst
--- old/oslo.utils-3.35.0/releasenotes/source/index.rst 2018-01-15 
22:05:34.000000000 +0100
+++ new/oslo.utils-3.36.4/releasenotes/source/index.rst 2018-07-20 
03:08:41.000000000 +0200
@@ -6,6 +6,7 @@
     :maxdepth: 1
 
     unreleased
+    queens
     pike
     ocata
     newton
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.utils-3.35.0/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po
 
new/oslo.utils-3.36.4/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po
--- 
old/oslo.utils-3.35.0/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po
  2018-01-15 22:05:34.000000000 +0100
+++ 
new/oslo.utils-3.36.4/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po
  2018-07-20 03:08:41.000000000 +0200
@@ -1,17 +1,18 @@
 # Andi Chandler <a...@gowling.com>, 2017. #zanata
+# Andi Chandler <a...@gowling.com>, 2018. #zanata
 msgid ""
 msgstr ""
-"Project-Id-Version: oslo.utils Release Notes 3.29.1.dev5\n"
+"Project-Id-Version: oslo.utils Release Notes\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-09-20 20:51+0000\n"
+"POT-Creation-Date: 2018-02-09 13:01+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:32+0000\n"
+"PO-Revision-Date: 2018-02-06 11:26+0000\n"
 "Last-Translator: Andi Chandler <a...@gowling.com>\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 "3.13.0"
@@ -41,6 +42,9 @@
 msgid "Pike Series Release Notes"
 msgstr "Pike Series Release Notes"
 
+msgid "Queens Series Release Notes"
+msgstr "Queens Series Release Notes"
+
 msgid "Unreleased Release Notes"
 msgstr "Unreleased Release Notes"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.utils-3.35.0/releasenotes/source/queens.rst 
new/oslo.utils-3.36.4/releasenotes/source/queens.rst
--- old/oslo.utils-3.35.0/releasenotes/source/queens.rst        1970-01-01 
01:00:00.000000000 +0100
+++ new/oslo.utils-3.36.4/releasenotes/source/queens.rst        2018-07-20 
03:08:41.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.utils-3.35.0/setup.cfg 
new/oslo.utils-3.36.4/setup.cfg
--- old/oslo.utils-3.35.0/setup.cfg     2018-01-15 22:08:44.000000000 +0100
+++ new/oslo.utils-3.36.4/setup.cfg     2018-07-20 03:11:33.000000000 +0200
@@ -22,15 +22,6 @@
 packages = 
        oslo_utils
 
-[build_sphinx]
-all-files = 1
-warning-is-error = 1
-source-dir = doc/source
-build-dir = doc/build
-
-[upload_sphinx]
-upload-dir = doc/build/html
-
 [compile_catalog]
 directory = oslo_utils/locale
 domain = oslo_utils
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.utils-3.35.0/test-requirements.txt 
new/oslo.utils-3.36.4/test-requirements.txt
--- old/oslo.utils-3.35.0/test-requirements.txt 2018-01-15 22:05:53.000000000 
+0100
+++ new/oslo.utils-3.36.4/test-requirements.txt 2018-07-20 03:08:41.000000000 
+0200
@@ -5,11 +5,11 @@
 hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0
 
 fixtures>=3.0.0 # Apache-2.0/BSD
-testrepository>=0.0.18 # Apache-2.0/BSD
 testscenarios>=0.4 # Apache-2.0/BSD
 testtools>=2.2.0 # MIT
-oslotest>=1.10.0 # Apache-2.0
+oslotest>=3.2.0 # Apache-2.0
 ddt>=1.0.1 # MIT
+stestr>=2.0.0 # Apache-2.0
 
 # when we can require tox>= 1.4, this can go into tox.ini:
 #  [testenv:cover]
@@ -20,7 +20,7 @@
 mock>=2.0.0 # BSD
 
 # used for oslotest cross-testing scripts
-oslo.config>=5.1.0 # Apache-2.0
+oslo.config>=5.2.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.utils-3.35.0/tox.ini 
new/oslo.utils-3.36.4/tox.ini
--- old/oslo.utils-3.35.0/tox.ini       2018-01-15 22:05:53.000000000 +0100
+++ new/oslo.utils-3.36.4/tox.ini       2018-07-20 03:08:41.000000000 +0200
@@ -8,25 +8,36 @@
   
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
   -r{toxinidir}/test-requirements.txt
   -r{toxinidir}/requirements.txt
-commands = python setup.py testr --slowest --testr-args='{posargs}'
+commands = stestr run --slowest {posargs}
+
+[testenv:py27]
+basepython = python2.7
 
 [testenv:pep8]
+basepython = python3
 commands =
   flake8
   # Run security linter
   bandit -r oslo_utils -x tests -n5
 
 [testenv:venv]
+basepython = python3
 commands = {posargs}
 
 [testenv:docs]
+basepython = python3
+whitelist_externals = rm
 deps = -r{toxinidir}/doc/requirements.txt
-commands = sphinx-build -b html doc/source doc/build/html
+commands =
+    rm -fr doc/build
+    sphinx-build -W -b html doc/source doc/build/html
 
 [testenv:cover]
+basepython = python3
 commands = python setup.py test --coverage --coverage-package-name=oslo_utils 
--testr-args='{posargs}'
 
 [testenv:bandit]
+basepython = python3
 commands = bandit -r oslo_utils -x tests -n5
 
 [flake8]
@@ -34,14 +45,14 @@
 show-source = True
 exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build,__init__.py
 
-[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_utils* 
--ignore-module=pkg_resources --ignore-file=oslo_utils/test.py 
--ignore-file=oslo_utils/tests/* oslo_utils
-
 [testenv:releasenotes]
+basepython = python3
 deps = -r{toxinidir}/doc/requirements.txt
 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