Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-oslo.middleware for openSUSE:Factory checked in at 2024-09-04 13:22:43 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-oslo.middleware (Old) and /work/SRC/openSUSE:Factory/.python-oslo.middleware.new.10096 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-oslo.middleware" Wed Sep 4 13:22:43 2024 rev:22 rq:1198361 version:6.2.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-oslo.middleware/python-oslo.middleware.changes 2023-12-01 21:27:35.482778791 +0100 +++ /work/SRC/openSUSE:Factory/.python-oslo.middleware.new.10096/python-oslo.middleware.changes 2024-09-04 13:22:56.149528048 +0200 @@ -1,0 +2,29 @@ +Mon Sep 2 17:31:43 UTC 2024 - cloud-de...@suse.de + +- update to version 6.2.0 + - reno: Update master for unmaintained/xena + - Remove old excludes + - reno: Update master for unmaintained/zed + - Make ConfigInvalid generic + - reno: Update master for unmaintained/victoria + - Update master for stable/2024.1 + - pre-commit: Bump versions + - reno: Update master for unmaintained/wallaby + - pre-commit: Integrate bandit + - Add a enabled by files healthcheck plugin + +------------------------------------------------------------------- +Thu May 2 22:13:06 UTC 2024 - cloud-de...@suse.de + +- update to version 6.1.0 + - healthcheck: Ignore proxied requests + - Bump hacking + - Imported Translations from Zanata + - Update python classifier in setup.cfg + - healthcheck: Limit source IP range + - reno: Update master for unmaintained/yoga + - Remove oslo namespace package (again) + - Remove deprecated SSLMiddleware + - Update master for stable/2023.2 + +------------------------------------------------------------------- Old: ---- oslo.middleware-5.2.0.tar.gz New: ---- oslo.middleware-6.2.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-oslo.middleware.spec ++++++ --- /var/tmp/diff_new_pack.bLQ5DV/_old 2024-09-04 13:22:57.981604710 +0200 +++ /var/tmp/diff_new_pack.bLQ5DV/_new 2024-09-04 13:22:57.985604878 +0200 @@ -1,7 +1,7 @@ # # spec file for package python-oslo.middleware # -# Copyright (c) 2023 SUSE LLC +# Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,13 +17,13 @@ Name: python-oslo.middleware -Version: 5.2.0 +Version: 6.2.0 Release: 0 Summary: OpenStack oslo.middleware library License: Apache-2.0 Group: Development/Languages/Python URL: https://docs.openstack.org/oslo.middleware -Source0: https://files.pythonhosted.org/packages/source/o/oslo.middleware/oslo.middleware-5.2.0.tar.gz +Source0: https://files.pythonhosted.org/packages/source/o/oslo.middleware/oslo.middleware-6.2.0.tar.gz BuildRequires: openstack-macros BuildRequires: python3-Jinja2 >= 2.10 BuildRequires: python3-WebOb >= 1.8.0 @@ -85,7 +85,7 @@ This package contains the documentation. %prep -%autosetup -p1 -n oslo.middleware-5.2.0 +%autosetup -p1 -n oslo.middleware-6.2.0 %py_req_cleanup %build ++++++ oslo.middleware-5.2.0.tar.gz -> oslo.middleware-6.2.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.2.0/.pre-commit-config.yaml new/oslo.middleware-6.2.0/.pre-commit-config.yaml --- old/oslo.middleware-5.2.0/.pre-commit-config.yaml 2023-08-29 14:28:22.000000000 +0200 +++ new/oslo.middleware-6.2.0/.pre-commit-config.yaml 2024-08-21 17:11:12.000000000 +0200 @@ -1,15 +1,6 @@ -# We from the Oslo project decided to pin repos based on the -# commit hash instead of the version tag to prevend arbitrary -# code from running in developer's machines. To update to a -# newer version, run `pre-commit autoupdate` and then replace -# the newer versions with their commit hash. - -default_language_version: - python: python3 - repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: 9136088a246768144165fcc3ecc3d31bb686920a # v3.3.0 + rev: v4.5.0 hooks: - id: trailing-whitespace # Replaces or checks mixed line ending @@ -27,13 +18,14 @@ - id: debug-statements - id: check-yaml files: .*\.(yaml|yml)$ - - repo: local + - repo: https://opendev.org/openstack/hacking + rev: 6.1.0 hooks: - - id: flake8 - name: flake8 - additional_dependencies: - - hacking>=3.0.1,<3.1.0 - language: python - entry: flake8 - files: '^.*\.py$' + - id: hacking + additional_dependencies: [] exclude: '^(doc|releasenotes|tools)/.*$' + - repo: https://github.com/PyCQA/bandit + rev: 1.7.6 + hooks: + - id: bandit + args: ['-x', 'tests'] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.2.0/AUTHORS new/oslo.middleware-6.2.0/AUTHORS --- old/oslo.middleware-5.2.0/AUTHORS 2023-08-29 14:28:51.000000000 +0200 +++ new/oslo.middleware-6.2.0/AUTHORS 2024-08-21 17:11:57.000000000 +0200 @@ -1,4 +1,5 @@ Abhijeet Malawade <abhijeet.malaw...@nttdata.com> +Abhishek Kekane <akek...@redhat.com> Adam Kijak <adam.ki...@ovh.pl> Aditi Raveesh <aditi...@thoughtworks.com> Akihiro Motoki <amot...@gmail.com> @@ -74,6 +75,8 @@ Sean Dague <s...@dague.net> Sean McGinnis <sean.mcgin...@gmail.com> Sergey Kraynev <skray...@mirantis.com> +Stephen Finucane <stephen...@redhat.com> +Takashi Kajinami <kajina...@oss.nttdata.com> Takashi Kajinami <tkaji...@redhat.com> Thomas Goirand <tho...@goirand.fr> Thomas Goirand <z...@debian.org> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.2.0/ChangeLog new/oslo.middleware-6.2.0/ChangeLog --- old/oslo.middleware-5.2.0/ChangeLog 2023-08-29 14:28:51.000000000 +0200 +++ new/oslo.middleware-6.2.0/ChangeLog 2024-08-21 17:11:57.000000000 +0200 @@ -1,6 +1,36 @@ CHANGES ======= +6.2.0 +----- + +* Make ConfigInvalid generic +* Add a enabled by files healthcheck plugin +* reno: Update master for unmaintained/zed +* Remove old excludes +* pre-commit: Integrate bandit +* pre-commit: Bump versions +* Update master for stable/2024.1 +* reno: Update master for unmaintained/xena +* reno: Update master for unmaintained/wallaby +* reno: Update master for unmaintained/victoria + +6.1.0 +----- + +* reno: Update master for unmaintained/yoga +* Bump hacking +* Update python classifier in setup.cfg + +6.0.0 +----- + +* healthcheck: Ignore proxied requests +* Remove deprecated SSLMiddleware +* Remove oslo namespace package (again) +* Imported Translations from Zanata +* Update master for stable/2023.2 + 5.2.0 ----- @@ -43,6 +73,7 @@ * Add Python3 yoga unit tests * Update master for stable/xena * Add oslo.config.opts entrypoint for basic auth middleware +* healthcheck: Limit source IP range 4.4.0 ----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.2.0/PKG-INFO new/oslo.middleware-6.2.0/PKG-INFO --- old/oslo.middleware-5.2.0/PKG-INFO 2023-08-29 14:28:51.787379000 +0200 +++ new/oslo.middleware-6.2.0/PKG-INFO 2024-08-21 17:11:57.851624300 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.2 Name: oslo.middleware -Version: 5.2.0 +Version: 6.2.0 Summary: Oslo Middleware library Home-page: https://docs.openstack.org/oslo.middleware/latest/ Author: OpenStack @@ -41,6 +41,7 @@ Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 Classifier: Programming Language :: Python :: 3 :: Only Classifier: Programming Language :: Python :: Implementation :: CPython Requires-Python: >=3.8 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.2.0/doc/requirements.txt new/oslo.middleware-6.2.0/doc/requirements.txt --- old/oslo.middleware-5.2.0/doc/requirements.txt 2023-08-29 14:28:22.000000000 +0200 +++ new/oslo.middleware-6.2.0/doc/requirements.txt 2024-08-21 17:11:12.000000000 +0200 @@ -1,9 +1,5 @@ -# The order of packages is significant, because pip processes them in the order -# of appearance. Changing the order has an impact on the overall integration -# process, which may cause wedges in the gate later. # These are needed for docs generation - openstackdocstheme>=2.2.0 # Apache-2.0 -sphinx>=2.0.0,!=2.1.0 # BSD +sphinx>=2.0.0 # BSD reno>=3.1.0 # Apache-2.0 fixtures>=3.0.0 # Apache-2.0/BSD diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.2.0/doc/source/reference/healthcheck_plugins.rst new/oslo.middleware-6.2.0/doc/source/reference/healthcheck_plugins.rst --- old/oslo.middleware-5.2.0/doc/source/reference/healthcheck_plugins.rst 2023-08-29 14:28:22.000000000 +0200 +++ new/oslo.middleware-6.2.0/doc/source/reference/healthcheck_plugins.rst 2024-08-21 17:11:12.000000000 +0200 @@ -8,6 +8,9 @@ .. automodule:: oslo_middleware.healthcheck.disable_by_file :members: +.. automodule:: oslo_middleware.healthcheck.enable_by_files + :members: + Available Plugins ------------------ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.2.0/oslo/__init__.py new/oslo.middleware-6.2.0/oslo/__init__.py --- old/oslo.middleware-5.2.0/oslo/__init__.py 2023-08-29 14:28:22.000000000 +0200 +++ new/oslo.middleware-6.2.0/oslo/__init__.py 1970-01-01 01:00:00.000000000 +0100 @@ -1,13 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -__import__('pkg_resources').declare_namespace(__name__) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.2.0/oslo/middleware/__init__.py new/oslo.middleware-6.2.0/oslo/middleware/__init__.py --- old/oslo.middleware-5.2.0/oslo/middleware/__init__.py 2023-08-29 14:28:22.000000000 +0200 +++ new/oslo.middleware-6.2.0/oslo/middleware/__init__.py 1970-01-01 01:00:00.000000000 +0100 @@ -1,52 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -import sys -import warnings - -def deprecated(): - new_name = __name__.replace('.', '_') - warnings.warn( - ('The oslo namespace package is deprecated. Please use %s instead.' % - new_name), - DeprecationWarning, - stacklevel=3, - ) - - -# NOTE(dims): We cannot remove the deprecation or redirects below -# until Liberty-EOL -deprecated() - -from oslo_middleware import base -from oslo_middleware import catch_errors -from oslo_middleware import correlation_id -from oslo_middleware import debug -from oslo_middleware import request_id -from oslo_middleware import sizelimit - -sys.modules['oslo.middleware.base'] = base -sys.modules['oslo.middleware.catch_errors'] = catch_errors -sys.modules['oslo.middleware.correlation_id'] = correlation_id -sys.modules['oslo.middleware.debug'] = debug -sys.modules['oslo.middleware.request_id'] = request_id -sys.modules['oslo.middleware.sizelimit'] = sizelimit - -from oslo_middleware.catch_errors import CatchErrors -from oslo_middleware.correlation_id import CorrelationId -from oslo_middleware.cors import CORS -from oslo_middleware.debug import Debug -from oslo_middleware.healthcheck import Healthcheck -from oslo_middleware.http_proxy_to_wsgi import HTTPProxyToWSGI -from oslo_middleware.request_id import RequestId -from oslo_middleware.sizelimit import RequestBodySizeLimiter -from oslo_middleware.ssl import SSLMiddleware \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.2.0/oslo.middleware.egg-info/PKG-INFO new/oslo.middleware-6.2.0/oslo.middleware.egg-info/PKG-INFO --- old/oslo.middleware-5.2.0/oslo.middleware.egg-info/PKG-INFO 2023-08-29 14:28:51.000000000 +0200 +++ new/oslo.middleware-6.2.0/oslo.middleware.egg-info/PKG-INFO 2024-08-21 17:11:57.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.2 Name: oslo.middleware -Version: 5.2.0 +Version: 6.2.0 Summary: Oslo Middleware library Home-page: https://docs.openstack.org/oslo.middleware/latest/ Author: OpenStack @@ -41,6 +41,7 @@ Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 Classifier: Programming Language :: Python :: 3 :: Only Classifier: Programming Language :: Python :: Implementation :: CPython Requires-Python: >=3.8 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.2.0/oslo.middleware.egg-info/SOURCES.txt new/oslo.middleware-6.2.0/oslo.middleware.egg-info/SOURCES.txt --- old/oslo.middleware-5.2.0/oslo.middleware.egg-info/SOURCES.txt 2023-08-29 14:28:51.000000000 +0200 +++ new/oslo.middleware-6.2.0/oslo.middleware.egg-info/SOURCES.txt 2024-08-21 17:11:57.000000000 +0200 @@ -27,7 +27,6 @@ doc/source/reference/cors.rst doc/source/reference/healthcheck_plugins.rst doc/source/reference/index.rst -oslo/__init__.py oslo.middleware.egg-info/PKG-INFO oslo.middleware.egg-info/SOURCES.txt oslo.middleware.egg-info/dependency_links.txt @@ -36,7 +35,6 @@ oslo.middleware.egg-info/pbr.json oslo.middleware.egg-info/requires.txt oslo.middleware.egg-info/top_level.txt -oslo/middleware/__init__.py oslo_middleware/__init__.py oslo_middleware/_i18n.py oslo_middleware/base.py @@ -45,16 +43,17 @@ oslo_middleware/correlation_id.py oslo_middleware/cors.py oslo_middleware/debug.py +oslo_middleware/exceptions.py oslo_middleware/http_proxy_to_wsgi.py oslo_middleware/opts.py oslo_middleware/request_id.py oslo_middleware/sizelimit.py -oslo_middleware/ssl.py oslo_middleware/stats.py oslo_middleware/version.py oslo_middleware/healthcheck/__init__.py oslo_middleware/healthcheck/__main__.py oslo_middleware/healthcheck/disable_by_file.py +oslo_middleware/healthcheck/enable_by_files.py oslo_middleware/healthcheck/opts.py oslo_middleware/healthcheck/pluginbase.py oslo_middleware/locale/en_GB/LC_MESSAGES/oslo_middleware.po @@ -70,15 +69,21 @@ oslo_middleware/tests/test_opts.py oslo_middleware/tests/test_request_id.py oslo_middleware/tests/test_sizelimit.py -oslo_middleware/tests/test_ssl.py oslo_middleware/tests/test_stats.py releasenotes/notes/add_reno-3b4ae0789e9c45b4.yaml releasenotes/notes/basic-auth-middleware-5f812399e325425f.yaml releasenotes/notes/compat_headers-55a635b8ec01b6f1.yaml releasenotes/notes/drop-python27-support-a6361831195bf29c.yaml +releasenotes/notes/enable-by-files-healthcheck-29938e3d6b8e5730.yaml releasenotes/notes/global_request_id-a8ec7260fbd76444.yaml +releasenotes/notes/healthcheck-allowed_source_ranges-9cbaf89f65914851.yaml +releasenotes/notes/healthcheck-ignore_proxied_requests-d04d1661bd687bc6.yaml releasenotes/notes/log_max_request_body_size-1835363-6f37946210a100d7.yaml +releasenotes/notes/remove-oslo-namespace-b0f050f074d12aff.yaml +releasenotes/notes/remove-ssl-middleware-0ce922b05f83c447.yaml releasenotes/source/2023.1.rst +releasenotes/source/2023.2.rst +releasenotes/source/2024.1.rst releasenotes/source/conf.py releasenotes/source/index.rst releasenotes/source/ocata.rst diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.2.0/oslo.middleware.egg-info/entry_points.txt new/oslo.middleware-6.2.0/oslo.middleware.egg-info/entry_points.txt --- old/oslo.middleware-5.2.0/oslo.middleware.egg-info/entry_points.txt 2023-08-29 14:28:51.000000000 +0200 +++ new/oslo.middleware-6.2.0/oslo.middleware.egg-info/entry_points.txt 2024-08-21 17:11:57.000000000 +0200 @@ -5,11 +5,11 @@ oslo.middleware.healthcheck = oslo_middleware.opts:list_opts_healthcheck oslo.middleware.http_proxy_to_wsgi = oslo_middleware.opts:list_opts_http_proxy_to_wsgi oslo.middleware.sizelimit = oslo_middleware.opts:list_opts_sizelimit -oslo.middleware.ssl = oslo_middleware.opts:list_opts_ssl [oslo.middleware.healthcheck] disable_by_file = oslo_middleware.healthcheck.disable_by_file:DisableByFileHealthcheck disable_by_files_ports = oslo_middleware.healthcheck.disable_by_file:DisableByFilesPortsHealthcheck +enable_by_files = oslo_middleware.healthcheck.enable_by_files:EnableByFilesHealthcheck [paste.app_factory] healthcheck = oslo_middleware:Healthcheck.app_factory @@ -24,5 +24,4 @@ http_proxy_to_wsgi = oslo_middleware:HTTPProxyToWSGI.factory request_id = oslo_middleware:RequestId.factory sizelimit = oslo_middleware:RequestBodySizeLimiter.factory -ssl = oslo_middleware:SSLMiddleware.factory diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.2.0/oslo.middleware.egg-info/pbr.json new/oslo.middleware-6.2.0/oslo.middleware.egg-info/pbr.json --- old/oslo.middleware-5.2.0/oslo.middleware.egg-info/pbr.json 2023-08-29 14:28:51.000000000 +0200 +++ new/oslo.middleware-6.2.0/oslo.middleware.egg-info/pbr.json 2024-08-21 17:11:57.000000000 +0200 @@ -1 +1 @@ -{"git_version": "4ba32ed", "is_release": true} \ No newline at end of file +{"git_version": "67a0a39", "is_release": true} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.2.0/oslo.middleware.egg-info/requires.txt new/oslo.middleware-6.2.0/oslo.middleware.egg-info/requires.txt --- old/oslo.middleware-5.2.0/oslo.middleware.egg-info/requires.txt 2023-08-29 14:28:51.000000000 +0200 +++ new/oslo.middleware-6.2.0/oslo.middleware.egg-info/requires.txt 2024-08-21 17:11:57.000000000 +0200 @@ -6,6 +6,6 @@ oslo.context>=2.19.2 oslo.i18n>=3.15.3 oslo.utils>=3.33.0 -pbr!=2.1.0,>=2.0.0 +pbr>=2.0.0 statsd>=3.2.1 stevedore>=1.20.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.2.0/oslo_middleware/__init__.py new/oslo.middleware-6.2.0/oslo_middleware/__init__.py --- old/oslo.middleware-5.2.0/oslo_middleware/__init__.py 2023-08-29 14:28:22.000000000 +0200 +++ new/oslo.middleware-6.2.0/oslo_middleware/__init__.py 2024-08-21 17:11:12.000000000 +0200 @@ -18,8 +18,7 @@ 'Healthcheck', 'HTTPProxyToWSGI', 'RequestId', - 'RequestBodySizeLimiter', - 'SSLMiddleware'] + 'RequestBodySizeLimiter'] from oslo_middleware.basic_auth import BasicAuthMiddleware from oslo_middleware.catch_errors import CatchErrors @@ -30,4 +29,3 @@ from oslo_middleware.http_proxy_to_wsgi import HTTPProxyToWSGI from oslo_middleware.request_id import RequestId from oslo_middleware.sizelimit import RequestBodySizeLimiter -from oslo_middleware.ssl import SSLMiddleware diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.2.0/oslo_middleware/basic_auth.py new/oslo.middleware-6.2.0/oslo_middleware/basic_auth.py --- old/oslo.middleware-5.2.0/oslo_middleware/basic_auth.py 2023-08-29 14:28:22.000000000 +0200 +++ new/oslo.middleware-6.2.0/oslo_middleware/basic_auth.py 2024-08-21 17:11:12.000000000 +0200 @@ -22,6 +22,7 @@ from oslo_config import cfg from oslo_middleware import base +from oslo_middleware import exceptions LOG = logging.getLogger(__name__) @@ -34,12 +35,6 @@ cfg.CONF.register_opts(OPTS, group='oslo_middleware') -class ConfigInvalid(Exception): - def __init__(self, error_msg): - super().__init__( - 'Invalid configuration file. %(error_msg)s') - - class BasicAuthMiddleware(base.ConfigurableMiddleware): """Middleware which performs HTTP basic authentication on requests""" @@ -135,7 +130,8 @@ if entry and ':' in entry: parse_entry(entry) except OSError: - raise ConfigInvalid(error_msg='Problem reading auth user file') + raise exceptions.ConfigInvalid( + error_msg='Problem reading auth user file') def parse_entry(entry): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.2.0/oslo_middleware/exceptions.py new/oslo.middleware-6.2.0/oslo_middleware/exceptions.py --- old/oslo.middleware-5.2.0/oslo_middleware/exceptions.py 1970-01-01 01:00:00.000000000 +0100 +++ new/oslo.middleware-6.2.0/oslo_middleware/exceptions.py 2024-08-21 17:11:12.000000000 +0200 @@ -0,0 +1,17 @@ +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +class ConfigInvalid(Exception): + def __init__(self, error_msg): + super().__init__( + 'Invalid configuration. %(error_msg)s') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.2.0/oslo_middleware/healthcheck/__init__.py new/oslo.middleware-6.2.0/oslo_middleware/healthcheck/__init__.py --- old/oslo.middleware-5.2.0/oslo_middleware/healthcheck/__init__.py 2023-08-29 14:28:22.000000000 +0200 +++ new/oslo.middleware-6.2.0/oslo_middleware/healthcheck/__init__.py 2024-08-21 17:11:12.000000000 +0200 @@ -16,6 +16,7 @@ import collections import gc import io +import ipaddress import json import platform import socket @@ -38,6 +39,7 @@ greenlet = None from oslo_middleware import base +from oslo_middleware.exceptions import ConfigInvalid from oslo_middleware.healthcheck import opts @@ -391,6 +393,16 @@ group='healthcheck') self._path = self._conf_get('path') self._show_details = self._conf_get('detailed') + self._source_ranges = [ + ipaddress.ip_network(r) + for r in self._conf_get('allowed_source_ranges')] + self._ignore_proxied_requests = self._conf_get( + 'ignore_proxied_requests') + + # (abhishekk): Verify that if `enable_by_files` and + # `disable_by_file` backends are not enabled at same time. + self._verify_configured_plugins() + self._backends = stevedore.NamedExtensionManager( self.NAMESPACE, self._conf_get('backends'), name_order=True, invoke_on_load=True, @@ -408,6 +420,15 @@ self._default_accept = 'text/plain' self._ignore_path = False + def _verify_configured_plugins(self): + backends = self._conf_get('backends') + exclusive_plugins = ['disable_by_file', 'enable_by_files'] + + if set(exclusive_plugins).issubset(set(backends)): + raise ConfigInvalid('`enable_by_files` plugin and ' + '`disable_by_file` plugin should not be ' + 'enabled at the same time.') + def _conf_get(self, key, group='healthcheck'): return super(Healthcheck, self)._conf_get(key, group=group) @@ -550,6 +571,24 @@ def process_request(self, req): if not self._ignore_path and req.path != self._path: return None + + if self._source_ranges: + remote_addr = ipaddress.ip_address(req.remote_addr) + for r in self._source_ranges: + if r.version == remote_addr.version and remote_addr in r: + break + else: + # Because source ip is not included in allowed ranges, ignore + # the request in this middleware. + return None + + if self._ignore_proxied_requests: + for hdr in [ + 'FORWARDED', 'FORWARDED_PROTO', 'FORWARDED_HOST', + 'FORWARDED_FOR', 'FORWARDED_PREFIX']: + if req.environ.get("HTTP_X_%s" % hdr): + return None + results = [ext.obj.healthcheck(req.server_port) for ext in self._backends] healthy = self._are_results_healthy(results) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.2.0/oslo_middleware/healthcheck/enable_by_files.py new/oslo.middleware-6.2.0/oslo_middleware/healthcheck/enable_by_files.py --- old/oslo.middleware-5.2.0/oslo_middleware/healthcheck/enable_by_files.py 1970-01-01 01:00:00.000000000 +0100 +++ new/oslo.middleware-6.2.0/oslo_middleware/healthcheck/enable_by_files.py 2024-08-21 17:11:12.000000000 +0200 @@ -0,0 +1,60 @@ +# Copyright 2024 Red Hat. +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +import logging +import os + +from oslo_middleware.healthcheck import opts +from oslo_middleware.healthcheck import pluginbase + +LOG = logging.getLogger(__name__) + + +class EnableByFilesHealthcheck(pluginbase.HealthcheckBaseExtension): + """EnableByFilesHealthcheck healthcheck middleware plugin + + This plugin checks presence of a file at a specified location. + + Example of middleware configuration: + + .. code-block:: ini + + [app:healthcheck] + paste.app_factory = oslo_middleware:Healthcheck.app_factory + path = /healthcheck + backends = enable_by_files + enable_by_file_paths = /var/lib/glance/images/.marker, + /var/lib/glance/os_glance_staging_store/.marker + # set to True to enable detailed output, False is the default + detailed = False + """ + + def __init__(self, *args, **kwargs): + super(EnableByFilesHealthcheck, self).__init__(*args, **kwargs) + self.oslo_conf.register_opts(opts.ENABLE_BY_FILES_OPTS, + group='healthcheck') + self.file_paths = self._conf_get('enable_by_file_paths') + + def healthcheck(self, server_port): + for file_path in self.file_paths: + if not os.path.exists(file_path): + LOG.warning('EnableByFiles healthcheck middleware: Path %s ' + 'is not present', file_path) + return pluginbase.HealthcheckResult( + available=False, reason="FILE PATH MISSING", + details='File path %s is missing' % file_path) + return pluginbase.HealthcheckResult( + available=True, reason="OK", + details='Specified file paths are available') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.2.0/oslo_middleware/healthcheck/opts.py new/oslo.middleware-6.2.0/oslo_middleware/healthcheck/opts.py --- old/oslo.middleware-5.2.0/oslo_middleware/healthcheck/opts.py 2023-08-29 14:28:22.000000000 +0200 +++ new/oslo.middleware-6.2.0/oslo_middleware/healthcheck/opts.py 2024-08-21 17:11:12.000000000 +0200 @@ -29,6 +29,14 @@ default=[], help='Additional backends that can perform health checks and ' 'report that information back as part of a request.'), + cfg.ListOpt('allowed_source_ranges', + default=[], + help='A list of network addresses to limit source ip allowed ' + 'to access healthcheck information. Any request from ip ' + 'outside of these network addresses are ignored.'), + cfg.BoolOpt('ignore_proxied_requests', + default=False, + help='Ignore requests with proxy headers.') ] @@ -49,3 +57,11 @@ 'Expects a "port:path" list of strings. Used by ' 'DisableByFilesPortsHealthcheck plugin.'), ] + + +ENABLE_BY_FILES_OPTS = [ + cfg.ListOpt('enable_by_file_paths', + default=[], + help='Check the presence of files. Used by ' + 'EnableByFilesHealthcheck plugin.'), +] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.2.0/oslo_middleware/opts.py new/oslo.middleware-6.2.0/oslo_middleware/opts.py --- old/oslo.middleware-5.2.0/oslo_middleware/opts.py 2023-08-29 14:28:22.000000000 +0200 +++ new/oslo.middleware-6.2.0/oslo_middleware/opts.py 2024-08-21 17:11:12.000000000 +0200 @@ -20,12 +20,10 @@ from oslo_middleware.healthcheck import opts as healthcheck_opts from oslo_middleware import http_proxy_to_wsgi from oslo_middleware import sizelimit -from oslo_middleware import ssl __all__ = [ 'list_opts', 'list_opts_sizelimit', - 'list_opts_ssl', 'list_opts_cors', 'list_opts_http_proxy_to_wsgi', 'list_opts_healthcheck', @@ -55,7 +53,6 @@ return list( itertools.chain( list_opts_sizelimit(), - list_opts_ssl(), list_opts_cors(), list_opts_http_proxy_to_wsgi(), list_opts_healthcheck(), @@ -88,30 +85,6 @@ ] -def list_opts_ssl(): - """Return a list of oslo.config options for the SSL middleware. - - The returned list includes all oslo.config options which may be registered - at runtime by the library. - - Each element of the list is a tuple. The first element is the name of the - group under which the list of elements in the second element will be - registered. A group name of None corresponds to the [DEFAULT] group in - config files. - - This function is also discoverable via the 'oslo.middleware' entry point - under the 'oslo.config.opts' namespace. - - The purpose of this is to allow tools like the Oslo sample config file - generator to discover the options exposed to users by this library. - - :returns: a list of (group_name, opts) tuples - """ - return [ - ('oslo_middleware', copy.deepcopy(ssl.OPTS)), - ] - - def list_opts_cors(): """Return a list of oslo.config options for the cors middleware. @@ -184,7 +157,8 @@ return [ ('healthcheck', copy.deepcopy(healthcheck_opts.HEALTHCHECK_OPTS + healthcheck_opts.DISABLE_BY_FILE_OPTS + - healthcheck_opts.DISABLE_BY_FILES_OPTS)) + healthcheck_opts.DISABLE_BY_FILES_OPTS + + healthcheck_opts.ENABLE_BY_FILES_OPTS)) ] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.2.0/oslo_middleware/ssl.py new/oslo.middleware-6.2.0/oslo_middleware/ssl.py --- old/oslo.middleware-5.2.0/oslo_middleware/ssl.py 2023-08-29 14:28:22.000000000 +0200 +++ new/oslo.middleware-6.2.0/oslo_middleware/ssl.py 1970-01-01 01:00:00.000000000 +0100 @@ -1,45 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -# implied. See the License for the specific language governing permissions and -# limitations under the License. -from debtcollector import removals -from oslo_config import cfg -from oslo_middleware import base - - -OPTS = [ - cfg.StrOpt('secure_proxy_ssl_header', - default='X-Forwarded-Proto', - deprecated_for_removal=True, - help="The HTTP Header that will be used to determine what " - "the original request protocol scheme was, even if it was " - "hidden by a SSL termination proxy.") -] - - -class SSLMiddleware(base.ConfigurableMiddleware): - """SSL termination proxies middleware. - - This middleware overloads wsgi.url_scheme with the one provided in - secure_proxy_ssl_header header. This is useful when behind a SSL - termination proxy. - """ - - def __init__(self, application, *args, **kwargs): - removals.removed_module(__name__, "oslo_middleware.http_proxy_to_wsgi") - super(SSLMiddleware, self).__init__(application, *args, **kwargs) - self.oslo_conf.register_opts(OPTS, group='oslo_middleware') - - def process_request(self, req): - self.header_name = 'HTTP_{0}'.format( - self._conf_get('secure_proxy_ssl_header').upper() - .replace('-', '_')) - req.environ['wsgi.url_scheme'] = req.environ.get( - self.header_name, req.environ['wsgi.url_scheme']) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.2.0/oslo_middleware/tests/test_auth_basic.py new/oslo.middleware-6.2.0/oslo_middleware/tests/test_auth_basic.py --- old/oslo.middleware-5.2.0/oslo_middleware/tests/test_auth_basic.py 2023-08-29 14:28:22.000000000 +0200 +++ new/oslo.middleware-6.2.0/oslo_middleware/tests/test_auth_basic.py 2024-08-21 17:11:12.000000000 +0200 @@ -21,6 +21,7 @@ import webob from oslo_middleware import basic_auth as auth +from oslo_middleware import exceptions as exc from oslotest import base as test_base @@ -116,7 +117,7 @@ auth.validate_auth_file(auth_file) # failed, missing auth file auth_file = auth_file + '.missing' - self.assertRaises(auth.ConfigInvalid, + self.assertRaises(exc.ConfigInvalid, auth.validate_auth_file, auth_file) # failed, invalid entry auth_file = self.write_auth_file( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.2.0/oslo_middleware/tests/test_entry_points.py new/oslo.middleware-6.2.0/oslo_middleware/tests/test_entry_points.py --- old/oslo.middleware-5.2.0/oslo_middleware/tests/test_entry_points.py 2023-08-29 14:28:22.000000000 +0200 +++ new/oslo.middleware-6.2.0/oslo_middleware/tests/test_entry_points.py 2024-08-21 17:11:12.000000000 +0200 @@ -27,7 +27,6 @@ 'http_proxy_to_wsgi': 'HTTPProxyToWSGI', 'request_id': 'RequestId', 'sizelimit': 'RequestBodySizeLimiter', - 'ssl': 'SSLMiddleware', } em = stevedore.ExtensionManager('paste.filter_factory') @@ -36,3 +35,17 @@ factory_names = [extension.name for extension in em] self.assertThat(factory_names, matchers.ContainsAll(factory_classes)) + + def test_healthcheck_entry_points(self): + healthcheck_plugins = { + 'disable_by_file': 'DisableByFileHealthcheck', + 'disable_by_files_ports': 'DisableByFilesPortsHealthcheck', + 'enable_by_files': 'EnableByFilesHealthcheck' + } + + em = stevedore.ExtensionManager('oslo.middleware.healthcheck') + + # Ensure all the healthcheck plugins are defined by their names + plugin_names = [extension.name for extension in em] + self.assertThat(plugin_names, + matchers.ContainsAll(healthcheck_plugins)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.2.0/oslo_middleware/tests/test_healthcheck.py new/oslo.middleware-6.2.0/oslo_middleware/tests/test_healthcheck.py --- old/oslo.middleware-5.2.0/oslo_middleware/tests/test_healthcheck.py 2023-08-29 14:28:22.000000000 +0200 +++ new/oslo.middleware-6.2.0/oslo_middleware/tests/test_healthcheck.py 2024-08-21 17:11:12.000000000 +0200 @@ -24,6 +24,7 @@ import webob.dec import webob.exc +from oslo_middleware.exceptions import ConfigInvalid from oslo_middleware import healthcheck from oslo_middleware.healthcheck import __main__ @@ -63,20 +64,27 @@ def _do_test_request(self, conf={}, path='/healthcheck', accept='text/plain', method='GET', - server_port=80): + server_port=80, headers=None, + remote_addr='127.0.0.1'): self.app = healthcheck.Healthcheck(self.application, conf) req = webob.Request.blank(path, accept=accept, method=method) req.server_port = server_port + if headers: + req.headers = headers + req.remote_addr = remote_addr res = req.get_response(self.app) return res def _do_test(self, conf={}, path='/healthcheck', expected_code=webob.exc.HTTPOk.code, expected_body=b'', accept='text/plain', - method='GET', server_port=80): + method='GET', server_port=80, headers=None, + remote_addr='127.0.0.1'): res = self._do_test_request(conf=conf, path=path, accept=accept, method=method, - server_port=server_port) + server_port=server_port, + headers=headers, + remote_addr=remote_addr) self.assertEqual(expected_code, res.status_int) self.assertEqual(expected_body, res.body) @@ -194,9 +202,104 @@ server_port=81) self.assertIn('disable_by_files_ports', self.app._backends.names()) + def test_enablefile_disablefile_configured(self): + conf = {'backends': 'disable_by_file,enable_by_files'} + self.assertRaises(ConfigInvalid, + healthcheck.Healthcheck, self.application, conf) + + def test_enablefile_unconfigured(self): + conf = {'backends': 'enable_by_files'} + self._do_test(conf, expected_body=b'OK') + self.assertIn('enable_by_files', self.app._backends.names()) + + def test_enablefile_enabled(self): + filename = self.create_tempfiles([('.test', '.foobar')])[0] + conf = {'backends': 'enable_by_files', + 'enable_by_file_paths': filename} + self._do_test(conf, expected_body=b'OK') + self.assertIn('enable_by_files', self.app._backends.names()) + + def test_enablefile_enabled_head(self): + filename = self.create_tempfiles([('.test', '.foobar')])[0] + conf = {'backends': 'enable_by_files', + 'enable_by_file_paths': filename} + self._do_test(conf, expected_body=b'', method='HEAD', + expected_code=webob.exc.HTTPNoContent.code) + + def test_enablefile_enabled_html_detailed(self): + filename = self.create_tempfiles([('.test', '.foobar')])[0] + conf = {'backends': 'enable_by_files', + 'enable_by_file_paths': filename, 'detailed': True} + res = self._do_test_request(conf, accept="text/html") + self.assertIn(b'Result of 1 checks:', res.body) + self.assertIn(b'<TD>OK</TD>', res.body) + self.assertEqual(webob.exc.HTTPOk.code, res.status_int) + + def test_enablefile_disabled(self): + conf = {'backends': 'enable_by_files', + 'enable_by_file_paths': '.foobar'} + self._do_test(conf, + expected_code=webob.exc.HTTPServiceUnavailable.code, + expected_body=b'FILE PATH MISSING') + self.assertIn('enable_by_files', self.app._backends.names()) + + def test_enablefile_disabled_head(self): + conf = {'backends': 'enable_by_files', + 'enable_by_file_paths': '.foobar'} + self._do_test(conf, + expected_code=webob.exc.HTTPServiceUnavailable.code, + expected_body=b'', method='HEAD') + self.assertIn('enable_by_files', self.app._backends.names()) + + def test_enablefile_disabled_html_detailed(self): + conf = {'backends': 'enable_by_files', + 'enable_by_file_paths': '.foobar', 'detailed': True} + res = self._do_test_request(conf, accept="text/html") + self.assertIn(b'<TD>FILE PATH MISSING</TD>', res.body) + self.assertEqual(webob.exc.HTTPServiceUnavailable.code, + res.status_int) + def test_json_response(self): expected_body = jsonutils.dumps({'detailed': False, 'reasons': []}, indent=4, sort_keys=True).encode('utf-8') self._do_test(expected_body=expected_body, accept='application/json') + + def test_source_within_allowed_ranges(self): + conf = {'allowed_source_ranges': ['192.168.0.0/24', '192.168.1.0/24']} + self._do_test(conf, + expected_code=webob.exc.HTTPOk.code, + remote_addr='192.168.0.1') + + def test_source_out_of_allowed_ranges(self): + conf = {'allowed_source_ranges': ['192.168.0.0/24', '192.168.1.0/24']} + self._do_test(conf, + expected_code=webob.exc.HTTPOk.code, + expected_body=b'Hello, World!!!', + remote_addr='192.168.3.1') + + def test_proxied_not_ignored(self): + conf = {} + self._do_test(conf, + expected_code=webob.exc.HTTPOk.code, + headers={'Forwarded-For': 'http://localhost'}) + + def test_proxied_ignored(self): + conf = {'ignore_proxied_requests': True} + modern_headers = { + 'x-forwarded': 'https://localhost' + } + self._do_test(conf, + expected_code=webob.exc.HTTPOk.code, + expected_body=b'Hello, World!!!', + headers=modern_headers) + legacy_headers = { + 'x-forwarded-proto': 'https', + 'x-forwarded-host': 'localhost', + 'x-forwarded-for': '192.0.2.11', + } + self._do_test(conf, + expected_code=webob.exc.HTTPOk.code, + expected_body=b'Hello, World!!!', + headers=legacy_headers) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.2.0/oslo_middleware/tests/test_opts.py new/oslo.middleware-6.2.0/oslo_middleware/tests/test_opts.py --- old/oslo.middleware-5.2.0/oslo_middleware/tests/test_opts.py 2023-08-29 14:28:22.000000000 +0200 +++ new/oslo.middleware-6.2.0/oslo_middleware/tests/test_opts.py 2024-08-21 17:11:12.000000000 +0200 @@ -26,6 +26,3 @@ def test_cors(self): opts.list_opts_cors() - - def test_ssl(self): - opts.list_opts_ssl() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.2.0/oslo_middleware/tests/test_ssl.py new/oslo.middleware-6.2.0/oslo_middleware/tests/test_ssl.py --- old/oslo.middleware-5.2.0/oslo_middleware/tests/test_ssl.py 2023-08-29 14:28:22.000000000 +0200 +++ new/oslo.middleware-6.2.0/oslo_middleware/tests/test_ssl.py 1970-01-01 01:00:00.000000000 +0100 @@ -1,57 +0,0 @@ -# Copyright (c) 2015 Thales Services SAS -# All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from oslo_config import fixture as config -from oslotest import base -import webob - -from oslo_middleware import ssl - - -class SSLMiddlewareTest(base.BaseTestCase): - - def setUp(self): - super(SSLMiddlewareTest, self).setUp() - self.useFixture(config.Config()) - - def _test_scheme(self, expected, headers, secure_proxy_ssl_header=None): - middleware = ssl.SSLMiddleware(None) - if secure_proxy_ssl_header: - middleware.oslo_conf.set_override( - 'secure_proxy_ssl_header', secure_proxy_ssl_header, - group='oslo_middleware') - request = webob.Request.blank('http://example.com/', headers=headers) - - # Ensure ssl middleware does not stop pipeline execution - self.assertIsNone(middleware.process_request(request)) - - self.assertEqual(expected, request.scheme) - - def test_without_forwarded_protocol(self): - self._test_scheme('http', {}) - - def test_with_forwarded_protocol(self): - headers = {'X-Forwarded-Proto': 'https'} - self._test_scheme('https', headers) - - def test_with_custom_header(self): - headers = {'X-Forwarded-Proto': 'https'} - self._test_scheme('http', headers, - secure_proxy_ssl_header='X-My-Header') - - def test_with_custom_header_and_forwarded_protocol(self): - headers = {'X-My-Header': 'https'} - self._test_scheme('https', headers, - secure_proxy_ssl_header='X-My-Header') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.2.0/releasenotes/notes/enable-by-files-healthcheck-29938e3d6b8e5730.yaml new/oslo.middleware-6.2.0/releasenotes/notes/enable-by-files-healthcheck-29938e3d6b8e5730.yaml --- old/oslo.middleware-5.2.0/releasenotes/notes/enable-by-files-healthcheck-29938e3d6b8e5730.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/oslo.middleware-6.2.0/releasenotes/notes/enable-by-files-healthcheck-29938e3d6b8e5730.yaml 2024-08-21 17:11:12.000000000 +0200 @@ -0,0 +1,6 @@ +--- +features: + - | + The new ``enable_by_files`` healthcheck plugin has been added. + This plugin will help to check whether specified file paths in + ``[healthcheck] enable_by_file_paths`` are present or not. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.2.0/releasenotes/notes/healthcheck-allowed_source_ranges-9cbaf89f65914851.yaml new/oslo.middleware-6.2.0/releasenotes/notes/healthcheck-allowed_source_ranges-9cbaf89f65914851.yaml --- old/oslo.middleware-5.2.0/releasenotes/notes/healthcheck-allowed_source_ranges-9cbaf89f65914851.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/oslo.middleware-6.2.0/releasenotes/notes/healthcheck-allowed_source_ranges-9cbaf89f65914851.yaml 2024-08-21 17:11:12.000000000 +0200 @@ -0,0 +1,6 @@ +--- +features: + - | + The new ``[healthcheck] allowed_source_ranges`` parameter has been added. + This parameter defines a list of network ranges from which access to + ``/healthcheck`` endpoint is allowed. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.2.0/releasenotes/notes/healthcheck-ignore_proxied_requests-d04d1661bd687bc6.yaml new/oslo.middleware-6.2.0/releasenotes/notes/healthcheck-ignore_proxied_requests-d04d1661bd687bc6.yaml --- old/oslo.middleware-5.2.0/releasenotes/notes/healthcheck-ignore_proxied_requests-d04d1661bd687bc6.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/oslo.middleware-6.2.0/releasenotes/notes/healthcheck-ignore_proxied_requests-d04d1661bd687bc6.yaml 2024-08-21 17:11:12.000000000 +0200 @@ -0,0 +1,13 @@ +--- +features: + - | + The new ``[healthcheck] ignore_proxied_requests`` option has been added. + When this option is set to true, the healthcheck middleware ignores + requests with any of the following headers, which indicates that + the requests came through a reverse proxy or a load balancer. + + - ``x-forwarded`` + - ``x-forwarded-proto`` + - ``x-forwarded-host`` + - ``x-forwarded-for`` + - ``x-forwarded-prefix`` diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.2.0/releasenotes/notes/remove-oslo-namespace-b0f050f074d12aff.yaml new/oslo.middleware-6.2.0/releasenotes/notes/remove-oslo-namespace-b0f050f074d12aff.yaml --- old/oslo.middleware-5.2.0/releasenotes/notes/remove-oslo-namespace-b0f050f074d12aff.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/oslo.middleware-6.2.0/releasenotes/notes/remove-oslo-namespace-b0f050f074d12aff.yaml 2024-08-21 17:11:12.000000000 +0200 @@ -0,0 +1,5 @@ +--- +upgrade: + - | + The ``olso.middleware`` package has been removed. This package was earlier + deprecated to be replaced by the ``oslo_middleware`` package. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.2.0/releasenotes/notes/remove-ssl-middleware-0ce922b05f83c447.yaml new/oslo.middleware-6.2.0/releasenotes/notes/remove-ssl-middleware-0ce922b05f83c447.yaml --- old/oslo.middleware-5.2.0/releasenotes/notes/remove-ssl-middleware-0ce922b05f83c447.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/oslo.middleware-6.2.0/releasenotes/notes/remove-ssl-middleware-0ce922b05f83c447.yaml 2024-08-21 17:11:12.000000000 +0200 @@ -0,0 +1,5 @@ +--- +deprecations: + - | + The SSL middleware has been removed. It was deprecated in favor of + the HTTPProxyToWSGI middleware. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.2.0/releasenotes/source/2023.2.rst new/oslo.middleware-6.2.0/releasenotes/source/2023.2.rst --- old/oslo.middleware-5.2.0/releasenotes/source/2023.2.rst 1970-01-01 01:00:00.000000000 +0100 +++ new/oslo.middleware-6.2.0/releasenotes/source/2023.2.rst 2024-08-21 17:11:12.000000000 +0200 @@ -0,0 +1,6 @@ +=========================== +2023.2 Series Release Notes +=========================== + +.. release-notes:: + :branch: stable/2023.2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.2.0/releasenotes/source/2024.1.rst new/oslo.middleware-6.2.0/releasenotes/source/2024.1.rst --- old/oslo.middleware-5.2.0/releasenotes/source/2024.1.rst 1970-01-01 01:00:00.000000000 +0100 +++ new/oslo.middleware-6.2.0/releasenotes/source/2024.1.rst 2024-08-21 17:11:12.000000000 +0200 @@ -0,0 +1,6 @@ +=========================== +2024.1 Series Release Notes +=========================== + +.. release-notes:: + :branch: stable/2024.1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.2.0/releasenotes/source/index.rst new/oslo.middleware-6.2.0/releasenotes/source/index.rst --- old/oslo.middleware-5.2.0/releasenotes/source/index.rst 2023-08-29 14:28:22.000000000 +0200 +++ new/oslo.middleware-6.2.0/releasenotes/source/index.rst 2024-08-21 17:11:12.000000000 +0200 @@ -6,6 +6,8 @@ :maxdepth: 1 unreleased + 2024.1 + 2023.2 2023.1 zed yoga diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.2.0/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po new/oslo.middleware-6.2.0/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po --- old/oslo.middleware-5.2.0/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po 2023-08-29 14:28:22.000000000 +0200 +++ new/oslo.middleware-6.2.0/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po 2024-08-21 17:11:12.000000000 +0200 @@ -5,11 +5,11 @@ msgstr "" "Project-Id-Version: oslo.middleware\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-27 13:54+0000\n" +"POT-Creation-Date: 2023-09-07 13:30+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"PO-Revision-Date: 2023-06-21 08:57+0000\n" +"PO-Revision-Date: 2023-09-21 01:02+0000\n" "Last-Translator: Andi Chandler <a...@gowling.com>\n" "Language-Team: English (United Kingdom)\n" "Language: en_GB\n" @@ -19,6 +19,9 @@ msgid "2023.1 Series Release Notes" msgstr "2023.1 Series Release Notes" +msgid "2023.2 Series Release Notes" +msgstr "2023.2 Series Release Notes" + msgid "3.20.0" msgstr "3.20.0" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.2.0/releasenotes/source/victoria.rst new/oslo.middleware-6.2.0/releasenotes/source/victoria.rst --- old/oslo.middleware-5.2.0/releasenotes/source/victoria.rst 2023-08-29 14:28:22.000000000 +0200 +++ new/oslo.middleware-6.2.0/releasenotes/source/victoria.rst 2024-08-21 17:11:12.000000000 +0200 @@ -3,4 +3,4 @@ ============================= .. release-notes:: - :branch: stable/victoria + :branch: unmaintained/victoria diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.2.0/releasenotes/source/wallaby.rst new/oslo.middleware-6.2.0/releasenotes/source/wallaby.rst --- old/oslo.middleware-5.2.0/releasenotes/source/wallaby.rst 2023-08-29 14:28:22.000000000 +0200 +++ new/oslo.middleware-6.2.0/releasenotes/source/wallaby.rst 2024-08-21 17:11:12.000000000 +0200 @@ -3,4 +3,4 @@ ============================ .. release-notes:: - :branch: stable/wallaby + :branch: unmaintained/wallaby diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.2.0/releasenotes/source/xena.rst new/oslo.middleware-6.2.0/releasenotes/source/xena.rst --- old/oslo.middleware-5.2.0/releasenotes/source/xena.rst 2023-08-29 14:28:22.000000000 +0200 +++ new/oslo.middleware-6.2.0/releasenotes/source/xena.rst 2024-08-21 17:11:12.000000000 +0200 @@ -3,4 +3,4 @@ ========================= .. release-notes:: - :branch: stable/xena + :branch: unmaintained/xena diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.2.0/releasenotes/source/yoga.rst new/oslo.middleware-6.2.0/releasenotes/source/yoga.rst --- old/oslo.middleware-5.2.0/releasenotes/source/yoga.rst 2023-08-29 14:28:22.000000000 +0200 +++ new/oslo.middleware-6.2.0/releasenotes/source/yoga.rst 2024-08-21 17:11:12.000000000 +0200 @@ -3,4 +3,4 @@ ========================= .. release-notes:: - :branch: stable/yoga + :branch: unmaintained/yoga diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.2.0/releasenotes/source/zed.rst new/oslo.middleware-6.2.0/releasenotes/source/zed.rst --- old/oslo.middleware-5.2.0/releasenotes/source/zed.rst 2023-08-29 14:28:22.000000000 +0200 +++ new/oslo.middleware-6.2.0/releasenotes/source/zed.rst 2024-08-21 17:11:12.000000000 +0200 @@ -3,4 +3,4 @@ ======================== .. release-notes:: - :branch: stable/zed + :branch: unmaintained/zed diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.2.0/requirements.txt new/oslo.middleware-6.2.0/requirements.txt --- old/oslo.middleware-5.2.0/requirements.txt 2023-08-29 14:28:22.000000000 +0200 +++ new/oslo.middleware-6.2.0/requirements.txt 2024-08-21 17:11:12.000000000 +0200 @@ -1,8 +1,4 @@ -# The order of packages is significant, because pip processes them in the order -# of appearance. Changing the order has an impact on the overall integration -# process, which may cause wedges in the gate later. - -pbr!=2.1.0,>=2.0.0 # Apache-2.0 +pbr>=2.0.0 # Apache-2.0 Jinja2>=2.10 # BSD License (3 clause) oslo.config>=5.2.0 # Apache-2.0 oslo.context>=2.19.2 # Apache-2.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.2.0/setup.cfg new/oslo.middleware-6.2.0/setup.cfg --- old/oslo.middleware-5.2.0/setup.cfg 2023-08-29 14:28:51.787379000 +0200 +++ new/oslo.middleware-6.2.0/setup.cfg 2024-08-21 17:11:57.851624300 +0200 @@ -18,6 +18,7 @@ Programming Language :: Python :: 3.8 Programming Language :: Python :: 3.9 Programming Language :: Python :: 3.10 + Programming Language :: Python :: 3.11 Programming Language :: Python :: 3 :: Only Programming Language :: Python :: Implementation :: CPython @@ -30,13 +31,13 @@ oslo.middleware = oslo_middleware.opts:list_opts oslo.middleware.cors = oslo_middleware.opts:list_opts_cors oslo.middleware.sizelimit = oslo_middleware.opts:list_opts_sizelimit - oslo.middleware.ssl = oslo_middleware.opts:list_opts_ssl oslo.middleware.http_proxy_to_wsgi = oslo_middleware.opts:list_opts_http_proxy_to_wsgi oslo.middleware.healthcheck = oslo_middleware.opts:list_opts_healthcheck oslo.middleware.basic_auth = oslo_middleware.opts:list_opts_basic_auth oslo.middleware.healthcheck = disable_by_file = oslo_middleware.healthcheck.disable_by_file:DisableByFileHealthcheck disable_by_files_ports = oslo_middleware.healthcheck.disable_by_file:DisableByFilesPortsHealthcheck + enable_by_files = oslo_middleware.healthcheck.enable_by_files:EnableByFilesHealthcheck paste.app_factory = healthcheck = oslo_middleware:Healthcheck.app_factory paste.filter_factory = @@ -49,7 +50,6 @@ http_proxy_to_wsgi = oslo_middleware:HTTPProxyToWSGI.factory request_id = oslo_middleware:RequestId.factory sizelimit = oslo_middleware:RequestBodySizeLimiter.factory - ssl = oslo_middleware:SSLMiddleware.factory [egg_info] tag_build = diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.2.0/test-requirements.txt new/oslo.middleware-6.2.0/test-requirements.txt --- old/oslo.middleware-5.2.0/test-requirements.txt 2023-08-29 14:28:22.000000000 +0200 +++ new/oslo.middleware-6.2.0/test-requirements.txt 2024-08-21 17:11:12.000000000 +0200 @@ -1,15 +1,6 @@ -# The order of packages is significant, because pip processes them in the order -# of appearance. Changing the order has an impact on the overall integration -# process, which may cause wedges in the gate later. - fixtures>=3.0.0 # Apache-2.0/BSD -hacking>=3.0.1,<3.1.0 # Apache-2.0 oslotest>=3.2.0 # Apache-2.0 testtools>=2.2.0 # MIT -coverage!=4.4,>=4.0 # Apache-2.0 -oslo.serialization!=2.19.1,>=2.18.0 # Apache-2.0 -# Bandit security code scanner -bandit>=1.7.0,<1.8.0 # Apache-2.0 +coverage>=4.0 # Apache-2.0 +oslo.serialization>=2.18.0 # Apache-2.0 stestr>=2.0.0 # Apache-2.0 - -pre-commit>=2.6.0 # MIT diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.2.0/tox.ini new/oslo.middleware-6.2.0/tox.ini --- old/oslo.middleware-5.2.0/tox.ini 2023-08-29 14:28:22.000000000 +0200 +++ new/oslo.middleware-6.2.0/tox.ini 2024-08-21 17:11:12.000000000 +0200 @@ -11,10 +11,10 @@ commands = stestr run --slowest {posargs} [testenv:pep8] +deps = + pre-commit commands = pre-commit run -a - # Run security linter - bandit -r oslo_middleware -x tests -n5 [testenv:venv] commands = {posargs}