-
Notifications
You must be signed in to change notification settings - Fork 2.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ignore chmod events on UI config watcher. #2254
Conversation
Signed-off-by: Ruben Vargas <ruben.vp8510@gmail.com>
What could be causing so frequent reloads in the original ticket? |
cmd/query/app/static_handler.go
Outdated
@@ -149,16 +149,17 @@ func (sH *StaticAssetsHandler) watch() { | |||
} | |||
continue | |||
} | |||
if event.Op&fsnotify.Write == fsnotify.Write || event.Op&fsnotify.Create == fsnotify.Create { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- reduce nesting by inverting the condition and calling
continue
, as above - should this be checking
event.Name
to match the actual config file, rather than reacting to all changes in the directory? - another option to reduce logging is to compare the file context before and after, and only log on changed content. This is the approach taken for reloading sampling strategies file
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
-
Ok, sounds reasonable.
-
I agree , but at the same time I'm not sure why in https://github.com/jaegertracing/jaeger/pull/2254/files#diff-5893b37f4eb854b962cce2c3be922456R180 we watch directory changes too, that line gave me the impression that we want to react to directory changes , but not sure why and I might be misunderstanding something here.
-
Compare file content, we can do that, or we can compute the md5sum or something like that. but Do we really need that? The only scenario which I observed the excessive logging is due
CHMOD
events, of course can be other scenarios and a comparison could prevent future issues with like this one.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
2 - I remember something about renaming in k8s, etc. which required watching the directory. And when watching the directory, there could be many other changes happening, although it's still strange that the user experience logs every 0.5s. By checking that the event is actually for the file name we want we can eliminate all other events in the dir.
3 - we can try with just adding the name check, although doing a full comparison on (string)content
is trivial, just a couple of lines right in this function.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I did all except the content comparison, I don't think we need it at this point but if you think is good I can add it, as you said is a trivial thing to do.
cmd/query/app/static_handler.go
Outdated
@@ -149,16 +149,17 @@ func (sH *StaticAssetsHandler) watch() { | |||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
L140: could we please refactor this nested go func()
into a top function? There are 5 levels of indentation/nesting here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done, I separated the go func()
into another function. That removes some indentation levels.
As showing here: jaegertracing/jaeger-operator#934 (comment), for some reason that still not clear to me, when the UI configuration is on a kubernetes/openshift |
Signed-off-by: Ruben Vargas <ruben.vp8510@gmail.com>
cmd/query/app/static_handler.go
Outdated
if event.Op&fsnotify.Remove == fsnotify.Remove { | ||
// this might be related to a file inside the dir, so, just log a warn if this is about the file we care about | ||
// otherwise, just ignore the event | ||
if event.Name == sH.options.UIConfigPath { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think this is correct comparison. Based on the documentation of event.Name
, it is the name of the file without the path, whereas UIConfigPath
may contain the path.
You probably want filepath.Base(UIConfigPath)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
also, this check could be done first, before checking for event.Op
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The documentation says relative path: https://godoc.org/github.com/fsnotify/fsnotify#Event
Anyway, for comparison proposes I get the base of both.
Signed-off-by: Ruben Vargas <ruben.vp8510@gmail.com>
Codecov Report
@@ Coverage Diff @@
## master #2254 +/- ##
==========================================
- Coverage 96.15% 96.13% -0.02%
==========================================
Files 219 219
Lines 10652 10658 +6
==========================================
+ Hits 10242 10246 +4
- Misses 354 355 +1
- Partials 56 57 +1
Continue to review full report at Codecov.
|
cmd/query/app/static_handler.go
Outdated
if filepath.Base(event.Name) != filepath.Base(sH.options.UIConfigPath) || event.Op&fsnotify.Chmod == fsnotify.Chmod { | ||
continue | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
no need to combine unrelated checks
if filepath.Base(event.Name) != filepath.Base(sH.options.UIConfigPath) || event.Op&fsnotify.Chmod == fsnotify.Chmod { | |
continue | |
} | |
if filepath.Base(event.Name) != filepath.Base(sH.options.UIConfigPath) { | |
continue | |
} | |
if event.Op&fsnotify.Chmod == fsnotify.Chmod { | |
continue | |
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, I just want to have a more compact code. but sure I'll separe it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
one little nit, otherwise lgtm
Signed-off-by: Ruben Vargas <ruben.vp8510@gmail.com>
Bumps the all group in /docker-compose/monitor with 4 updates: [deprecated](https://github.com/tantale/deprecated), [typing-extensions](https://github.com/python/typing_extensions), [urllib3](https://github.com/urllib3/urllib3) and [wrapt](https://github.com/GrahamDumpleton/wrapt). Updates `deprecated` from 1.2.13 to 1.2.14 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tantale/deprecated/releases">deprecated's releases</a>.</em></p> <blockquote> <h2>v1.2.14</h2> <h2>Fix</h2> <ul> <li>Fix <a href="https://redirect.github.com/tantale/deprecated/issues/60">#60</a>: return a correctly dedented docstring when long docstring are using the D212 or D213 format.</li> </ul> <h2>Other</h2> <ul> <li>Add support for Python 3.11.</li> <li>Drop support for Python older than 3.7 in build systems like pytest and tox, while ensuring the library remains production-compatible.</li> <li>Update GitHub workflow to run in recent Python versions.</li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/hugovk"><code>@hugovk</code></a> made their first contribution in <a href="https://redirect.github.com/tantale/deprecated/pull/52">tantale/deprecated#52</a></li> <li><a href="https://github.com/12rambau"><code>@12rambau</code></a> made their first contribution in <a href="https://redirect.github.com/tantale/deprecated/pull/61">tantale/deprecated#61</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/tantale/deprecated/compare/v1.2.13...v1.2.14">https://github.com/tantale/deprecated/compare/v1.2.13...v1.2.14</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tantale/deprecated/blob/master/CHANGELOG.rst">deprecated's changelog</a>.</em></p> <blockquote> <h1>v1.2.14 (2023-05-27)</h1> <p>Bug fix release</p> <h2>Fix</h2> <ul> <li>Fix <a href="https://redirect.github.com/tantale/deprecated/issues/60">#60</a>: return a correctly dedented docstring when long docstring are using the D212 or D213 format.</li> </ul> <h2>Other</h2> <ul> <li> <p>Add support for Python 3.11.</p> </li> <li> <p>Drop support for Python older than 3.7 in build systems like pytest and tox, while ensuring the library remains production-compatible.</p> </li> <li> <p>Update GitHub workflow to run in recent Python versions.</p> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tantale/deprecated/commit/378636d8a1e3d62d5894329c57f44ba0030c2dbd"><code>378636d</code></a> Drops seemingly unused importlib-metadata dev dep</li> <li><a href="https://github.com/tantale/deprecated/commit/325b764f528c36c419b187ead4d537ac3cfc3d6a"><code>325b764</code></a> Fixes comment on which version is development branch</li> <li><a href="https://github.com/tantale/deprecated/commit/291b34a000001a29c1aecd5f702a283776daa43f"><code>291b34a</code></a> Adds Pythons dropped notice to changelog</li> <li><a href="https://github.com/tantale/deprecated/commit/204eccd311e95b7d1ce1cfef0aec9349dc2ca7cd"><code>204eccd</code></a> Drops limitation on tox < 4 since bug was fixed</li> <li><a href="https://github.com/tantale/deprecated/commit/2660239db51b2a157d505537f287ef1de3461fd8"><code>2660239</code></a> Adds srpm_build_deps to Packit config</li> <li><a href="https://github.com/tantale/deprecated/commit/54a53d7d5822009193d3057cde88665cdb233169"><code>54a53d7</code></a> Try explicitly setting AppVeyor image to VS2022</li> <li><a href="https://github.com/tantale/deprecated/commit/2b79e57c4ab5f52d124c01c3da7041d3f3f63755"><code>2b79e57</code></a> Exclude pypy3 on ppc64le on Travis builds</li> <li><a href="https://github.com/tantale/deprecated/commit/bf33f948b70b04cf3e8f598575bb23206abe2813"><code>bf33f94</code></a> Drops old Pythons and adds newer ones for Appveyor build</li> <li><a href="https://github.com/tantale/deprecated/commit/682989d8d7fcd3b2cff7a42a58d966791aef9a52"><code>682989d</code></a> Drop the .9 from pypy3 in tox.ini</li> <li><a href="https://github.com/tantale/deprecated/commit/3919edf1f1ca89a67c929704d80a604b995690b3"><code>3919edf</code></a> Use specifically pypy3.9 v7.3.9</li> <li>Additional commits viewable in <a href="https://github.com/tantale/deprecated/compare/v1.2.13...v1.2.14">compare view</a></li> </ul> </details> <br /> Updates `typing-extensions` from 4.4.0 to 4.7.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/python/typing_extensions/releases">typing-extensions's releases</a>.</em></p> <blockquote> <h2>4.7.1</h2> <ul> <li>Fix support for <code>TypedDict</code>, <code>NamedTuple</code> and <code>is_protocol</code> on PyPy-3.7 and PyPy-3.8. Patch by Alex Waygood. Note that PyPy-3.7 and PyPy-3.8 are unsupported by the PyPy project. The next feature release of typing-extensions will drop support for PyPy-3.7 and may also drop support for PyPy-3.8.</li> </ul> <h2>4.7.0</h2> <p>This is a feature release. Major changes include:</p> <ul> <li>All non-deprecated names from <code>typing</code> are now re-exported by <code>typing_extensions</code> for convenience</li> <li>Add <code>typing_extensions.get_protocol_members</code> and <code>typing_extensions.is_protocol</code></li> <li>Declare support for Python 3.12</li> <li>This will be the last feature release to support Python 3.7, which recently reached its end-of-life</li> </ul> <p>Full changelog of versions 4.7.0 and 4.7.0rc1:</p> <h1>Release 4.7.0 (June 28, 2023)</h1> <ul> <li>This is expected to be the last feature release supporting Python 3.7, which reaches its end of life on June 27, 2023. Version 4.8.0 will support only Python 3.8.0 and up.</li> <li>Fix bug where a <code>typing_extensions.Protocol</code> class that had one or more non-callable members would raise <code>TypeError</code> when <code>issubclass()</code> was called against it, even if it defined a custom <code>__subclasshook__</code> method. The correct behaviour -- which has now been restored -- is not to raise <code>TypeError</code> in these situations if a custom <code>__subclasshook__</code> method is defined. Patch by Alex Waygood (backporting <a href="https://redirect.github.com/python/cpython/pull/105976">python/cpython#105976</a>).</li> </ul> <h1>Release 4.7.0rc1 (June 21, 2023)</h1> <ul> <li>Add <code>typing_extensions.get_protocol_members</code> and <code>typing_extensions.is_protocol</code> (backport of CPython PR <a href="https://redirect.github.com/python/typing_extensions/issues/104878">#104878</a>). Patch by Jelle Zijlstra.</li> <li><code>typing_extensions</code> now re-exports all names in the standard library's <code>typing</code> module, except the deprecated <code>ByteString</code>. Patch by Jelle Zijlstra.</li> <li>Due to changes in the implementation of <code>typing_extensions.Protocol</code>, <code>typing.runtime_checkable</code> can now be used on <code>typing_extensions.Protocol</code> (previously, users had to use <code>typing_extensions.runtime_checkable</code> if they were using <code>typing_extensions.Protocol</code>).</li> <li>Align the implementation of <code>TypedDict</code> with the implementation in the standard library on Python 3.9 and higher. <code>typing_extensions.TypedDict</code> is now a function instead of a class. The private functions <code>_check_fails</code>, <code>_dict_new</code>, and <code>_typeddict_new</code> have been removed. <code>is_typeddict</code> now returns <code>False</code> when called with <code>TypedDict</code> itself as the argument. Patch by Jelle Zijlstra.</li> <li>Declare support for Python 3.12. Patch by Jelle Zijlstra.</li> <li>Fix tests on Python 3.13, which removes support for creating <code>TypedDict</code> classes through the keyword-argument syntax. Patch by</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/python/typing_extensions/blob/main/CHANGELOG.md">typing-extensions's changelog</a>.</em></p> <blockquote> <h1>Release 4.7.1 (July 2, 2023)</h1> <ul> <li>Fix support for <code>TypedDict</code>, <code>NamedTuple</code> and <code>is_protocol</code> on PyPy-3.7 and PyPy-3.8. Patch by Alex Waygood. Note that PyPy-3.7 and PyPy-3.8 are unsupported by the PyPy project. The next feature release of typing-extensions will drop support for PyPy-3.7 and may also drop support for PyPy-3.8.</li> </ul> <h1>Release 4.7.0 (June 28, 2023)</h1> <ul> <li>This is expected to be the last feature release supporting Python 3.7, which reaches its end of life on June 27, 2023. Version 4.8.0 will support only Python 3.8.0 and up.</li> <li>Fix bug where a <code>typing_extensions.Protocol</code> class that had one or more non-callable members would raise <code>TypeError</code> when <code>issubclass()</code> was called against it, even if it defined a custom <code>__subclasshook__</code> method. The correct behaviour -- which has now been restored -- is not to raise <code>TypeError</code> in these situations if a custom <code>__subclasshook__</code> method is defined. Patch by Alex Waygood (backporting <a href="https://redirect.github.com/python/cpython/pull/105976">python/cpython#105976</a>).</li> </ul> <h1>Release 4.7.0rc1 (June 21, 2023)</h1> <ul> <li>Add <code>typing_extensions.get_protocol_members</code> and <code>typing_extensions.is_protocol</code> (backport of CPython PR <a href="https://redirect.github.com/python/typing_extensions/issues/104878">#104878</a>). Patch by Jelle Zijlstra.</li> <li><code>typing_extensions</code> now re-exports all names in the standard library's <code>typing</code> module, except the deprecated <code>ByteString</code>. Patch by Jelle Zijlstra.</li> <li>Due to changes in the implementation of <code>typing_extensions.Protocol</code>, <code>typing.runtime_checkable</code> can now be used on <code>typing_extensions.Protocol</code> (previously, users had to use <code>typing_extensions.runtime_checkable</code> if they were using <code>typing_extensions.Protocol</code>).</li> <li>Align the implementation of <code>TypedDict</code> with the implementation in the standard library on Python 3.9 and higher. <code>typing_extensions.TypedDict</code> is now a function instead of a class. The private functions <code>_check_fails</code>, <code>_dict_new</code>, and <code>_typeddict_new</code> have been removed. <code>is_typeddict</code> now returns <code>False</code> when called with <code>TypedDict</code> itself as the argument. Patch by Jelle Zijlstra.</li> <li>Declare support for Python 3.12. Patch by Jelle Zijlstra.</li> <li>Fix tests on Python 3.13, which removes support for creating <code>TypedDict</code> classes through the keyword-argument syntax. Patch by Jelle Zijlstra.</li> <li>Fix a regression introduced in v4.6.3 that meant that <code>issubclass(object, typing_extensions.Protocol)</code> would erroneously raise <code>TypeError</code>. Patch by Alex Waygood (backporting the CPython PR <a href="https://redirect.github.com/python/cpython/pull/105239">python/cpython#105239</a>).</li> <li>Allow <code>Protocol</code> classes to inherit from <code>typing_extensions.Buffer</code> or <code>collections.abc.Buffer</code>. Patch by Alex Waygood (backporting <a href="https://redirect.github.com/python/cpython/pull/104827">python/cpython#104827</a>, by Jelle Zijlstra).</li> <li>Allow classes to inherit from both <code>typing.Protocol</code> and <code>typing_extensions.Protocol</code></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/python/typing_extensions/commit/b518f6a64400fd5a25e5b72668370b9792ef9ae6"><code>b518f6a</code></a> Prepare release 4.7.1 (<a href="https://redirect.github.com/python/typing_extensions/issues/264">#264</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/dcdc53f62ecbea8a0fc9a42f66746f970ab101bb"><code>dcdc53f</code></a> Restore compatibility with PyPy <3.9 (<a href="https://redirect.github.com/python/typing_extensions/issues/262">#262</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/bc9bc065f1837955fca2fff57b9e5fa04a2713cb"><code>bc9bc06</code></a> Run some mypyc tests in the third-party workflow (<a href="https://redirect.github.com/python/typing_extensions/issues/260">#260</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/fc5243bc14071dbf65c92202a5239d66c35abcb2"><code>fc5243b</code></a> Run tests on more pypy versions in CI (<a href="https://redirect.github.com/python/typing_extensions/issues/259">#259</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/b3ddcb6a94e7935166b3786ed0c1c54f1fc541b3"><code>b3ddcb6</code></a> Stop running third-party tests on 3.7 (<a href="https://redirect.github.com/python/typing_extensions/issues/257">#257</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/633d2e2942372848d8d7859cf71a569259dba9ee"><code>633d2e2</code></a> 4.7.0 final (<a href="https://redirect.github.com/python/typing_extensions/issues/255">#255</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/3193f90d18e50a19725ed47bb8fe586c234b9449"><code>3193f90</code></a> CHANGELOG: Mention expected end of 3.7 support (<a href="https://redirect.github.com/python/typing_extensions/issues/253">#253</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/e65b036661eb472a3682eca1ceb78eb57b21d200"><code>e65b036</code></a> Backport CPython PR 105976 (<a href="https://redirect.github.com/python/typing_extensions/issues/252">#252</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/e703629a339a670b44a3612f87bfa90a49c794f0"><code>e703629</code></a> README improvements (<a href="https://redirect.github.com/python/typing_extensions/issues/250">#250</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/a65658fcbc0a86e529e1c46a4eaa5fee4f150607"><code>a65658f</code></a> Update CONTRIBUTING.md (<a href="https://redirect.github.com/python/typing_extensions/issues/249">#249</a>)</li> <li>Additional commits viewable in <a href="https://github.com/python/typing_extensions/compare/4.4.0...4.7.1">compare view</a></li> </ul> </details> <br /> Updates `urllib3` from 1.26.12 to 2.0.4 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/urllib3/urllib3/releases">urllib3's releases</a>.</em></p> <blockquote> <h2>2.0.4</h2> <ul> <li>Added support for union operators to <code>HTTPHeaderDict</code> (<a href="https://redirect.github.com/urllib3/urllib3/issues/2254">#2254</a>)</li> <li>Added <code>BaseHTTPResponse</code> to <code>urllib3.__all__</code> (<a href="https://redirect.github.com/urllib3/urllib3/issues/3078">#3078</a>)</li> <li>Fixed <code>urllib3.connection.HTTPConnection</code> to raise the <code>http.client.connect</code> audit event to have the same behavior as the standard library HTTP client (<a href="https://redirect.github.com/urllib3/urllib3/issues/2757">#2757</a>)</li> <li>Relied on the standard library for checking hostnames in supported PyPy releases (<a href="https://redirect.github.com/urllib3/urllib3/issues/3087">#3087</a>)</li> </ul> <h2>2.0.3</h2> <ul> <li>Allowed alternative SSL libraries such as LibreSSL, while still issuing a warning as we cannot help users facing issues with implementations other than OpenSSL. <a href="https://redirect.github.com/urllib3/urllib3/issues/3020">#3020</a></li> <li>Deprecated URLs which don't have an explicit scheme <a href="https://redirect.github.com/urllib3/urllib3/pull/2950">#2950</a></li> <li>Fixed response decoding with Zstandard when compressed data is made of several frames. <a href="https://redirect.github.com/urllib3/urllib3/issues/3008">#3008</a></li> <li>Fixed <code>assert_hostname=False</code> to correctly skip hostname check. <a href="https://redirect.github.com/urllib3/urllib3/issues/3051">#3051</a></li> </ul> <h2>2.0.2</h2> <ul> <li>Fixed <code>HTTPResponse.stream()</code> to continue yielding bytes if buffered decompressed data was still available to be read even if the underlying socket is closed. This prevents a compressed response from being truncated. (<a href="https://redirect.github.com/urllib3/urllib3/issues/3009">urllib3/urllib3#3009</a>)</li> </ul> <h2>2.0.1</h2> <ul> <li>Fixed a socket leak when fingerprint or hostname verifications fail. (<a href="https://redirect.github.com/urllib3/urllib3/issues/2991">#2991</a>)</li> <li>Fixed an error when <code>HTTPResponse.read(0)</code> was the first <code>read</code> call or when the internal response body buffer was otherwise empty. (<a href="https://redirect.github.com/urllib3/urllib3/issues/2998">#2998</a>)</li> </ul> <h2>2.0.0</h2> <p>Read the <a href="https://urllib3.readthedocs.io/en/latest/v2-migration-guide.html">v2.0 migration guide</a> for help upgrading to the latest version of urllib3.</p> <h1>Removed</h1> <ul> <li>Removed support for Python 2.7, 3.5, and 3.6 (<a href="https://redirect.github.com/urllib3/urllib3/issues/883">#883</a>, <a href="https://redirect.github.com/urllib3/urllib3/issues/2336">#2336</a>).</li> <li>Removed fallback on certificate <code>commonName</code> in <code>match_hostname()</code> function. This behavior was deprecated in May 2000 in RFC 2818. Instead only <code>subjectAltName</code> is used to verify the hostname by default. To enable verifying the hostname against <code>commonName</code> use <code>SSLContext.hostname_checks_common_name = True</code> (<a href="https://redirect.github.com/urllib3/urllib3/issues/2113">#2113</a>).</li> <li>Removed support for Python with an <code>ssl</code> module compiled with LibreSSL, CiscoSSL, wolfSSL, and all other OpenSSL alternatives. Python is moving to require OpenSSL with PEP 644 (<a href="https://redirect.github.com/urllib3/urllib3/issues/2168">#2168</a>).</li> <li>Removed support for OpenSSL versions earlier than 1.1.1 or that don't have SNI support. When an incompatible OpenSSL version is detected an <code>ImportError</code> is raised (<a href="https://redirect.github.com/urllib3/urllib3/issues/2168">#2168</a>).</li> <li>Removed the list of default ciphers for OpenSSL 1.1.1+ and SecureTransport as their own defaults are already secure (<a href="https://redirect.github.com/urllib3/urllib3/issues/2082">#2082</a>).</li> <li>Removed <code>urllib3.contrib.appengine.AppEngineManager</code> and support for Google App Engine Standard Environment (<a href="https://redirect.github.com/urllib3/urllib3/issues/2044">#2044</a>).</li> <li>Removed deprecated <code>Retry</code> options <code>method_whitelist</code>, <code>DEFAULT_REDIRECT_HEADERS_BLACKLIST</code> (<a href="https://redirect.github.com/urllib3/urllib3/issues/2086">#2086</a>).</li> <li>Removed <code>urllib3.HTTPResponse.from_httplib</code> (<a href="https://redirect.github.com/urllib3/urllib3/issues/2648">#2648</a>).</li> <li>Removed default value of <code>None</code> for the <code>request_context</code> parameter of <code>urllib3.PoolManager.connection_from_pool_key</code>. This change should have no effect on users as the default value of <code>None</code> was an invalid option and was never used (<a href="https://redirect.github.com/urllib3/urllib3/issues/1897">#1897</a>).</li> <li>Removed the <code>urllib3.request</code> module. <code>urllib3.request.RequestMethods</code> has been made a private API. This change was made to ensure that <code>from urllib3 import request</code> imported the top-level <code>request()</code> function instead of the <code>urllib3.request</code> module (<a href="https://redirect.github.com/urllib3/urllib3/issues/2269">#2269</a>).</li> <li>Removed support for SSLv3.0 from the <code>urllib3.contrib.pyopenssl</code> even when support is available from the compiled OpenSSL library (<a href="https://redirect.github.com/urllib3/urllib3/issues/2233">#2233</a>).</li> <li>Removed the deprecated <code>urllib3.contrib.ntlmpool</code> module (<a href="https://redirect.github.com/urllib3/urllib3/issues/2339">#2339</a>).</li> <li>Removed <code>DEFAULT_CIPHERS</code>, <code>HAS_SNI</code>, <code>USE_DEFAULT_SSLCONTEXT_CIPHERS</code>, from the private module <code>urllib3.util.ssl_</code> (<a href="https://redirect.github.com/urllib3/urllib3/issues/2168">#2168</a>).</li> <li>Removed <code>urllib3.exceptions.SNIMissingWarning</code> (<a href="https://redirect.github.com/urllib3/urllib3/issues/2168">#2168</a>).</li> <li>Removed the <code>_prepare_conn</code> method from <code>HTTPConnectionPool</code>. Previously this was only used to call <code>HTTPSConnection.set_cert()</code> by <code>HTTPSConnectionPool</code> (<a href="https://redirect.github.com/urllib3/urllib3/issues/1985">#1985</a>).</li> <li>Removed <code>tls_in_tls_required</code> property from <code>HTTPSConnection</code>. This is now determined from the <code>scheme</code> parameter in <code>HTTPConnection.set_tunnel()</code> (<a href="https://redirect.github.com/urllib3/urllib3/issues/1985">#1985</a>).</li> </ul> <h1>Deprecated</h1> <ul> <li>Deprecated <code>HTTPResponse.getheaders()</code> and <code>HTTPResponse.getheader()</code> which will be removed in urllib3 v2.1.0. Instead use <code>HTTPResponse.headers</code> and <code>HTTPResponse.headers.get(name, default)</code>. (<a href="https://redirect.github.com/urllib3/urllib3/issues/1543">#1543</a>, <a href="https://redirect.github.com/urllib3/urllib3/issues/2814">#2814</a>).</li> <li>Deprecated <code>urllib3.contrib.pyopenssl</code> module which will be removed in urllib3 v2.1.0 (<a href="https://redirect.github.com/urllib3/urllib3/issues/2691">#2691</a>).</li> <li>Deprecated <code>urllib3.contrib.securetransport</code> module which will be removed in urllib3 v2.1.0 (<a href="https://redirect.github.com/urllib3/urllib3/issues/2692">#2692</a>).</li> <li>Deprecated <code>ssl_version</code> option in favor of <code>ssl_minimum_version</code>. <code>ssl_version</code> will be removed in urllib3 v2.1.0 (<a href="https://redirect.github.com/urllib3/urllib3/issues/2110">#2110</a>).</li> <li>Deprecated the <code>strict</code> parameter as it's not longer needed in Python 3.x. It will be removed in urllib3 v2.1.0 (<a href="https://redirect.github.com/urllib3/urllib3/issues/2267">#2267</a>)</li> <li>Deprecated the <code>NewConnectionError.pool</code> attribute which will be removed in urllib3 v2.1.0 (<a href="https://redirect.github.com/urllib3/urllib3/issues/2271">#2271</a>).</li> <li>Deprecated <code>format_header_param_html5</code> and <code>format_header_param</code> in favor of <code>format_multipart_header_param</code> (<a href="https://redirect.github.com/urllib3/urllib3/issues/2257">#2257</a>).</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/urllib3/urllib3/blob/main/CHANGES.rst">urllib3's changelog</a>.</em></p> <blockquote> <h1>2.0.4 (2023-07-19)</h1> <ul> <li>Added support for union operators to <code>HTTPHeaderDict</code> (<code>[#2254](urllib3/urllib3#2254) <https://github.com/urllib3/urllib3/issues/2254></code>__)</li> <li>Added <code>BaseHTTPResponse</code> to <code>urllib3.__all__</code> (<code>[#3078](urllib3/urllib3#3078) <https://github.com/urllib3/urllib3/issues/3078></code>__)</li> <li>Fixed <code>urllib3.connection.HTTPConnection</code> to raise the <code>http.client.connect</code> audit event to have the same behavior as the standard library HTTP client (<code>[#2757](urllib3/urllib3#2757) <https://github.com/urllib3/urllib3/issues/2757></code>__)</li> <li>Relied on the standard library for checking hostnames in supported PyPy releases (<code>[#3087](urllib3/urllib3#3087) <https://github.com/urllib3/urllib3/issues/3087></code>__)</li> </ul> <h1>2.0.3 (2023-06-07)</h1> <ul> <li>Allowed alternative SSL libraries such as LibreSSL, while still issuing a warning as we cannot help users facing issues with implementations other than OpenSSL. (<code>[#3020](urllib3/urllib3#3020) <https://github.com/urllib3/urllib3/issues/3020></code>__)</li> <li>Deprecated URLs which don't have an explicit scheme (<code>[#2950](urllib3/urllib3#2950) <https://github.com/urllib3/urllib3/pull/2950></code>_)</li> <li>Fixed response decoding with Zstandard when compressed data is made of several frames. (<code>[#3008](urllib3/urllib3#3008) <https://github.com/urllib3/urllib3/issues/3008></code>__)</li> <li>Fixed <code>assert_hostname=False</code> to correctly skip hostname check. (<code>[#3051](urllib3/urllib3#3051) <https://github.com/urllib3/urllib3/issues/3051></code>__)</li> </ul> <h1>2.0.2 (2023-05-03)</h1> <ul> <li>Fixed <code>HTTPResponse.stream()</code> to continue yielding bytes if buffered decompressed data was still available to be read even if the underlying socket is closed. This prevents a compressed response from being truncated. (<code>[#3009](urllib3/urllib3#3009) <https://github.com/urllib3/urllib3/issues/3009></code>__)</li> </ul> <h1>2.0.1 (2023-04-30)</h1> <ul> <li>Fixed a socket leak when fingerprint or hostname verifications fail. (<code>[#2991](urllib3/urllib3#2991) <https://github.com/urllib3/urllib3/issues/2991></code>__)</li> <li>Fixed an error when <code>HTTPResponse.read(0)</code> was the first <code>read</code> call or when the internal response body buffer was otherwise empty. (<code>[#2998](urllib3/urllib3#2998) <https://github.com/urllib3/urllib3/issues/2998></code>__)</li> </ul> <h1>2.0.0 (2023-04-26)</h1> <p>Read the <code>v2.0 migration guide <https://urllib3.readthedocs.io/en/latest/v2-migration-guide.html></code>__ for help upgrading to the latest version of urllib3.</p> <h2>Removed</h2> <ul> <li>Removed support for Python 2.7, 3.5, and 3.6 (<code>[#883](urllib3/urllib3#883) <https://github.com/urllib3/urllib3/issues/883></code><strong>, <code>[#2336](urllib3/urllib3#2336) <https://github.com/urllib3/urllib3/issues/2336></code></strong>).</li> <li>Removed fallback on certificate <code>commonName</code> in <code>match_hostname()</code> function. This behavior was deprecated in May 2000 in RFC 2818. Instead only <code>subjectAltName</code> is used to verify the hostname by default. To enable verifying the hostname against <code>commonName</code> use <code>SSLContext.hostname_checks_common_name = True</code> (<code>[#2113](urllib3/urllib3#2113) <https://github.com/urllib3/urllib3/issues/2113></code>__).</li> <li>Removed support for Python with an <code>ssl</code> module compiled with LibreSSL, CiscoSSL, wolfSSL, and all other OpenSSL alternatives. Python is moving to require OpenSSL with PEP 644 (<code>[#2168](urllib3/urllib3#2168) <https://github.com/urllib3/urllib3/issues/2168></code>__).</li> <li>Removed support for OpenSSL versions earlier than 1.1.1 or that don't have SNI support. When an incompatible OpenSSL version is detected an <code>ImportError</code> is raised (<code>[#2168](urllib3/urllib3#2168) <https://github.com/urllib3/urllib3/issues/2168></code>__).</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/urllib3/urllib3/commit/c9fa144545eedb5dc4a2cc3f255e95602a1d7db0"><code>c9fa144</code></a> Release version 2.0.4 (<a href="https://redirect.github.com/urllib3/urllib3/issues/3084">#3084</a>)</li> <li><a href="https://github.com/urllib3/urllib3/commit/d40d146765a7f7a899427c8add54de67b4b6599a"><code>d40d146</code></a> Add Illia to CODEOWNERS</li> <li><a href="https://github.com/urllib3/urllib3/commit/0a375d19243efb08c9d8a0f3356701ca11ef9791"><code>0a375d1</code></a> Raise <code>http.client.connect</code> audit events in <code>HTTPConnection</code> (<a href="https://redirect.github.com/urllib3/urllib3/issues/2859">#2859</a>)</li> <li><a href="https://github.com/urllib3/urllib3/commit/c056eb3df6aae4d1dff0365baded46235d413520"><code>c056eb3</code></a> Bump actions/setup-python from 4.6.0 to 4.7.0</li> <li><a href="https://github.com/urllib3/urllib3/commit/a1c184b298823f13dd34c783d56ea538848282f1"><code>a1c184b</code></a> Remove warnings filters fixed in pytest 7.4.0 (<a href="https://redirect.github.com/urllib3/urllib3/issues/3086">#3086</a>)</li> <li><a href="https://github.com/urllib3/urllib3/commit/609c5464cc9d2673549b651b713e07424517fa85"><code>609c546</code></a> Add support for union operators to <code>HTTPHeaderDict</code> (<a href="https://redirect.github.com/urllib3/urllib3/issues/2943">#2943</a>)</li> <li><a href="https://github.com/urllib3/urllib3/commit/05b21ca5d29764aae60c72e4e3bfceead0f70f95"><code>05b21ca</code></a> Bump cryptography from 41.0.0 to 41.0.2</li> <li><a href="https://github.com/urllib3/urllib3/commit/9aa0d4f6cb0d4b34e20fafed4481ac7d785d4969"><code>9aa0d4f</code></a> Bump cryptography from 39.0.1 to 41.0.0 (<a href="https://redirect.github.com/urllib3/urllib3/issues/3057">#3057</a>)</li> <li><a href="https://github.com/urllib3/urllib3/commit/326c4238cbabe85007aa7b1f2e80b880fd01d903"><code>326c423</code></a> Rely on the standard library for checking hostnames in supported PyPy releases</li> <li><a href="https://github.com/urllib3/urllib3/commit/d0ac08d58511c4121138bd46436076409d21acbf"><code>d0ac08d</code></a> Bump gh-action-pypi-publish to v1.8.8</li> <li>Additional commits viewable in <a href="https://github.com/urllib3/urllib3/compare/1.26.12...2.0.4">compare view</a></li> </ul> </details> <br /> Updates `wrapt` from 1.14.1 to 1.15.0 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/GrahamDumpleton/wrapt/blob/develop/docs/changes.rst">wrapt's changelog</a>.</em></p> <blockquote> <h2>Version 1.15.0</h2> <p><strong>Bugs Fixed</strong></p> <ul> <li> <p>When the C extension for wrapt was being used, and a property was used on an object proxy wrapping another object to intercept access to an attribute of the same name on the wrapped object, if the function implementing the property raised an exception, then the exception was ignored and not propagated back to the caller. What happened instead was that the original value of the attribute from the wrapped object was returned, thus silently suppressing that an exception had occurred in the wrapper. This behaviour was not happening when the pure Python version of wrapt was being used, with it raising the exception. The pure Python and C extension implementations thus did not behave the same.</p> <p>Note that in the specific case that the exception raised is AttributeError it still wouldn't be raised. This is the case for both Python and C extension implementations. If a wrapper for an attribute internally raises an AttributeError for some reason, the wrapper should if necessary catch the exception and deal with it, or propagate it as a different exception type if it is important that an exception still be passed back.</p> </li> <li> <p>Address issue where the post import hook mechanism of wrapt wasn't transparent and left the <code>__loader__</code> and <code>__spec__.loader</code> attributes of a module as the wrapt import hook loader and not the original loader. That the original loader wasn't preserved could interfere with code which needed access to the original loader.</p> </li> <li> <p>Address issues where a thread deadlock could occur within the wrapt module import handler, when code executed from a post import hook created a new thread and code executed in the context of the new thread itself tried to register a post import hook, or imported a new module.</p> </li> <li> <p>When using <code>CallableObjectProxy</code> as a wrapper for a type or function and calling the wrapped object, it was not possible to pass a keyword argument named <code>self</code>. This only occurred when using the pure Python version of wrapt and did not occur when using the C extension based implementation.</p> </li> <li> <p>When using <code>PartialCallableObjectProxy</code> as a wrapper for a type or function, when constructing the partial object and when calling the partial object, it was not possible to pass a keyword argument named <code>self</code>. This only occurred when using the pure Python version of wrapt and did not occur when using the C extension based implementation.</p> </li> <li> <p>When using <code>FunctionWrapper</code> as a wrapper for a type or function and calling the wrapped object, it was not possible to pass a keyword argument named <code>self</code>. Because <code>FunctionWrapper</code> is also used by decorators, this also affected decorators on functions and class types. A similar issue also arose when these were applied to class and instance methods where binding occurred</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/GrahamDumpleton/wrapt/commit/0634a79c934e4bbf11b4081d3f1610588d7ae4a6"><code>0634a79</code></a> Merge branch 'release/1.15.0'</li> <li><a href="https://github.com/GrahamDumpleton/wrapt/commit/ba845c6793eab868cad957b2763fa121333fdfc1"><code>ba845c6</code></a> Update version to 1.15.0 for release.</li> <li><a href="https://github.com/GrahamDumpleton/wrapt/commit/d446a4f340b93fed41dfe884aa0311195b301f16"><code>d446a4f</code></a> Remove egg info directory.</li> <li><a href="https://github.com/GrahamDumpleton/wrapt/commit/c11181dc7b891c9e59391a24379f89a8cdac9092"><code>c11181d</code></a> Set version to 1.15.0rc1 for release.</li> <li><a href="https://github.com/GrahamDumpleton/wrapt/commit/3a6a771877c934a740e4de538fbbddb4498ffd24"><code>3a6a771</code></a> Need to install wheel package for bdist_wheel.</li> <li><a href="https://github.com/GrahamDumpleton/wrapt/commit/bb8d37af60eea5204fdf32f76c9f00b971a381bb"><code>bb8d37a</code></a> Attempt to build a pure Python source wheel.</li> <li><a href="https://github.com/GrahamDumpleton/wrapt/commit/511a8cec1d19486ed12c5f18ee74f52f6c0e7e06"><code>511a8ce</code></a> Remove .tox directory when doing clean.</li> <li><a href="https://github.com/GrahamDumpleton/wrapt/commit/32a07205a41020019add7a9e4e9bbf2def1d5aaf"><code>32a0720</code></a> Fix issues when using keyword argument named self with weak function proxy.</li> <li><a href="https://github.com/GrahamDumpleton/wrapt/commit/4e09f7ac1d8e936a707ad33f84edb55c248a144c"><code>4e09f7a</code></a> Fix issues when using keyword argument named self with function wrappers and ...</li> <li><a href="https://github.com/GrahamDumpleton/wrapt/commit/ee6bab6989fdcf1eeedf1601f8f23fcff3e95730"><code>ee6bab6</code></a> On Python 2 the format of exception differs to Python 3.</li> <li>Additional commits viewable in <a href="https://github.com/GrahamDumpleton/wrapt/compare/1.14.1...1.15.0">compare view</a></li> </ul> </details> <br /> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: Ruben ruben.vargas@aluxoft.com
Which problem is this PR solving?
Short description of the changes
CHMOD
and other events, and should only react whenCREATE
orWRITE
events occurs. This prevents a lot of log noisy. Specially on kubernetes/openshift environments.