Hello community,

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

Package is "python-keystonemiddleware"

Fri Sep  7 15:37:41 2018 rev:7 rq:633076 version:5.2.0

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-keystonemiddleware/python-keystonemiddleware.changes
      2018-03-19 23:34:49.645038902 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-keystonemiddleware.new/python-keystonemiddleware.changes
 2018-09-07 15:37:45.966641667 +0200
@@ -1,0 +2,28 @@
+Mon Sep  3 17:17:48 UTC 2018 - cloud-de...@suse.de
+
+- update to version 5.2.0
+  - Only include response body if there's a response
+  - Fix the AttributeError: __exit__ error
+  - Update reno for stable/queens
+  - Imported Translations from Zanata
+  - Remove empty files
+  - Identify the keystone service when raising 503
+  - Fix KeystoneMiddleware memcachepool abstraction
+  - Double quote www_authenticate_uri
+  - Introduce new header for system-scoped tokens
+  - Properly zero out max_retries in test_http_error_not_cached_token
+  - Update links in README
+  - Don't rely on pbr ChangeLog for docs
+  - Update home-page url
+  - Follow the new PTI for document build
+  - Remove kwargs_to_fetch_token
+  - Add arguments for MemcacheClientPool init
+  - fix tox python3 overrides
+  - Switch coverage tox env to stestr
+  - Fix the doc CI failure
+  - Add option to disable using oslo_message notifier
+  - Fix the title in index.rst
+  - Updated from global requirements
+  - add lower-constraints job
+
+-------------------------------------------------------------------

Old:
----
  keystonemiddleware-4.21.0.tar.gz

New:
----
  keystonemiddleware-5.2.0.tar.gz

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

Other differences:
------------------
++++++ python-keystonemiddleware.spec ++++++
--- /var/tmp/diff_new_pack.mjmLh8/_old  2018-09-07 15:37:46.414641185 +0200
+++ /var/tmp/diff_new_pack.mjmLh8/_new  2018-09-07 15:37:46.414641185 +0200
@@ -18,54 +18,78 @@
 
 %global sname keystonemiddleware
 Name:           python-keystonemiddleware
-Version:        4.21.0
+Version:        5.2.0
 Release:        0
 Summary:        Middleware for OpenStack Identity
 License:        Apache-2.0
 Group:          Development/Languages/Python
-Url:            https://launchpad.net/%{sname}
+URL:            https://launchpad.net/%{sname}
 Source0:        
https://files.pythonhosted.org/packages/source/k/%{sname}/%{sname}-%{version}.tar.gz
+BuildRequires:  openssl
 BuildRequires:  openstack-macros
-BuildRequires:  python-WebOb >= 1.7.1
-BuildRequires:  python-WebTest >= 2.0.27
-BuildRequires:  python-fixtures >= 3.0.0
-BuildRequires:  python-keystoneauth1 >= 3.3.0
-BuildRequires:  python-keystoneclient >= 3.8.0
-BuildRequires:  python-mock >= 2.0.0
-BuildRequires:  python-oslo.cache >= 1.26.0
-BuildRequires:  python-oslo.config >= 5.1.0
-BuildRequires:  python-oslo.context >= 2.19.2
-BuildRequires:  python-oslo.i18n >= 3.15.3
-BuildRequires:  python-oslo.messaging >= 5.29.0
-BuildRequires:  python-oslo.serialization >= 2.18.0
-BuildRequires:  python-oslo.utils >= 3.33.0
-BuildRequires:  python-oslotest >= 3.2.0
-BuildRequires:  python-positional
-BuildRequires:  python-pycadf >= 1.1.0
-BuildRequires:  python-pycrypto >= 2.6
-BuildRequires:  python-python-memcached >= 1.56
-BuildRequires:  python-requests >= 2.14.2
-BuildRequires:  python-requests-mock >= 1.1.0
-BuildRequires:  python-six >= 1.10.0
-BuildRequires:  python-stevedore >= 1.20.0
-BuildRequires:  python-testrepository >= 0.0.18
-BuildRequires:  python-testresources >= 2.0.0
-BuildRequires:  python-testtools >= 2.2.0
+BuildRequires:  python2-WebOb >= 1.7.1
+BuildRequires:  python2-WebTest
+BuildRequires:  python2-cryptography
+BuildRequires:  python2-fixtures
+BuildRequires:  python2-keystoneauth1 >= 3.4.0
+BuildRequires:  python2-keystoneclient >= 3.8.0
+BuildRequires:  python2-mock
+BuildRequires:  python2-oslo.cache >= 1.26.0
+BuildRequires:  python2-oslo.config >= 5.2.0
+BuildRequires:  python2-oslo.context >= 2.19.2
+BuildRequires:  python2-oslo.i18n >= 3.15.3
+BuildRequires:  python2-oslo.messaging
+BuildRequires:  python2-oslo.serialization >= 2.18.0
+BuildRequires:  python2-oslo.utils >= 3.33.0
+BuildRequires:  python2-oslotest
+BuildRequires:  python2-pycadf >= 1.1.0
+BuildRequires:  python2-python-memcached
+BuildRequires:  python2-requests >= 2.14.2
+BuildRequires:  python2-requests-mock
+BuildRequires:  python2-six >= 1.10.0
+BuildRequires:  python2-stevedore
+BuildRequires:  python2-testrepository
+BuildRequires:  python2-testresources
+BuildRequires:  python2-testtools
+BuildRequires:  python3-WebOb >= 1.7.1
+BuildRequires:  python3-WebTest
+BuildRequires:  python3-cryptography
+BuildRequires:  python3-fixtures
+BuildRequires:  python3-keystoneauth1 >= 3.4.0
+BuildRequires:  python3-keystoneclient >= 3.8.0
+BuildRequires:  python3-mock
+BuildRequires:  python3-oslo.cache >= 1.26.0
+BuildRequires:  python3-oslo.config >= 5.2.0
+BuildRequires:  python3-oslo.context >= 2.19.2
+BuildRequires:  python3-oslo.i18n >= 3.15.3
+BuildRequires:  python3-oslo.messaging
+BuildRequires:  python3-oslo.serialization >= 2.18.0
+BuildRequires:  python3-oslo.utils >= 3.33.0
+BuildRequires:  python3-oslotest
+BuildRequires:  python3-pycadf >= 1.1.0
+BuildRequires:  python3-python-memcached
+BuildRequires:  python3-requests >= 2.14.2
+BuildRequires:  python3-requests-mock
+BuildRequires:  python3-six >= 1.10.0
+BuildRequires:  python3-stevedore
+BuildRequires:  python3-testrepository
+BuildRequires:  python3-testresources
+BuildRequires:  python3-testtools
 Requires:       python-WebOb >= 1.7.1
-Requires:       python-keystoneauth1 >= 3.3.0
+Requires:       python-keystoneauth1 >= 3.4.0
 Requires:       python-keystoneclient >= 3.8.0
 Requires:       python-oslo.cache >= 1.26.0
-Requires:       python-oslo.config >= 5.1.0
+Requires:       python-oslo.config >= 5.2.0
 Requires:       python-oslo.context >= 2.19.2
 Requires:       python-oslo.i18n >= 3.15.3
 Requires:       python-oslo.serialization >= 2.18.0
 Requires:       python-oslo.utils >= 3.33.0
-Requires:       python-positional
 Requires:       python-pycadf >= 1.1.0
-Requires:       python-python-memcached >= 1.56
+Requires:       python-python-memcached
 Requires:       python-requests >= 2.14.2
 Requires:       python-six >= 1.10.0
 BuildArch:      noarch
+%python_subpackages
 
 %description
 This package contains middleware modules designed to provide authentication
@@ -73,13 +97,14 @@
 The most prominent module is keystonemiddleware.auth_token. This package
 does not expose any CLI or Python API features.
 
-%package doc
+%package -n python-keystonemiddleware-doc
 Summary:        Documentation for Middleware for OpenStack Identity
 Group:          Development/Languages/Python
 BuildRequires:  python-Sphinx
-BuildRequires:  python-openstackdocstheme >= 1.18.1
+BuildRequires:  python-openstackdocstheme
+BuildRequires:  python-sphinxcontrib-apidoc
 
-%description doc
+%description -n python-keystonemiddleware-doc
 Documentation for Middleware for OpenStack Identity.
 
 %prep
@@ -88,27 +113,30 @@
 sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
 
 %build
-%{py2_build}
+%{python_build}
 
 %install
-%{py2_install}
+%{python_install}
 
 # generate html docs
-%{__python2} setup.py build_sphinx
+export PYTHONPATH=.
+PBR_VERSION=%{version} sphinx-build -b html doc/source doc/build/html
 # remove the sphinx-build leftovers
 rm -rf doc/build/html/.{doctrees,buildinfo}
 
 %check
 export PYTHONWARNINGS="ignore"
-%{__python2} setup.py testr
+%{python_expand rm -rf .testrepository
+$python setup.py testr
+}
 
-%files
+%files %python_files
 %license LICENSE
 %doc ChangeLog README.rst
 %{python2_sitelib}/%{sname}
 %{python2_sitelib}/*.egg-info
 
-%files doc
+%files -n python-keystonemiddleware-doc
 %doc doc/build/html
 %license LICENSE
 

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

++++++ keystonemiddleware-4.21.0.tar.gz -> keystonemiddleware-5.2.0.tar.gz 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keystonemiddleware-4.21.0/.zuul.yaml 
new/keystonemiddleware-5.2.0/.zuul.yaml
--- old/keystonemiddleware-4.21.0/.zuul.yaml    1970-01-01 01:00:00.000000000 
+0100
+++ new/keystonemiddleware-5.2.0/.zuul.yaml     2018-07-20 01:57:04.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/keystonemiddleware-4.21.0/AUTHORS 
new/keystonemiddleware-5.2.0/AUTHORS
--- old/keystonemiddleware-4.21.0/AUTHORS       2018-01-09 16:40:07.000000000 
+0100
+++ new/keystonemiddleware-5.2.0/AUTHORS        2018-07-20 02:00:20.000000000 
+0200
@@ -130,6 +130,7 @@
 Sean Winn <sean.w...@cloudscaling.com>
 Shevek <she...@nebula.com>
 Spencer Yu <yu...@gohighsec.com>
+Stefan Nica <sn...@suse.com>
 Steve Martinelli <s.martine...@gmail.com>
 Steve Martinelli <steve...@ca.ibm.com>
 Steven Hardy <sha...@redhat.com>
@@ -139,6 +140,7 @@
 Thomas Goirand <z...@debian.org>
 Thomas Herve <the...@redhat.com>
 Thomas Herve <thomas.he...@enovance.com>
+Tim Burke <tim.bu...@gmail.com>
 Tin Lam <t...@irrational.io>
 Tin Lam <tin...@gmail.com>
 Tom Cocozzello <tjcoc...@us.ibm.com>
@@ -172,10 +174,13 @@
 liuxiaoyang <liuxiaoy...@fiberhome.com>
 lrqrun <lrq...@gmail.com>
 mathrock <nathanael.i.burton.w...@gmail.com>
+melissaml <ma....@99cloud.net>
 nachiappan-veerappan-nachiappan <nachiappan.veerappan-nachiap...@hp.com>
 termie <git...@anarkystic.com>
 ubuntu <dikon...@in.ibm.com>
 wanghong <w.wangh...@huawei.com>
+wanghui <wang_...@inspur.com>
+wangxiyuan <wangxiy...@huawei.com>
 xingzhou <xingz...@cn.ibm.com>
 xuhaigang <haigang...@easystack.cn>
 zhang-jinnan <ben...@99cloud.net>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keystonemiddleware-4.21.0/ChangeLog 
new/keystonemiddleware-5.2.0/ChangeLog
--- old/keystonemiddleware-4.21.0/ChangeLog     2018-01-09 16:40:07.000000000 
+0100
+++ new/keystonemiddleware-5.2.0/ChangeLog      2018-07-20 02:00:20.000000000 
+0200
@@ -1,6 +1,49 @@
 CHANGES
 =======
 
+5.2.0
+-----
+
+* Fix KeystoneMiddleware memcachepool abstraction
+* fix tox python3 overrides
+* Follow the new PTI for document build
+* Switch coverage tox env to stestr
+* Fix the title in index.rst
+* Don't rely on pbr ChangeLog for docs
+
+5.1.0
+-----
+
+* Introduce new header for system-scoped tokens
+* Imported Translations from Zanata
+* Fix the doc CI failure
+* Double quote www\_authenticate\_uri
+* Only include response body if there's a response
+* Properly zero out max\_retries in test\_http\_error\_not\_cached\_token
+
+5.0.0
+-----
+
+* add lower-constraints job
+* Update links in README
+* Updated from global requirements
+* Updated from global requirements
+* Imported Translations from Zanata
+* Update home-page url
+* Remove empty files
+* Fix the AttributeError: \_\_exit\_\_ error
+* Add arguments for MemcacheClientPool init
+* Remove kwargs\_to\_fetch\_token
+* Identify the keystone service when raising 503
+* Add option to disable using oslo\_message notifier
+* Updated from global requirements
+* Imported Translations from Zanata
+* Update reno for stable/queens
+* Updated from global requirements
+* Updated from global requirements
+* Updated from global requirements
+* Imported Translations from Zanata
+
 4.21.0
 ------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keystonemiddleware-4.21.0/PKG-INFO 
new/keystonemiddleware-5.2.0/PKG-INFO
--- old/keystonemiddleware-4.21.0/PKG-INFO      2018-01-09 16:40:08.000000000 
+0100
+++ new/keystonemiddleware-5.2.0/PKG-INFO       2018-07-20 02:00:21.000000000 
+0200
@@ -1,18 +1,17 @@
-Metadata-Version: 1.1
+Metadata-Version: 2.1
 Name: keystonemiddleware
-Version: 4.21.0
+Version: 5.2.0
 Summary: Middleware for OpenStack Identity
-Home-page: https://docs.openstack.org/developer/keystonemiddleware/
+Home-page: https://docs.openstack.org/keystonemiddleware/latest/
 Author: OpenStack
 Author-email: openstack-...@lists.openstack.org
 License: UNKNOWN
-Description-Content-Type: UNKNOWN
 Description: ========================
         Team and repository tags
         ========================
         
-        .. image:: 
https://governance.openstack.org/badges/keystonemiddleware.svg
-            :target: https://governance.openstack.org/reference/tags/index.html
+        .. image:: 
https://governance.openstack.org/tc/badges/keystonemiddleware.svg
+            :target: 
https://governance.openstack.org/tc/reference/tags/index.html
         
         .. Change things from this point on
         
@@ -56,3 +55,5 @@
 Classifier: Programming Language :: Python :: 2.7
 Classifier: Programming Language :: Python :: 3
 Classifier: Programming Language :: Python :: 3.5
+Provides-Extra: audit_notifications
+Provides-Extra: test
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keystonemiddleware-4.21.0/README.rst 
new/keystonemiddleware-5.2.0/README.rst
--- old/keystonemiddleware-4.21.0/README.rst    2018-01-09 16:36:52.000000000 
+0100
+++ new/keystonemiddleware-5.2.0/README.rst     2018-07-20 01:57:04.000000000 
+0200
@@ -2,8 +2,8 @@
 Team and repository tags
 ========================
 
-.. image:: https://governance.openstack.org/badges/keystonemiddleware.svg
-    :target: https://governance.openstack.org/reference/tags/index.html
+.. image:: https://governance.openstack.org/tc/badges/keystonemiddleware.svg
+    :target: https://governance.openstack.org/tc/reference/tags/index.html
 
 .. Change things from this point on
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keystonemiddleware-4.21.0/doc/requirements.txt 
new/keystonemiddleware-5.2.0/doc/requirements.txt
--- old/keystonemiddleware-4.21.0/doc/requirements.txt  2018-01-09 
16:36:52.000000000 +0100
+++ new/keystonemiddleware-5.2.0/doc/requirements.txt   2018-07-20 
01:57:04.000000000 +0200
@@ -4,14 +4,15 @@
 
 # For generating sphinx documentation
 doc8>=0.6.0 # Apache-2.0
-openstackdocstheme>=1.17.0 # Apache-2.0
+openstackdocstheme>=1.18.1 # Apache-2.0
 reno>=2.5.0 # Apache-2.0
-sphinx>=1.6.2 # BSD
+sphinx!=1.6.6,!=1.6.7,>=1.6.2 # BSD
+sphinxcontrib-apidoc>=0.2.0  # BSD
 
 # For autodoc builds
 mock>=2.0.0 # BSD
-oslotest>=1.10.0 # Apache-2.0
-requests-mock>=1.1.0 # Apache-2.0
+oslotest>=3.2.0 # Apache-2.0
+requests-mock>=1.2.0 # Apache-2.0
 testresources>=2.0.0 # Apache-2.0/BSD
 python-memcached>=1.56 # PSF
 WebTest>=2.0.27 # MIT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keystonemiddleware-4.21.0/doc/source/conf.py 
new/keystonemiddleware-5.2.0/doc/source/conf.py
--- old/keystonemiddleware-4.21.0/doc/source/conf.py    2018-01-09 
16:36:52.000000000 +0100
+++ new/keystonemiddleware-5.2.0/doc/source/conf.py     2018-07-20 
01:57:04.000000000 +0200
@@ -10,7 +10,6 @@
 # All configuration values have a default; values that are commented out
 # serve to show the default.
 
-from __future__ import unicode_literals
 
 import os
 import sys
@@ -37,14 +36,23 @@
 # Add any Sphinx extension module names here, as strings. They can be
 # extensions
 # coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
-extensions = ['sphinx.ext.autodoc',
-              'sphinx.ext.todo',
+extensions = ['sphinx.ext.todo',
               'sphinx.ext.coverage',
               'sphinx.ext.intersphinx',
               'openstackdocstheme',
-              'oslo_config.sphinxconfiggen'
+              'oslo_config.sphinxconfiggen',
+              'sphinxcontrib.apidoc',
              ]
 
+# sphinxcontrib.apidoc options
+apidoc_module_dir = '../../keystonemiddleware'
+apidoc_output_dir = 'api'
+apidoc_excluded_paths = [
+    'tests/*',
+    'tests',
+    'test']
+apidoc_separate_modules = True
+
 config_generator_config_file = '../../config-generator/keystonemiddleware.conf'
 sample_config_basename = '_static/keystonemiddleware'
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keystonemiddleware-4.21.0/doc/source/history.rst 
new/keystonemiddleware-5.2.0/doc/source/history.rst
--- old/keystonemiddleware-4.21.0/doc/source/history.rst        2018-01-09 
16:36:52.000000000 +0100
+++ new/keystonemiddleware-5.2.0/doc/source/history.rst 1970-01-01 
01:00:00.000000000 +0100
@@ -1 +0,0 @@
-.. include:: ../../ChangeLog
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keystonemiddleware-4.21.0/doc/source/index.rst 
new/keystonemiddleware-5.2.0/doc/source/index.rst
--- old/keystonemiddleware-4.21.0/doc/source/index.rst  2018-01-09 
16:36:52.000000000 +0100
+++ new/keystonemiddleware-5.2.0/doc/source/index.rst   2018-07-20 
01:57:04.000000000 +0200
@@ -1,3 +1,4 @@
+=======================================================
 Python Middleware for OpenStack Identity API (Keystone)
 =======================================================
 
@@ -28,10 +29,9 @@
 Release Notes
 =============
 
-.. toctree::
-   :maxdepth: 1
+`Release Notes`_
 
-   history
+.. _Release Notes: https://docs.openstack.org/releasenotes/keystonemiddleware/
 
 Contributing
 ============
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/keystonemiddleware-4.21.0/keystonemiddleware/audit/__init__.py 
new/keystonemiddleware-5.2.0/keystonemiddleware/audit/__init__.py
--- old/keystonemiddleware-4.21.0/keystonemiddleware/audit/__init__.py  
2018-01-09 16:36:52.000000000 +0100
+++ new/keystonemiddleware-5.2.0/keystonemiddleware/audit/__init__.py   
2018-07-20 01:57:04.000000000 +0200
@@ -42,6 +42,13 @@
 AUDIT_MIDDLEWARE_GROUP = 'audit_middleware_notifications'
 
 _AUDIT_OPTS = [
+    cfg.BoolOpt('use_oslo_messaging',
+                default=True,
+                help='Indicate whether to use oslo_messaging as the notifier. '
+                     'If set to False, the local logger will be used as the '
+                     'notifier. If set to True, the oslo_messaging package '
+                     'must also be present. Otherwise, the local will be used '
+                     'instead.'),
     cfg.StrOpt('driver',
                help='The Driver to handle sending notifications. Possible '
                     'values are messaging, messagingv2, routing, log, test, '
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/keystonemiddleware-4.21.0/keystonemiddleware/audit/_notifier.py 
new/keystonemiddleware-5.2.0/keystonemiddleware/audit/_notifier.py
--- old/keystonemiddleware-4.21.0/keystonemiddleware/audit/_notifier.py 
2018-01-09 16:36:52.000000000 +0100
+++ new/keystonemiddleware-5.2.0/keystonemiddleware/audit/_notifier.py  
2018-07-20 01:57:04.000000000 +0200
@@ -41,7 +41,7 @@
 
 
 def create_notifier(conf, log):
-    if oslo_messaging:
+    if oslo_messaging and conf.get('use_oslo_messaging'):
         transport = oslo_messaging.get_notification_transport(
             conf.oslo_conf_obj,
             url=conf.get('transport_url'))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/keystonemiddleware-4.21.0/keystonemiddleware/auth_token/__init__.py 
new/keystonemiddleware-5.2.0/keystonemiddleware/auth_token/__init__.py
--- old/keystonemiddleware-4.21.0/keystonemiddleware/auth_token/__init__.py     
2018-01-09 16:36:52.000000000 +0100
+++ new/keystonemiddleware-5.2.0/keystonemiddleware/auth_token/__init__.py      
2018-07-20 01:57:04.000000000 +0200
@@ -72,6 +72,11 @@
     presented. This allows the underlying service to determine if a
     denial should use ``401 Unauthenticated`` or ``403 Forbidden``.
 
+HTTP_OPENSTACK_SYSTEM_SCOPE
+    A string relaying system information about the token's scope. This
+    attribute is only present if the token is system-scoped. The string ``all``
+    means the token is scoped to the entire deployment system.
+
 HTTP_X_DOMAIN_ID, HTTP_X_SERVICE_DOMAIN_ID
     Identity service managed unique identifier, string. Only present if
     this is a domain-scoped token.
@@ -215,7 +220,6 @@
 import binascii
 import copy
 import datetime
-import warnings
 
 from keystoneauth1 import access
 from keystoneauth1 import adapter
@@ -309,12 +313,6 @@
                                    perform.
     """
 
-    # NOTE(jamielennox): Default to True and remove in Queens. This is a
-    # compatibility flag to allow passing **kwargs to fetch_token(). This
-    # is basically to allow compatibility with keystone's override. We will
-    # assume all subclasses are ok with this being True in the Queens release.
-    kwargs_to_fetch_token = False
-
     def __init__(self,
                  app,
                  log=_LOG,
@@ -436,14 +434,7 @@
         # NOTE(edmondsw): strip the token to remove any whitespace that may
         # have been passed along in the header per bug 1689468
         token = token.strip()
-        if self.kwargs_to_fetch_token:
-            data = self.fetch_token(token, **kwargs)
-        else:
-            m = _('Implementations of auth_token must set '
-                  'kwargs_to_fetch_token this will be the required and '
-                  'assumed in Queens.')
-            warnings.warn(m)
-            data = self.fetch_token(token)
+        data = self.fetch_token(token, **kwargs)
 
         try:
             return data, access.create(body=data, auth_token=token)
@@ -549,8 +540,6 @@
     _SIGNING_CERT_FILE_NAME = 'signing_cert.pem'
     _SIGNING_CA_FILE_NAME = 'cacert.pem'
 
-    kwargs_to_fetch_token = True
-
     def __init__(self, app, conf):
         log = logging.getLogger(conf.get('log_name', __name__))
         log.info('Starting Keystone auth_token middleware')
@@ -695,7 +684,7 @@
 
     @property
     def _reject_auth_headers(self):
-        header_val = 'Keystone uri=\'%s\'' % self._www_authenticate_uri
+        header_val = 'Keystone uri="%s"' % self._www_authenticate_uri
         return [('WWW-Authenticate', header_val)]
 
     def _token_hashes(self, token):
@@ -778,7 +767,8 @@
                 ksm_exceptions.RevocationListError,
                 ksm_exceptions.ServiceError) as e:
             self.log.critical('Unable to validate token: %s', e)
-            raise webob.exc.HTTPServiceUnavailable()
+            raise webob.exc.HTTPServiceUnavailable(
+                'The Keystone service is temporarily unavailable.')
         except ksm_exceptions.InvalidToken:
             self.log.debug('Token validation failure.', exc_info=True)
             if token_hashes:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/keystonemiddleware-4.21.0/keystonemiddleware/auth_token/_cache.py 
new/keystonemiddleware-5.2.0/keystonemiddleware/auth_token/_cache.py
--- old/keystonemiddleware-4.21.0/keystonemiddleware/auth_token/_cache.py       
2018-01-09 16:36:52.000000000 +0100
+++ new/keystonemiddleware-5.2.0/keystonemiddleware/auth_token/_cache.py        
2018-07-20 01:57:18.000000000 +0200
@@ -88,16 +88,20 @@
 class _MemcacheClientPool(object):
     """An advanced memcached client pool that is eventlet safe."""
 
-    def __init__(self, memcache_servers, **kwargs):
+    def __init__(self, memcache_servers, arguments, **kwargs):
         # NOTE(sileht): This will import python-memcached, we don't want
         # it as hard dependency, so lazy load it.
         from oslo_cache import _memcache_pool
         self._pool = _memcache_pool.MemcacheClientPool(memcache_servers,
+                                                       arguments,
                                                        **kwargs)
 
     @contextlib.contextmanager
     def reserve(self):
-        with self._pool.get() as client:
+        # NOTE(morgan): We must use "acquire" if we want all the added context
+        # manager logic that places the connection back into the pool at the
+        # end of it's use.
+        with self._pool.acquire() as client:
             yield client
 
 
@@ -120,12 +124,17 @@
 
     def __init__(self, log, cache_time=None,
                  env_cache_name=None, memcached_servers=None,
-                 use_advanced_pool=False, **kwargs):
+                 use_advanced_pool=False, dead_retry=None, socket_timeout=None,
+                 **kwargs):
         self._LOG = log
         self._cache_time = cache_time
         self._env_cache_name = env_cache_name
         self._memcached_servers = memcached_servers
         self._use_advanced_pool = use_advanced_pool
+        self._arguments = {
+            'dead_retry': dead_retry,
+            'socket_timeout': socket_timeout
+        }
         self._memcache_pool_options = kwargs
 
         self._cache_pool = None
@@ -137,6 +146,7 @@
 
         elif self._use_advanced_pool and self._memcached_servers:
             return _MemcacheClientPool(self._memcached_servers,
+                                       self._arguments,
                                        **self._memcache_pool_options)
 
         else:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/keystonemiddleware-4.21.0/keystonemiddleware/auth_token/_identity.py 
new/keystonemiddleware-5.2.0/keystonemiddleware/auth_token/_identity.py
--- old/keystonemiddleware-4.21.0/keystonemiddleware/auth_token/_identity.py    
2018-01-09 16:37:07.000000000 +0100
+++ new/keystonemiddleware-5.2.0/keystonemiddleware/auth_token/_identity.py     
2018-07-20 01:57:04.000000000 +0200
@@ -234,9 +234,10 @@
             raise ksm_exceptions.ServiceError(msg)
         except ksa_exceptions.HttpError as e:
             self._LOG.error(
-                'Bad response code while validating token: %s',
-                e.http_status)
-            self._LOG.warning('Identity response: %s', e.response.text)
+                'Bad response code while validating token: %s %s',
+                e.http_status, e.message)
+            if hasattr(e.response, 'text'):
+                self._LOG.warning('Identity response: %s', e.response.text)
             msg = _('Failed to fetch token data from identity server')
             raise ksm_exceptions.ServiceError(msg)
         else:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/keystonemiddleware-4.21.0/keystonemiddleware/auth_token/_request.py 
new/keystonemiddleware-5.2.0/keystonemiddleware/auth_token/_request.py
--- old/keystonemiddleware-4.21.0/keystonemiddleware/auth_token/_request.py     
2018-01-09 16:36:52.000000000 +0100
+++ new/keystonemiddleware-5.2.0/keystonemiddleware/auth_token/_request.py      
2018-07-20 01:57:04.000000000 +0200
@@ -62,6 +62,13 @@
     return 'True' if auth_ref.is_admin_project else 'False'
 
 
+def _get_system_scope(auth_ref):
+    """Return the scope information of a system scoped token."""
+    if auth_ref.system_scoped:
+        if auth_ref.system.get('all'):
+            return 'all'
+
+
 # NOTE(jamielennox): this should probably be moved into its own file, but at
 # the moment there's no real logic here so just keep it locally.
 class _AuthTokenResponse(webob.Response):
@@ -95,6 +102,7 @@
     _SERVICE_STATUS_HEADER = 'X-Service-Identity-Status'
 
     _ADMIN_PROJECT_HEADER = 'X-Is-Admin-Project'
+    _SYSTEM_SCOPE_HEADER = 'OpenStack-System-Scope'
 
     _SERVICE_CATALOG_HEADER = 'X-Service-Catalog'
     _TOKEN_AUTH = 'keystone.token_auth'
@@ -154,6 +162,7 @@
     def _set_auth_headers(self, auth_ref, prefix):
         names = ','.join(auth_ref.role_names)
         self.headers[self._ROLES_TEMPLATE % prefix] = names
+        self.headers[self._SYSTEM_SCOPE_HEADER] = _get_system_scope(auth_ref)
 
         for header_tmplt, attr in self._HEADER_TEMPLATE.items():
             self.headers[header_tmplt % prefix] = getattr(auth_ref, attr)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/keystonemiddleware-4.21.0/keystonemiddleware/locale/en_GB/LC_MESSAGES/keystonemiddleware.po
 
new/keystonemiddleware-5.2.0/keystonemiddleware/locale/en_GB/LC_MESSAGES/keystonemiddleware.po
--- 
old/keystonemiddleware-4.21.0/keystonemiddleware/locale/en_GB/LC_MESSAGES/keystonemiddleware.po
     2018-01-09 16:36:52.000000000 +0100
+++ 
new/keystonemiddleware-5.2.0/keystonemiddleware/locale/en_GB/LC_MESSAGES/keystonemiddleware.po
      2018-07-20 01:57:04.000000000 +0200
@@ -1,17 +1,17 @@
 # Andi Chandler <a...@gowling.com>, 2017. #zanata
 msgid ""
 msgstr ""
-"Project-Id-Version: keystonemiddleware 4.17.1.dev30\n"
+"Project-Id-Version: keystonemiddleware VERSION\n"
 "Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n";
-"POT-Creation-Date: 2017-11-14 20:57+0000\n"
+"POT-Creation-Date: 2018-04-21 04: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-17 07:06+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 "Access key not provided"
@@ -37,13 +37,6 @@
 msgid "Identity server rejected authorization necessary to fetch token data"
 msgstr "Identity server rejected authorisation necessary to fetch token data"
 
-msgid ""
-"Implementations of auth_token must set kwargs_to_fetch_token this will be "
-"the required and assumed in Queens."
-msgstr ""
-"Implementations of auth_token must set kwargs_to_fetch_token this will be "
-"the required and assumed in Queens."
-
 msgid "Invalid MAC; data appears to be corrupted."
 msgstr "Invalid MAC; data appears to be corrupted."
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/keystonemiddleware-4.21.0/keystonemiddleware/locale/ko_KR/LC_MESSAGES/keystonemiddleware.po
 
new/keystonemiddleware-5.2.0/keystonemiddleware/locale/ko_KR/LC_MESSAGES/keystonemiddleware.po
--- 
old/keystonemiddleware-4.21.0/keystonemiddleware/locale/ko_KR/LC_MESSAGES/keystonemiddleware.po
     2018-01-09 16:36:52.000000000 +0100
+++ 
new/keystonemiddleware-5.2.0/keystonemiddleware/locale/ko_KR/LC_MESSAGES/keystonemiddleware.po
      2018-07-20 01:57:04.000000000 +0200
@@ -1,17 +1,17 @@
 # Ian Y. Choi <ianyrc...@gmail.com>, 2017. #zanata
 msgid ""
 msgstr ""
-"Project-Id-Version: keystonemiddleware 4.17.1.dev30\n"
+"Project-Id-Version: keystonemiddleware VERSION\n"
 "Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n";
-"POT-Creation-Date: 2017-11-14 20:57+0000\n"
+"POT-Creation-Date: 2018-02-20 19:27+0000\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "PO-Revision-Date: 2017-01-23 03:52+0000\n"
 "Last-Translator: Ian Y. Choi <ianyrc...@gmail.com>\n"
 "Language-Team: Korean (South Korea)\n"
-"Language: ko-KR\n"
-"X-Generator: Zanata 3.9.6\n"
+"Language: ko_KR\n"
+"X-Generator: Zanata 4.3.3\n"
 "Plural-Forms: nplurals=1; plural=0\n"
 
 msgid "Access key not provided"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/keystonemiddleware-4.21.0/keystonemiddleware/tests/unit/audit/test_audit_oslo_messaging.py
 
new/keystonemiddleware-5.2.0/keystonemiddleware/tests/unit/audit/test_audit_oslo_messaging.py
--- 
old/keystonemiddleware-4.21.0/keystonemiddleware/tests/unit/audit/test_audit_oslo_messaging.py
      2018-01-09 16:36:52.000000000 +0100
+++ 
new/keystonemiddleware-5.2.0/keystonemiddleware/tests/unit/audit/test_audit_oslo_messaging.py
       2018-07-20 01:57:04.000000000 +0200
@@ -12,6 +12,7 @@
 
 import mock
 
+from keystonemiddleware import audit
 from keystonemiddleware.tests.unit.audit import base
 
 
@@ -80,3 +81,13 @@
         self.assertTrue(m.called)
         # make sure first call kwarg 'url' is same as provided transport_url
         self.assertEqual(transport_url, m.call_args_list[0][1]['url'])
+
+    def test_do_not_use_oslo_messaging(self):
+        self.cfg.config(use_oslo_messaging=False,
+                        group='audit_middleware_notifications')
+        audit_middleware = self.create_simple_middleware()
+
+        # make sure it is using a local notifier instead of oslo_messaging
+        self.assertTrue(
+            isinstance(audit_middleware._notifier,
+                       audit._notifier._LogNotifier))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/keystonemiddleware-4.21.0/keystonemiddleware/tests/unit/auth_token/base.py 
new/keystonemiddleware-5.2.0/keystonemiddleware/tests/unit/auth_token/base.py
--- 
old/keystonemiddleware-4.21.0/keystonemiddleware/tests/unit/auth_token/base.py  
    2018-01-09 16:36:52.000000000 +0100
+++ 
new/keystonemiddleware-5.2.0/keystonemiddleware/tests/unit/auth_token/base.py   
    2018-07-20 01:57:04.000000000 +0200
@@ -15,6 +15,7 @@
 from oslo_config import fixture as cfg_fixture
 from oslo_log import log as logging
 from requests_mock.contrib import fixture as rm_fixture
+import six
 from six.moves import http_client
 import webob.dec
 
@@ -48,7 +49,8 @@
         return auth_token.AuthProtocol(_do_cb, opts)
 
     def call(self, middleware, method='GET', path='/', headers=None,
-             expected_status=http_client.OK):
+             expected_status=http_client.OK,
+             expected_body_string=None):
         req = webob.Request.blank(path)
         req.method = method
 
@@ -57,5 +59,7 @@
 
         resp = req.get_response(middleware)
         self.assertEqual(expected_status, resp.status_int)
+        if expected_body_string:
+            self.assertIn(expected_body_string, six.text_type(resp.body))
         resp.request = req
         return resp
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/keystonemiddleware-4.21.0/keystonemiddleware/tests/unit/auth_token/test_auth_token_middleware.py
 
new/keystonemiddleware-5.2.0/keystonemiddleware/tests/unit/auth_token/test_auth_token_middleware.py
--- 
old/keystonemiddleware-4.21.0/keystonemiddleware/tests/unit/auth_token/test_auth_token_middleware.py
        2018-01-09 16:36:52.000000000 +0100
+++ 
new/keystonemiddleware-5.2.0/keystonemiddleware/tests/unit/auth_token/test_auth_token_middleware.py
 2018-07-20 01:57:04.000000000 +0200
@@ -98,6 +98,7 @@
 VERSION_LIST_v2 = fixture.DiscoveryList(v3=False, href=BASE_URI)
 
 ERROR_TOKEN = '7ae290c2a06244c4b41692eb4e9225f2'
+TIMEOUT_TOKEN = '4ed1c5e53beee59458adcf8261a8cae2'
 
 
 def cleanup_revoked_file(filename):
@@ -955,37 +956,37 @@
 
         resp = self.call_middleware(headers={'X-Auth-Token': 'invalid-token'},
                                     expected_status=401)
-        self.assertEqual("Keystone uri='https://keystone.example.com:1234'",
+        self.assertEqual('Keystone uri="https://keystone.example.com:1234";',
                          resp.headers['WWW-Authenticate'])
 
     def test_request_invalid_signed_token(self):
         token = self.examples.INVALID_SIGNED_TOKEN
         resp = self.call_middleware(headers={'X-Auth-Token': token},
                                     expected_status=401)
-        self.assertEqual("Keystone uri='https://keystone.example.com:1234'",
+        self.assertEqual('Keystone uri="https://keystone.example.com:1234";',
                          resp.headers['WWW-Authenticate'])
 
     def test_request_invalid_signed_pkiz_token(self):
         token = self.examples.INVALID_SIGNED_PKIZ_TOKEN
         resp = self.call_middleware(headers={'X-Auth-Token': token},
                                     expected_status=401)
-        self.assertEqual("Keystone uri='https://keystone.example.com:1234'",
+        self.assertEqual('Keystone uri="https://keystone.example.com:1234";',
                          resp.headers['WWW-Authenticate'])
 
     def test_request_no_token(self):
         resp = self.call_middleware(expected_status=401)
-        self.assertEqual("Keystone uri='https://keystone.example.com:1234'",
+        self.assertEqual('Keystone uri="https://keystone.example.com:1234";',
                          resp.headers['WWW-Authenticate'])
 
     def test_request_no_token_http(self):
         resp = self.call_middleware(method='HEAD', expected_status=401)
-        self.assertEqual("Keystone uri='https://keystone.example.com:1234'",
+        self.assertEqual('Keystone uri="https://keystone.example.com:1234";',
                          resp.headers['WWW-Authenticate'])
 
     def test_request_blank_token(self):
         resp = self.call_middleware(headers={'X-Auth-Token': ''},
                                     expected_status=401)
-        self.assertEqual("Keystone uri='https://keystone.example.com:1234'",
+        self.assertEqual('Keystone uri="https://keystone.example.com:1234";',
                          resp.headers['WWW-Authenticate'])
 
     def _get_cached_token(self, token, mode='md5'):
@@ -1063,7 +1064,7 @@
         We use UUID tokens since they are the easiest one to reach
         get_http_connection.
         """
-        self.middleware._http_request_max_retries = 0
+        self.set_middleware(conf={'http_request_max_retries': '0'})
         self.call_middleware(headers={'X-Auth-Token': ERROR_TOKEN},
                              expected_status=503)
         self.assertIsNone(self._get_cached_token(ERROR_TOKEN))
@@ -1071,16 +1072,24 @@
 
     def test_http_request_max_retries(self):
         times_retry = 10
+        body_string = 'The Keystone service is temporarily unavailable.'
 
         conf = {'http_request_max_retries': '%s' % times_retry}
         self.set_middleware(conf=conf)
 
         with mock.patch('time.sleep') as mock_obj:
             self.call_middleware(headers={'X-Auth-Token': ERROR_TOKEN},
-                                 expected_status=503)
+                                 expected_status=503,
+                                 expected_body_string=body_string)
 
         self.assertEqual(mock_obj.call_count, times_retry)
 
+    def test_request_timeout(self):
+        self.call_middleware(headers={'X-Auth-Token': TIMEOUT_TOKEN},
+                             expected_status=503)
+        self.assertIsNone(self._get_cached_token(TIMEOUT_TOKEN))
+        self.assert_valid_last_url(TIMEOUT_TOKEN)
+
     def test_nocatalog(self):
         conf = {
             'include_service_catalog': 'False'
@@ -1117,7 +1126,7 @@
             self.assert_valid_last_url(token)
         else:
             self.assertEqual(401, resp.status_int)
-            msg = "Keystone uri='https://keystone.example.com:1234'"
+            msg = 'Keystone uri="https://keystone.example.com:1234";'
             self.assertEqual(msg, resp.headers['WWW-Authenticate'])
 
     def test_uuid_bind_token_disabled_with_kerb_user(self):
@@ -1543,6 +1552,11 @@
     raise ksa_exceptions.ConnectFailure("Network connection refused.")
 
 
+def request_timeout_response(request, context):
+    raise ksa_exceptions.RequestTimeout(
+        "Request to https://host/token/path timed out")
+
+
 class v2AuthTokenMiddlewareTest(BaseAuthTokenMiddlewareTest,
                                 CommonAuthTokenMiddlewareTest,
                                 testresources.ResourcedTestCase):
@@ -1616,6 +1630,9 @@
         url = '%s/v2.0/tokens/%s' % (BASE_URI, ERROR_TOKEN)
         self.requests_mock.get(url, text=network_error_response)
 
+        url = '%s/v2.0/tokens/%s' % (BASE_URI, TIMEOUT_TOKEN)
+        self.requests_mock.get(url, text=request_timeout_response)
+
         self.set_middleware()
 
     def assert_unscoped_default_tenant_auto_scopes(self, token):
@@ -1643,7 +1660,7 @@
         """Unscoped requests with no default tenant ID should be rejected."""
         resp = self.call_middleware(headers={'X-Auth-Token': token},
                                     expected_status=401)
-        self.assertEqual("Keystone uri='https://keystone.example.com:1234'",
+        self.assertEqual('Keystone uri="https://keystone.example.com:1234";',
                          resp.headers['WWW-Authenticate'])
 
     def test_unscoped_uuid_token_receives_401(self):
@@ -1822,6 +1839,8 @@
         if token_id == ERROR_TOKEN:
             msg = "Network connection refused."
             raise ksa_exceptions.ConnectFailure(msg)
+        elif token_id == TIMEOUT_TOKEN:
+            request_timeout_response(request, context)
 
         try:
             response = self.examples.JSON_TOKEN_RESPONSES[token_id]
@@ -1852,6 +1871,21 @@
                                       with_catalog=False)
         self.assertLastPath('/v3/auth/tokens')
 
+    def test_valid_system_scoped_token_request(self):
+        delta_expected_env = {
+            'HTTP_OPENSTACK_SYSTEM_SCOPE': 'all',
+            'HTTP_X_PROJECT_ID': None,
+            'HTTP_X_PROJECT_NAME': None,
+            'HTTP_X_PROJECT_DOMAIN_ID': None,
+            'HTTP_X_PROJECT_DOMAIN_NAME': None,
+            'HTTP_X_TENANT_ID': None,
+            'HTTP_X_TENANT_NAME': None,
+            'HTTP_X_TENANT': None
+        }
+        self.set_middleware(expected_env=delta_expected_env)
+        self.assert_valid_request_200(self.examples.v3_SYSTEM_SCOPED_TOKEN)
+        self.assertLastPath('/v3/auth/tokens')
+
     def test_domain_scoped_uuid_request(self):
         # Modify items compared to default token for a domain scope
         delta_expected_env = {
@@ -2011,7 +2045,7 @@
         resp = self.call(middleware, expected_status=401)
         self.assertEqual(six.b(body), resp.body)
 
-        self.assertEqual("Keystone uri='%s'" % www_authenticate_uri,
+        self.assertEqual('Keystone uri="%s"' % www_authenticate_uri,
                          resp.headers['WWW-Authenticate'])
 
     def test_delayed_auth_values(self):
@@ -2370,6 +2404,8 @@
         if token_id == ERROR_TOKEN:
             msg = "Network connection refused."
             raise ksc_exceptions.ConnectionRefused(msg)
+        elif token_id == TIMEOUT_TOKEN:
+            request_timeout_response(request, context)
 
         try:
             response = self.examples.JSON_TOKEN_RESPONSES[token_id]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/keystonemiddleware-4.21.0/keystonemiddleware/tests/unit/auth_token/test_base_middleware.py
 
new/keystonemiddleware-5.2.0/keystonemiddleware/tests/unit/auth_token/test_base_middleware.py
--- 
old/keystonemiddleware-4.21.0/keystonemiddleware/tests/unit/auth_token/test_base_middleware.py
      2018-01-09 16:36:52.000000000 +0100
+++ 
new/keystonemiddleware-5.2.0/keystonemiddleware/tests/unit/auth_token/test_base_middleware.py
       2018-07-20 01:57:04.000000000 +0200
@@ -31,8 +31,6 @@
 
 class FetchingMiddleware(auth_token.BaseAuthProtocol):
 
-    kwargs_to_fetch_token = True
-
     def __init__(self, app, token_dict={}, **kwargs):
         super(FetchingMiddleware, self).__init__(app, **kwargs)
         self.token_dict = token_dict
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/keystonemiddleware-4.21.0/keystonemiddleware/tests/unit/auth_token/test_cache.py
 
new/keystonemiddleware-5.2.0/keystonemiddleware/tests/unit/auth_token/test_cache.py
--- 
old/keystonemiddleware-4.21.0/keystonemiddleware/tests/unit/auth_token/test_cache.py
        2018-01-09 16:36:52.000000000 +0100
+++ 
new/keystonemiddleware-5.2.0/keystonemiddleware/tests/unit/auth_token/test_cache.py
 2018-07-20 01:57:18.000000000 +0200
@@ -12,8 +12,10 @@
 
 import uuid
 
+import fixtures
 import six
 
+from keystonemiddleware.auth_token import _cache
 from keystonemiddleware.auth_token import _exceptions as exc
 from keystonemiddleware.tests.unit.auth_token import base
 from keystonemiddleware.tests.unit import utils
@@ -150,3 +152,39 @@
         token_cache.initialize({})
         token_cache.set(token, data)
         self.assertEqual(token_cache.get(token), data)
+
+    def test_memcache_pool(self):
+        conf = {
+            'memcached_servers': ','.join(MEMCACHED_SERVERS),
+            'memcache_use_advanced_pool': True
+        }
+
+        token = six.b(uuid.uuid4().hex)
+        data = uuid.uuid4().hex
+
+        token_cache = self.create_simple_middleware(conf=conf)._token_cache
+        token_cache.initialize({})
+
+        token_cache.set(token, data)
+        self.assertEqual(token_cache.get(token), data)
+
+
+class TestMemcachePoolAbstraction(utils.TestCase):
+    def setUp(self):
+        super(TestMemcachePoolAbstraction, self).setUp()
+        self.useFixture(fixtures.MockPatch(
+            'oslo_cache._memcache_pool._MemcacheClient'))
+
+    def test_abstraction_layer_reserve_places_connection_back_in_pool(self):
+        cache_pool = _cache._MemcacheClientPool(
+            memcache_servers=[], arguments={}, maxsize=1, unused_timeout=10)
+        conn = None
+        with cache_pool.reserve() as client:
+            self.assertEqual(cache_pool._pool._acquired, 1)
+            conn = client
+
+        self.assertEqual(cache_pool._pool._acquired, 0)
+        with cache_pool.reserve() as client:
+            # Make sure the connection we got before is in-fact the one we
+            # get again.
+            self.assertEqual(conn, client)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/keystonemiddleware-4.21.0/keystonemiddleware/tests/unit/client_fixtures.py 
new/keystonemiddleware-5.2.0/keystonemiddleware/tests/unit/client_fixtures.py
--- 
old/keystonemiddleware-4.21.0/keystonemiddleware/tests/unit/client_fixtures.py  
    2018-01-09 16:36:52.000000000 +0100
+++ 
new/keystonemiddleware-5.2.0/keystonemiddleware/tests/unit/client_fixtures.py   
    2018-07-20 01:57:04.000000000 +0200
@@ -127,6 +127,7 @@
         self.v3_UUID_TOKEN_DOMAIN_SCOPED = 'e8a7b63aaa4449f38f0c5c05c3581792'
         self.v3_UUID_TOKEN_BIND = '2f61f73e1c854cbb9534c487f9bd63c2'
         self.v3_UUID_TOKEN_UNKNOWN_BIND = '7ed9781b62cd4880b8d8c6788ab1d1e2'
+        self.v3_SYSTEM_SCOPED_TOKEN = '9ca6e88364b6418a88ffc02e6a24afd8'
 
         self.UUID_SERVICE_TOKEN_DEFAULT = 'fe4c0710ec2f492748596c1b53ab124'
         self.UUID_SERVICE_TOKEN_BIND = '5e43439613d34a13a7e03b2762bd08ab'
@@ -382,6 +383,17 @@
 
         token = fixture.V3Token(user_id=USER_ID,
                                 user_name=USER_NAME,
+                                user_domain_id=DOMAIN_ID,
+                                user_domain_name=DOMAIN_NAME)
+        token.system = {'all': True}
+        token.add_role(id=ROLE_NAME1, name=ROLE_NAME1)
+        token.add_role(id=ROLE_NAME2, name=ROLE_NAME2)
+        svc = token.add_service(self.SERVICE_TYPE)
+        svc.add_endpoint('public', self.SERVICE_URL)
+        self.TOKEN_RESPONSES[self.v3_SYSTEM_SCOPED_TOKEN] = token
+
+        token = fixture.V3Token(user_id=USER_ID,
+                                user_name=USER_NAME,
                                 user_domain_id=DOMAIN_ID,
                                 user_domain_name=DOMAIN_NAME,
                                 domain_id=DOMAIN_ID,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/keystonemiddleware-4.21.0/keystonemiddleware.egg-info/PKG-INFO 
new/keystonemiddleware-5.2.0/keystonemiddleware.egg-info/PKG-INFO
--- old/keystonemiddleware-4.21.0/keystonemiddleware.egg-info/PKG-INFO  
2018-01-09 16:40:07.000000000 +0100
+++ new/keystonemiddleware-5.2.0/keystonemiddleware.egg-info/PKG-INFO   
2018-07-20 02:00:20.000000000 +0200
@@ -1,18 +1,17 @@
-Metadata-Version: 1.1
+Metadata-Version: 2.1
 Name: keystonemiddleware
-Version: 4.21.0
+Version: 5.2.0
 Summary: Middleware for OpenStack Identity
-Home-page: https://docs.openstack.org/developer/keystonemiddleware/
+Home-page: https://docs.openstack.org/keystonemiddleware/latest/
 Author: OpenStack
 Author-email: openstack-...@lists.openstack.org
 License: UNKNOWN
-Description-Content-Type: UNKNOWN
 Description: ========================
         Team and repository tags
         ========================
         
-        .. image:: 
https://governance.openstack.org/badges/keystonemiddleware.svg
-            :target: https://governance.openstack.org/reference/tags/index.html
+        .. image:: 
https://governance.openstack.org/tc/badges/keystonemiddleware.svg
+            :target: 
https://governance.openstack.org/tc/reference/tags/index.html
         
         .. Change things from this point on
         
@@ -56,3 +55,5 @@
 Classifier: Programming Language :: Python :: 2.7
 Classifier: Programming Language :: Python :: 3
 Classifier: Programming Language :: Python :: 3.5
+Provides-Extra: audit_notifications
+Provides-Extra: test
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/keystonemiddleware-4.21.0/keystonemiddleware.egg-info/SOURCES.txt 
new/keystonemiddleware-5.2.0/keystonemiddleware.egg-info/SOURCES.txt
--- old/keystonemiddleware-4.21.0/keystonemiddleware.egg-info/SOURCES.txt       
2018-01-09 16:40:08.000000000 +0100
+++ new/keystonemiddleware-5.2.0/keystonemiddleware.egg-info/SOURCES.txt        
2018-07-20 02:00:21.000000000 +0200
@@ -1,6 +1,7 @@
 .coveragerc
 .stestr.conf
 .testr.conf
+.zuul.yaml
 AUTHORS
 CONTRIBUTING.rst
 ChangeLog
@@ -8,6 +9,7 @@
 LICENSE
 README.rst
 babel.cfg
+lower-constraints.txt
 requirements.txt
 setup.cfg
 setup.py
@@ -21,7 +23,6 @@
 doc/ext/apidoc.py
 doc/source/audit.rst
 doc/source/conf.py
-doc/source/history.rst
 doc/source/index.rst
 doc/source/installation.rst
 doc/source/middlewarearchitecture.rst
@@ -53,7 +54,6 @@
 examples/pki/cms/auth_v3_token_scoped.json
 examples/pki/cms/auth_v3_token_scoped.pem
 examples/pki/cms/auth_v3_token_scoped.pkiz
-examples/pki/cms/revocation_list.der
 examples/pki/cms/revocation_list.json
 examples/pki/cms/revocation_list.pem
 examples/pki/cms/revocation_list.pkiz
@@ -134,11 +134,17 @@
 releasenotes/notes/bug-1583699-dba4fe6c057e2be5.yaml
 releasenotes/notes/bug-1583702-a4469dc1556878b9.yaml
 releasenotes/notes/bug-1677308-a2fa7de67f21cd84.yaml
+releasenotes/notes/bug-1695038-2cbedcabf8ecc057.yaml
 releasenotes/notes/bug-1737115-fa3d41e3d3cd7177.yaml
 releasenotes/notes/bug-1737119-4afe548d28fbf8bb.yaml
+releasenotes/notes/bug-1747655-6e563d9317bb0f13.yaml
+releasenotes/notes/bug-1762362-3d092b15c7bab3a4.yaml
+releasenotes/notes/bug-1766731-3b29192cfeb77964.yaml
+releasenotes/notes/bug-1782404-c4e37bbc83756a89.yaml
 releasenotes/notes/bug_1540115-677cf5016bc46348.yaml
 releasenotes/notes/deprecate-caching-tokens-in-process-a412b0f1dea84cb9.yaml
 releasenotes/notes/ksm_4.1.0-3cd78446d8e63616.yaml
+releasenotes/notes/remove_kwargs_to_fetch_token-20e3451ed192ab6a.yaml
 releasenotes/notes/rename-auth-uri-d223d883f5898aee.yaml
 releasenotes/notes/s3token_auth_uri-490c1287d90b9df7.yaml
 releasenotes/notes/x-is-admin-project-header-97f1882e209fe727.yaml
@@ -148,6 +154,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/keystonemiddleware-4.21.0/keystonemiddleware.egg-info/pbr.json 
new/keystonemiddleware-5.2.0/keystonemiddleware.egg-info/pbr.json
--- old/keystonemiddleware-4.21.0/keystonemiddleware.egg-info/pbr.json  
2018-01-09 16:40:07.000000000 +0100
+++ new/keystonemiddleware-5.2.0/keystonemiddleware.egg-info/pbr.json   
2018-07-20 02:00:20.000000000 +0200
@@ -1 +1 @@
-{"git_version": "f1f2c4a", "is_release": true}
\ No newline at end of file
+{"git_version": "c46f292", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/keystonemiddleware-4.21.0/keystonemiddleware.egg-info/requires.txt 
new/keystonemiddleware-5.2.0/keystonemiddleware.egg-info/requires.txt
--- old/keystonemiddleware-4.21.0/keystonemiddleware.egg-info/requires.txt      
2018-01-09 16:40:07.000000000 +0100
+++ new/keystonemiddleware-5.2.0/keystonemiddleware.egg-info/requires.txt       
2018-07-20 02:00:20.000000000 +0200
@@ -1,11 +1,11 @@
-keystoneauth1>=3.3.0
+keystoneauth1>=3.4.0
 oslo.cache>=1.26.0
-oslo.config>=5.1.0
+oslo.config>=5.2.0
 oslo.context>=2.19.2
 oslo.i18n>=3.15.3
-oslo.log>=3.30.0
+oslo.log>=3.36.0
 oslo.serialization!=2.19.1,>=2.18.0
-oslo.utils>=3.31.0
+oslo.utils>=3.33.0
 pbr!=2.1.0,>=2.0.0
 pycadf!=2.0.0,>=1.1.0
 python-keystoneclient>=3.8.0
@@ -15,3 +15,20 @@
 
 [audit_notifications]
 oslo.messaging>=5.29.0
+
+[test]
+hacking<0.11,>=0.10.0
+flake8-docstrings==0.2.1.post1
+coverage!=4.4,>=4.0
+cryptography>=2.1
+fixtures>=3.0.0
+mock>=2.0.0
+oslotest>=3.2.0
+requests-mock>=1.2.0
+stevedore>=1.20.0
+stestr
+testresources>=2.0.0
+testtools>=2.2.0
+python-memcached>=1.56
+WebTest>=2.0.27
+bandit>=1.1.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keystonemiddleware-4.21.0/lower-constraints.txt 
new/keystonemiddleware-5.2.0/lower-constraints.txt
--- old/keystonemiddleware-4.21.0/lower-constraints.txt 1970-01-01 
01:00:00.000000000 +0100
+++ new/keystonemiddleware-5.2.0/lower-constraints.txt  2018-07-20 
01:57:04.000000000 +0200
@@ -0,0 +1,85 @@
+appdirs==1.4.3
+asn1crypto==0.24.0
+Babel==2.5.3
+bandit==1.1.0
+beautifulsoup4==4.6.0
+certifi==2018.1.18
+cffi==1.11.5
+chardet==3.0.4
+cliff==2.11.0
+cmd2==0.8.1
+coverage==4.0
+cryptography==2.1
+debtcollector==1.19.0
+dogpile.cache==0.6.5
+dulwich==0.19.0
+extras==1.0.0
+fixtures==3.0.0
+flake8-docstrings==0.2.1.post1
+flake8==2.2.4
+future==0.16.0
+gitdb2==2.0.3
+GitPython==2.1.8
+hacking==0.10.0
+idna==2.6
+iso8601==0.1.12
+keystoneauth1==3.4.0
+linecache2==1.0.0
+mccabe==0.2.1
+mock==2.0.0
+monotonic==1.4
+mox3==0.25.0
+msgpack==0.5.6
+netaddr==0.7.19
+netifaces==0.10.6
+openstack-requirements==1.2.0
+os-client-config==1.29.0
+os-testr==1.0.0
+oslo.cache==1.26.0
+oslo.config==5.2.0
+oslo.context==2.19.2
+oslo.i18n==3.15.3
+oslo.log==3.36.0
+oslo.messaging==5.29.0
+oslo.serialization==2.18.0
+oslo.utils==3.33.0
+oslotest==3.2.0
+packaging==17.1
+Parsley==1.3
+pbr==2.0.0
+pep257==0.7.0
+pep8==1.5.7
+prettytable==0.7.2
+pycadf==1.1.0
+pycparser==2.18
+pyflakes==0.8.1
+pyinotify==0.9.6
+pyparsing==2.2.0
+pyperclip==1.6.0
+python-dateutil==2.7.0
+python-keystoneclient==3.8.0
+python-memcached==1.56
+python-mimeparse==1.6.0
+python-subunit==1.2.0
+pytz==2018.3
+PyYAML==3.12
+reno==2.5.0
+requests-mock==1.2.0
+requests==2.14.2
+requestsexceptions==1.4.0
+rfc3986==1.1.0
+six==1.10.0
+smmap2==2.0.3
+stestr==2.0.0
+stevedore==1.20.0
+testrepository==0.0.18
+testresources==2.0.0
+testtools==2.2.0
+traceback2==1.4.0
+unittest2==1.1.0
+urllib3==1.22
+voluptuous==0.11.1
+waitress==1.1.0
+WebOb==1.7.1
+WebTest==2.0.27
+wrapt==1.10.11
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/keystonemiddleware-4.21.0/releasenotes/notes/bug-1695038-2cbedcabf8ecc057.yaml
 
new/keystonemiddleware-5.2.0/releasenotes/notes/bug-1695038-2cbedcabf8ecc057.yaml
--- 
old/keystonemiddleware-4.21.0/releasenotes/notes/bug-1695038-2cbedcabf8ecc057.yaml
  1970-01-01 01:00:00.000000000 +0100
+++ 
new/keystonemiddleware-5.2.0/releasenotes/notes/bug-1695038-2cbedcabf8ecc057.yaml
   2018-07-20 01:57:04.000000000 +0200
@@ -0,0 +1,13 @@
+---
+features:
+  - >
+    [`bug 1695038 
<https://bugs.launchpad.net/keystonemiddleware/+bug/1695038>`_]
+    The use_oslo_messaging configuration option is added for services such as
+    Swift, which need the audit middleware to use the local logger instead of
+    the oslo.messaging notifier regardless of whether the oslo.messaging 
package
+    is present or not.
+    Leave this option set to its default True value to keep the previous 
behavior
+    unchanged - the audit middleware will use the oslo.messaging notifier if 
the
+    oslo.messaging package is present, and the local logger otherwise.
+    Services that rely on the local logger for audit notifications must set 
this
+    option to False.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/keystonemiddleware-4.21.0/releasenotes/notes/bug-1747655-6e563d9317bb0f13.yaml
 
new/keystonemiddleware-5.2.0/releasenotes/notes/bug-1747655-6e563d9317bb0f13.yaml
--- 
old/keystonemiddleware-4.21.0/releasenotes/notes/bug-1747655-6e563d9317bb0f13.yaml
  1970-01-01 01:00:00.000000000 +0100
+++ 
new/keystonemiddleware-5.2.0/releasenotes/notes/bug-1747655-6e563d9317bb0f13.yaml
   2018-07-20 01:57:04.000000000 +0200
@@ -0,0 +1,9 @@
+---
+fixes:
+  - |
+    [`bug/1747655 
<https://bugs.launchpad.net/keystonemiddleware/+bug/1747655>`_]
+    When keystone is temporarily unavailable, keystonemiddleware correctly
+    sends a 503 response to the HTTP client but was not identifying which
+    service was down, leading to confusion on whether it was keystone or the
+    service using keystonemiddleware that was unavailable. This change
+    identifies keystone in the error response.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/keystonemiddleware-4.21.0/releasenotes/notes/bug-1762362-3d092b15c7bab3a4.yaml
 
new/keystonemiddleware-5.2.0/releasenotes/notes/bug-1762362-3d092b15c7bab3a4.yaml
--- 
old/keystonemiddleware-4.21.0/releasenotes/notes/bug-1762362-3d092b15c7bab3a4.yaml
  1970-01-01 01:00:00.000000000 +0100
+++ 
new/keystonemiddleware-5.2.0/releasenotes/notes/bug-1762362-3d092b15c7bab3a4.yaml
   2018-07-20 01:57:04.000000000 +0200
@@ -0,0 +1,6 @@
+---
+features:
+  - >
+    [`bug 1762362 
<https://bugs.launchpad.net/keystonemiddleware/+bug/1762362>`_]
+    The value of the header "WWW-Authenticate" in a 401 (Unauthorized) response
+    now is double quoted to follow the RFC requirement.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/keystonemiddleware-4.21.0/releasenotes/notes/bug-1766731-3b29192cfeb77964.yaml
 
new/keystonemiddleware-5.2.0/releasenotes/notes/bug-1766731-3b29192cfeb77964.yaml
--- 
old/keystonemiddleware-4.21.0/releasenotes/notes/bug-1766731-3b29192cfeb77964.yaml
  1970-01-01 01:00:00.000000000 +0100
+++ 
new/keystonemiddleware-5.2.0/releasenotes/notes/bug-1766731-3b29192cfeb77964.yaml
   2018-07-20 01:57:04.000000000 +0200
@@ -0,0 +1,7 @@
+---
+fixes:
+  - |
+    [`bug 1766731 
<https://bugs.launchpad.net/keystonemiddleware/+bug/1766731>`_]
+    Keystonemiddleware now supports system scoped tokens. When a system-scoped
+    token is parsed by auth_token middleware, it will set the
+    ``OpenStack-System-Scope`` header accordingly.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/keystonemiddleware-4.21.0/releasenotes/notes/bug-1782404-c4e37bbc83756a89.yaml
 
new/keystonemiddleware-5.2.0/releasenotes/notes/bug-1782404-c4e37bbc83756a89.yaml
--- 
old/keystonemiddleware-4.21.0/releasenotes/notes/bug-1782404-c4e37bbc83756a89.yaml
  1970-01-01 01:00:00.000000000 +0100
+++ 
new/keystonemiddleware-5.2.0/releasenotes/notes/bug-1782404-c4e37bbc83756a89.yaml
   2018-07-20 01:57:18.000000000 +0200
@@ -0,0 +1,8 @@
+---
+fixes:
+  - >
+    [`bug 1782404 
<https://bugs.launchpad.net/keystonemiddleware/+bug/1782404>`_]
+    Keystonemiddleware incorrectly implemented an abstraction for the memcache
+    client pool that utilized a `queue.Queue` `get` method instead of the
+    supplied `acquire()` context manager. The `acquire()` context manager
+    properly places the client connection back into the pool after `__exit__`.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/keystonemiddleware-4.21.0/releasenotes/notes/remove_kwargs_to_fetch_token-20e3451ed192ab6a.yaml
 
new/keystonemiddleware-5.2.0/releasenotes/notes/remove_kwargs_to_fetch_token-20e3451ed192ab6a.yaml
--- 
old/keystonemiddleware-4.21.0/releasenotes/notes/remove_kwargs_to_fetch_token-20e3451ed192ab6a.yaml
 1970-01-01 01:00:00.000000000 +0100
+++ 
new/keystonemiddleware-5.2.0/releasenotes/notes/remove_kwargs_to_fetch_token-20e3451ed192ab6a.yaml
  2018-07-20 01:57:04.000000000 +0200
@@ -0,0 +1,6 @@
+---
+other:
+  - >
+    The ``kwargs_to_fetch_token`` setting was removed from the
+    ``BaseAuthProtocol`` class. Implementations of auth_token now assume kwargs
+    will be passed to the ``fetch_token`` method.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/keystonemiddleware-4.21.0/releasenotes/source/index.rst 
new/keystonemiddleware-5.2.0/releasenotes/source/index.rst
--- old/keystonemiddleware-4.21.0/releasenotes/source/index.rst 2018-01-09 
16:36:52.000000000 +0100
+++ new/keystonemiddleware-5.2.0/releasenotes/source/index.rst  2018-07-20 
01:57:04.000000000 +0200
@@ -6,6 +6,7 @@
    :maxdepth: 1
 
    unreleased
+   queens
    pike
    ocata
    newton
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/keystonemiddleware-4.21.0/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po
 
new/keystonemiddleware-5.2.0/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po
--- 
old/keystonemiddleware-4.21.0/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po
  2018-01-09 16:37:07.000000000 +0100
+++ 
new/keystonemiddleware-5.2.0/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po
   2018-07-20 01:57:04.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: keystonemiddleware Release Notes\n"
+"Project-Id-Version: keystonemiddleware\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-12-20 21:10+0000\n"
+"POT-Creation-Date: 2018-04-21 04: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-12-23 11:14+0000\n"
+"PO-Revision-Date: 2018-04-30 10:08+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 "4.1.0"
@@ -26,12 +27,12 @@
 msgid "4.18.0"
 msgstr "4.18.0"
 
-msgid "4.19.0-4"
-msgstr "4.19.0-4"
-
 msgid "4.2.0"
 msgstr "4.2.0"
 
+msgid "4.20.0"
+msgstr "4.20.0"
+
 msgid "4.3.0"
 msgstr "4.3.0"
 
@@ -41,6 +42,12 @@
 msgid "4.6.0"
 msgstr "4.6.0"
 
+msgid "5.0.0"
+msgstr "5.0.0"
+
+msgid "5.0.0-5"
+msgstr "5.0.0-5"
+
 msgid ""
 "A new configuration option for the s3token middleware called auth_uri can be "
 "used to set the URI to be used for authentication. This replaces auth_host, "
@@ -116,12 +123,18 @@
 msgid "Ocata Series Release Notes"
 msgstr "Ocata Series Release Notes"
 
+msgid "Other Notes"
+msgstr "Other Notes"
+
 msgid "Pike Series Release Notes"
 msgstr "Pike Series Release Notes"
 
 msgid "Prelude"
 msgstr "Prelude"
 
+msgid "Queens Series Release Notes"
+msgstr "Queens Series Release Notes"
+
 msgid "Security Issues"
 msgstr "Security Issues"
 
@@ -158,6 +171,15 @@
 "releases."
 
 msgid ""
+"The ``kwargs_to_fetch_token`` setting was removed from the "
+"``BaseAuthProtocol`` class. Implementations of auth_token now assume kwargs "
+"will be passed to the ``fetch_token`` method."
+msgstr ""
+"The ``kwargs_to_fetch_token`` setting was removed from the "
+"``BaseAuthProtocol`` class. Implementations of auth_token now assume kwargs "
+"will be passed to the ``fetch_token`` method."
+
+msgid ""
 "The auth_host, auth_port, and auth_protocol configuration options to the "
 "s3token middleware are now deprecated."
 msgstr ""
@@ -272,23 +294,6 @@
 "existing configuration."
 
 msgid ""
-"[`bug 1540022 <https://bugs.launchpad.net/keystonemiddleware/";
-"+bug/1540022>`_] The auth_token middleware will now accept a conf setting "
-"named ``oslo_config_config``. If this is set its value must be an existing "
-"oslo_config `ConfigOpts`. ``oslo_config_config`` takes precedence over "
-"``oslo_config_project``. This feature is useful to applications that are "
-"instantiating the auth_token middleware themselves and wish to use an "
-"existing configuration."
-msgstr ""
-"[`bug 1540022 <https://bugs.launchpad.net/keystonemiddleware/";
-"+bug/1540022>`_] The auth_token middleware will now accept a conf setting "
-"named ``oslo_config_config``. If this is set its value must be an existing "
-"oslo_config `ConfigOpts`. ``oslo_config_config`` takes precedence over "
-"``oslo_config_project``. This feature is useful to applications that are "
-"instantiating the auth_token middleware themselves and wish to use an "
-"existing configuration."
-
-msgid ""
 "[`bug 1540115 <https://bugs.launchpad.net/keystonemiddleware/";
 "+bug/1540115>`_] Optional dependencies can now be installed using `extras`. "
 "To install audit related libraries, use ``pip install "
@@ -384,6 +389,27 @@
 "``cryptography``."
 
 msgid ""
+"[`bug 1695038 <https://bugs.launchpad.net/keystonemiddleware/";
+"+bug/1695038>`_] The use_oslo_messaging configuration option is added for "
+"services such as Swift, which need the audit middleware to use the local "
+"logger instead of the oslo.messaging notifier regardless of whether the oslo."
+"messaging package is present or not. Leave this option set to its default "
+"True value to keep the previous behavior unchanged - the audit middleware "
+"will use the oslo.messaging notifier if the oslo.messaging package is "
+"present, and the local logger otherwise. Services that rely on the local "
+"logger for audit notifications must set this option to False."
+msgstr ""
+"[`bug 1695038 <https://bugs.launchpad.net/keystonemiddleware/";
+"+bug/1695038>`_] The use_oslo_messaging configuration option is added for "
+"services such as Swift, which need the audit middleware to use the local "
+"logger instead of the oslo.messaging notifier regardless of whether the oslo."
+"messaging package is present or not. Leave this option set to its default "
+"True value to keep the previous behaviour unchanged - the audit middleware "
+"will use the oslo.messaging notifier if the oslo.messaging package is "
+"present, and the local logger otherwise. Services that rely on the local "
+"logger for audit notifications must set this option to False."
+
+msgid ""
 "[`bug 1737115 <https://bugs.launchpad.net/keystonemiddleware/";
 "+bug/1737115>`_] Last release have accidentaly make python-memcached a hard "
 "dependency, this have changed back to an optional one."
@@ -403,5 +429,29 @@
 "object, the configuration was not read from the configuration file. This "
 "have been fixed."
 
+msgid ""
+"[`bug 1762362 <https://bugs.launchpad.net/keystonemiddleware/";
+"+bug/1762362>`_] The value of the header \"WWW-Authenticate\" in a 401 "
+"(Unauthorized) response now is double quoted to follow the RFC requirement."
+msgstr ""
+"[`bug 1762362 <https://bugs.launchpad.net/keystonemiddleware/";
+"+bug/1762362>`_] The value of the header \"WWW-Authenticate\" in a 401 "
+"(Unauthorised) response now is double quoted to follow the RFC requirement."
+
+msgid ""
+"[`bug/1747655 <https://bugs.launchpad.net/keystonemiddleware/";
+"+bug/1747655>`_] When keystone is temporarily unavailable, "
+"keystonemiddleware correctly sends a 503 response to the HTTP client but was "
+"not identifying which service was down, leading to confusion on whether it "
+"was keystone or the service using keystonemiddleware that was unavailable. "
+"This change identifies keystone in the error response."
+msgstr ""
+"[`bug/1747655 <https://bugs.launchpad.net/keystonemiddleware/";
+"+bug/1747655>`_] When keystone is temporarily unavailable, "
+"keystonemiddleware correctly sends a 503 response to the HTTP client but was "
+"not identifying which service was down, leading to confusion on whether it "
+"was keystone or the service using keystonemiddleware that was unavailable. "
+"This change identifies keystone in the error response."
+
 msgid "keystonemiddleware Release Notes"
 msgstr "keystonemiddleware Release Notes"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/keystonemiddleware-4.21.0/releasenotes/source/locale/ko_KR/LC_MESSAGES/releasenotes.po
 
new/keystonemiddleware-5.2.0/releasenotes/source/locale/ko_KR/LC_MESSAGES/releasenotes.po
--- 
old/keystonemiddleware-4.21.0/releasenotes/source/locale/ko_KR/LC_MESSAGES/releasenotes.po
  2018-01-09 16:36:52.000000000 +0100
+++ 
new/keystonemiddleware-5.2.0/releasenotes/source/locale/ko_KR/LC_MESSAGES/releasenotes.po
   2018-07-20 01:57:04.000000000 +0200
@@ -1,17 +1,17 @@
 # Ian Y. Choi <ianyrc...@gmail.com>, 2017. #zanata
 msgid ""
 msgstr ""
-"Project-Id-Version: keystonemiddleware Release Notes 4.14.1\n"
+"Project-Id-Version: keystonemiddleware Release Notes\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-04-05 12:59+0000\n"
+"POT-Creation-Date: 2018-02-20 19:27+0000\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "PO-Revision-Date: 2017-01-19 04:08+0000\n"
 "Last-Translator: Ian Y. Choi <ianyrc...@gmail.com>\n"
 "Language-Team: Korean (South Korea)\n"
-"Language: ko-KR\n"
-"X-Generator: Zanata 3.9.6\n"
+"Language: ko_KR\n"
+"X-Generator: Zanata 4.3.3\n"
 "Plural-Forms: nplurals=1; plural=0\n"
 
 msgid "4.1.0"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/keystonemiddleware-4.21.0/releasenotes/source/queens.rst 
new/keystonemiddleware-5.2.0/releasenotes/source/queens.rst
--- old/keystonemiddleware-4.21.0/releasenotes/source/queens.rst        
1970-01-01 01:00:00.000000000 +0100
+++ new/keystonemiddleware-5.2.0/releasenotes/source/queens.rst 2018-07-20 
01:57:04.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/keystonemiddleware-4.21.0/requirements.txt 
new/keystonemiddleware-5.2.0/requirements.txt
--- old/keystonemiddleware-4.21.0/requirements.txt      2018-01-09 
16:36:52.000000000 +0100
+++ new/keystonemiddleware-5.2.0/requirements.txt       2018-07-20 
01:57:04.000000000 +0200
@@ -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.
 
-keystoneauth1>=3.3.0 # Apache-2.0
+keystoneauth1>=3.4.0 # Apache-2.0
 oslo.cache>=1.26.0 # Apache-2.0
-oslo.config>=5.1.0 # Apache-2.0
+oslo.config>=5.2.0 # Apache-2.0
 oslo.context>=2.19.2 # Apache-2.0
 oslo.i18n>=3.15.3 # Apache-2.0
-oslo.log>=3.30.0 # Apache-2.0
+oslo.log>=3.36.0 # Apache-2.0
 oslo.serialization!=2.19.1,>=2.18.0 # Apache-2.0
-oslo.utils>=3.31.0 # Apache-2.0
+oslo.utils>=3.33.0 # Apache-2.0
 pbr!=2.1.0,>=2.0.0 # Apache-2.0
 pycadf!=2.0.0,>=1.1.0 # Apache-2.0
 python-keystoneclient>=3.8.0 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keystonemiddleware-4.21.0/setup.cfg 
new/keystonemiddleware-5.2.0/setup.cfg
--- old/keystonemiddleware-4.21.0/setup.cfg     2018-01-09 16:40:08.000000000 
+0100
+++ new/keystonemiddleware-5.2.0/setup.cfg      2018-07-20 02:00:21.000000000 
+0200
@@ -5,7 +5,7 @@
        README.rst
 author = OpenStack
 author-email = openstack-...@lists.openstack.org
-home-page = https://docs.openstack.org/developer/keystonemiddleware/
+home-page = https://docs.openstack.org/keystonemiddleware/latest/
 classifier = 
        Environment :: OpenStack
        Intended Audience :: Information Technology
@@ -39,19 +39,6 @@
        ec2_token = keystonemiddleware.ec2_token:filter_factory
        s3_token = keystonemiddleware.s3_token:filter_factory
 
-[build_sphinx]
-source-dir = doc/source
-build-dir = doc/build
-all_files = 1
-warning-is-error = 1
-
-[pbr]
-autodoc_tree_index_modules = True
-autodoc_tree_excludes = setup.py
-
-[upload_sphinx]
-upload-dir = doc/build/html
-
 [compile_catalog]
 directory = keystonemiddleware/locale
 domain = keystonemiddleware
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keystonemiddleware-4.21.0/test-requirements.txt 
new/keystonemiddleware-5.2.0/test-requirements.txt
--- old/keystonemiddleware-4.21.0/test-requirements.txt 2018-01-09 
16:36:52.000000000 +0100
+++ new/keystonemiddleware-5.2.0/test-requirements.txt  2018-07-20 
01:57:04.000000000 +0200
@@ -6,17 +6,15 @@
 flake8-docstrings==0.2.1.post1 # MIT
 
 coverage!=4.4,>=4.0 # Apache-2.0
-cryptography!=2.0,>=1.9 # BSD/Apache-2.0
+cryptography>=2.1 # BSD/Apache-2.0
 fixtures>=3.0.0 # Apache-2.0/BSD
 mock>=2.0.0 # BSD
-oslotest>=1.10.0 # Apache-2.0
-reno>=2.5.0 # Apache-2.0
-requests-mock>=1.1.0 # Apache-2.0
+oslotest>=3.2.0 # Apache-2.0
+requests-mock>=1.2.0 # Apache-2.0
 stevedore>=1.20.0 # Apache-2.0
-testrepository>=0.0.18 # Apache-2.0/BSD
+stestr  # Apache-2.0
 testresources>=2.0.0 # Apache-2.0/BSD
 testtools>=2.2.0 # MIT
-os-testr>=1.0.0 # Apache-2.0
 python-memcached>=1.56 # PSF
 WebTest>=2.0.27 # MIT
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keystonemiddleware-4.21.0/tools/tox_install.sh 
new/keystonemiddleware-5.2.0/tools/tox_install.sh
--- old/keystonemiddleware-4.21.0/tools/tox_install.sh  2018-01-09 
16:36:52.000000000 +0100
+++ new/keystonemiddleware-5.2.0/tools/tox_install.sh   2018-07-20 
01:57:04.000000000 +0200
@@ -26,5 +26,7 @@
 # install will be constrained and we need to unconstrain it.
 edit-constraints "$localfile" -- "$CLIENT_NAME"
 
-pip install -c"$localfile" -U "$@"
+if [[ -n "$@" ]]; then
+    pip install -c"$localfile" -U "$@"
+fi
 exit $?
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keystonemiddleware-4.21.0/tox.ini 
new/keystonemiddleware-5.2.0/tox.ini
--- old/keystonemiddleware-4.21.0/tox.ini       2018-01-09 16:36:52.000000000 
+0100
+++ new/keystonemiddleware-5.2.0/tox.ini        2018-07-20 01:57:04.000000000 
+0200
@@ -20,22 +20,34 @@
 commands = stestr run {posargs}
 
 [testenv:pep8]
+basepython = python3
 commands =
   flake8
   bandit -r keystonemiddleware -x tests -n5
 
 [testenv:bandit]
+basepython = python3
 # NOTE(browne): This is required for the integration test job of the bandit
 # project. Please do not remove.
 commands = bandit -r keystonemiddleware -x tests -n5
 
 [testenv:venv]
+basepython = python3
 commands = {posargs}
 
 [testenv:cover]
-commands = python setup.py testr --coverage --testr-args='{posargs}'
+basepython = python3
+setenv =
+    {[testenv]setenv}
+    PYTHON=coverage run --source keystonemiddleware --parallel-mode
+commands =
+    stestr run {posargs}
+    coverage combine
+    coverage html -d cover
+    coverage xml -o cover/coverage.xml
 
 [testenv:debug]
+basepython = python3
 
 commands = oslo_debug_helper -t keystonemiddleware/tests {posargs}
 
@@ -51,12 +63,14 @@
 exclude = .venv,.tox,dist,doc,*egg,build
 
 [testenv:docs]
+basepython = python3
 deps = -r{toxinidir}/doc/requirements.txt
 commands=
     doc8 doc/source
-    python setup.py build_sphinx
+    sphinx-build -W -b html doc/source doc/build/html
 
 [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
 
@@ -68,3 +82,11 @@
 extensions = .rst, .yaml
 # lines should not be longer than 79 characters.
 max-line-length = 79
+
+[testenv:lower-constraints]
+basepython = python3
+deps =
+  -c{toxinidir}/lower-constraints.txt
+  -r{toxinidir}/test-requirements.txt
+  -r{toxinidir}/requirements.txt
+  .[audit_notifications]


Reply via email to