getheaders is deprecated in urllib3 >= 2.0.0

Open Beginner friendly
#2,280 16 comments 9 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
1/5
Estimated time
Under an hour
Newbie friendliness
68/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Quiet
Tech stack
python
Domain
api

Research direction

Open client/rest.py and inspect the getheaders function referenced in the traceback, then check its callers and the existing urllib3 response handling. Remove the deprecated function and verify that the affected request or exception path no longer calls it when using urllib3 >= 2.0.0.

Written by the indexing model from the issue text.

Description

kind/bug

Please remove the deprecated function getheaders from client/rest.py

What happened (please include outputs or screenshots):

Traceback (most recent call last):
  File "/home/mau/repos/project-automation/k8s/k8s.py", line 828, in <module>
    main()
  File "/home/mau/repos/project-automation/k8s/k8s.py", line 803, in main
    k8s_project.create_namespace()
  File "/home/mau/repos/project-automation/k8s/k8s.py", line 110, in create_namespace
    self.__k8s_cluster.create_namespace(
  File "/home/mau/.virtualenvs/project-automation-2/lib/python3.12/site-packages/pja_sdk/k8s.py", line 98, in create_namespace
    namespace = self.__corev1api.create_namespace(body=body)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/mau/.virtualenvs/project-automation-2/lib/python3.12/site-packages/kubernetes/client/api/core_v1_api.py", line 6363, in create_namespace
    return self.create_namespace_with_http_info(body, **kwargs)  # noqa: E501
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/mau/.virtualenvs/project-automation-2/lib/python3.12/site-packages/kubernetes/client/api/core_v1_api.py", line 6454, in create_namespace_with_http_info
    return self.api_client.call_api(
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/mau/.virtualenvs/project-automation-2/lib/python3.12/site-packages/kubernetes/client/api_client.py", line 348, in call_api
    return self.__call_api(resource_path, method,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/mau/.virtualenvs/project-automation-2/lib/python3.12/site-packages/kubernetes/client/api_client.py", line 180, in __call_api
    response_data = self.request(
                    ^^^^^^^^^^^^^
  File "/home/mau/.virtualenvs/project-automation-2/lib/python3.12/site-packages/kubernetes/client/api_client.py", line 391, in request
    return self.rest_client.POST(url,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/mau/.virtualenvs/project-automation-2/lib/python3.12/site-packages/kubernetes/client/rest.py", line 279, in POST
    return self.request("POST", url,
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/mau/.virtualenvs/project-automation-2/lib/python3.12/site-packages/kubernetes/client/rest.py", line 238, in request
    raise ApiException(http_resp=r)
          ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/mau/.virtualenvs/project-automation-2/lib/python3.12/site-packages/kubernetes/client/exceptions.py", line 91, in __init__
    self.headers = http_resp.getheaders()
                   ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/mau/.virtualenvs/project-automation-2/lib/python3.12/site-packages/kubernetes/client/rest.py", line 44, in getheaders
    return self.urllib3_response.getheaders()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'HTTPResponse' object has no attribute 'getheaders'. Did you mean: 'headers'?

How to reproduce it (as minimally and precisely as possible):
Install requirements (urllib3 >= 2.0.0) and call any function.

Environment:

  • Kubernetes version (kubectl version): v1.29.5
  • OS (e.g., MacOS 10.13.6): Linux
  • Python version (python --version) 3.12.3
  • Python client version (pip list | grep kubernetes) 29.0.0
Dominant language
Python
Stars
7.7k
Forks
3.5k
Avg merge
1d 14h
Merged PRs (30d)
18

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from kubernetes-client/python

All issues in kubernetes-client/python

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.