kubernetes-client/python

Upgrade to openapi-generator >= v6.4.0: `DeprecationWarning: HTTPResponse.getheaders() is deprecated`

Open

#2,101 建立於 2023年8月8日

在 GitHub 查看
 (11 留言) (0 反應) (0 負責人)Python (3,323 fork)batch import
help wantedkind/bug

倉庫指標

Star
 (6,225 star)
PR 合併指標
 (平均合併 10天 3小時) (30 天內合併 2 個 PR)

描述

What happened (please include outputs or screenshots): Certain k8s API calls (f.e. deleting a namespace) result in the following deprecation warnings:

venv-test/lib/python3.9/site-packages/kubernetes/client/rest.py:44: DeprecationWarning: HTTPResponse.getheaders() is deprecated and will be removed in urllib3 v2.1.0. Instead access HTTPResponse.headers directly.
  return self.urllib3_response.getheaders()

F.e., see at the bottom of this test log: https://source.cloud.google.com/results/invocations/0cb2a704-d3b4-40a5-9d85-36e2e7dbc64f/targets/grpc%2Fjava%2Fv1.57.x%2Fbranch%2Fxds_k8s_lb%2Fround_robin_test/log

This has already been reported in #2024, but since then OpenApi generator released the fix in v6.4.0.

What you expected to happen: No deprecation warnings logged.

How to reproduce it (as minimally and precisely as possible): The warning is shown when kubernetes library is used within the unittest context, which enables all warnings per

Developers of test runners for Python code are advised to instead ensure that all warnings are displayed by default for the code under test — https://docs.python.org/3/library/warnings.html#overriding-the-default-filter

I'm not entirely sure in what exact cases this warning is produced, but it's easy to verify when it's fixed.

Check the generated code RESTResponse.getheaders():

https://github.com/kubernetes-client/python/blob/76ec6f5ce5572f66d82717e296480dc42584f0b7/kubernetes/client/rest.py#L42-L45

This should be replaced with

    def getheaders(self):
        """Returns a dictionary of the response headers."""
        return self.urllib3_response.headers

Environment:

Kubernetes version

kubectl version:

Client Version: version.Info{Major:"1", Minor:"25+", GitVersion:"v1.25.9-dispatcher", GitCommit:"6ed97cc2601c54f907320513513db38e446aa2ee", GitTreeState:"clean", BuildDate:"2023-05-09T18:05:38Z", GoVersion:"go1.19.8", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"25", GitVersion:"v1.25.10-gke.1200", GitCommit:"9e9cdb04efcc29a8fe0b1804cdcc8054b9ee176a", GitTreeState:"clean", BuildDate:"2023-06-01T19:57:47Z", GoVersion:"go1.19.9 X:boringcrypto", Compiler:"gc", Platform:"linux/amd64"}
Python client version

The latest kubernetes==27.2.0 is affected.

貢獻者指南