kubernetes-client / kubernetes-client/python
Upgrade to openapi-generator >= v6.4.0: `DeprecationWarning: HTTPResponse.getheaders() is deprecated`
Nessuno ha ancora preso questa issue.
- Lingua principale
- Python
- Stelle
- 7.7k
- Fork
- 3.5k
- Merge medio
- 1g 14h
- PR unite (30g)
- 18
Descrizione
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.
- PR with the fix: https://github.com/OpenAPITools/openapi-generator/pull/14743
- fixed rest.py template in v6.4.0
- v6.4.0 changelog: https://github.com/OpenAPITools/openapi-generator/releases/tag/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():
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.
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Il codice generato interessato si trova in kubernetes/client/rest.py, nello specifico in RESTResponse.getheaders(); confrontalo con il template rest.mustache v6.4.0 e trova il punto di ingresso del repository per la rigenerazione o l'aggiornamento delle dipendenze. Rigenera o aggiorna il client con openapi-generator v6.4.0 o versione successiva, quindi esegui la suite unittest pertinente con gli avvisi abilitati e conferma che l'avviso di deprecazione sia scomparso.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- kubernetes, python
- Ambito
- api, backend
- Tipo di issue
- Bug
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Stato di attività
- Ferma
- Chiarezza
- Specificata chiaramente
- Idoneità per principianti
- 52/100