bitcoin-dev-project / bitcoin-dev-project/warnet

bug: warnet barfs a stack trace if running `warnet status` with an outdated kubeconfig

Open
#603 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
149
Forks
83
Avg merge
4d 8h
Merged PRs (30d)
2

Description

Installed warnet, created a new project directory and ran `warnet status` without running `minikube start` or checking my cluster configs in `kubectl` and got this:

```
Traceback (most recent call last):
File "/Users/josibake/work/warnet-projects/tabconf-example/.venv/lib/python3.12/site-packages/urllib3/connection.py", line 199, in _new_conn
sock = connection.create_connection(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/josibake/work/warnet-projects/tabconf-example/.venv/lib/python3.12/site-packages/urllib3/util/connection.py", line 85, in create_connection
raise err
File "/Users/josibake/work/warnet-projects/tabconf-example/.venv/lib/python3.12/site-packages/urllib3/util/connection.py", line 73, in create_connection
sock.connect(sa)
ConnectionRefusedError: [Errno 61] Connection refused

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/Users/josibake/work/warnet-projects/tabconf-example/.venv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 789, in urlopen
response = self._make_request(
^^^^^^^^^^^^^^^^^^^
File "/Users/josibake/work/warnet-projects/tabconf-example/.venv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 490, in _make_request
raise new_e
File "/Users/josibake/work/warnet-projects/tabconf-example/.venv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 466, in _make_request
self._validate_conn(conn)
File "/Users/josibake/work/warnet-projects/tabconf-example/.venv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 1095, in _validate_conn
conn.connect()
File "/Users/josibake/work/warnet-projects/tabconf-example/.venv/lib/python3.12/site-packages/urllib3/connection.py", line 693, in connect
self.sock = sock = self._new_conn()
^^^^^^^^^^^^^^^^
File "/Users/josibake/work/warnet-projects/tabconf-example/.venv/lib/python3.12/site-packages/urllib3/connection.py", line 214, in _new_conn
raise NewConnectionError(
urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 61] Connection refused

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/Users/josibake/work/warnet-projects/tabconf-example/.venv/bin/warnet", line 8, in
sys.exit(cli())
^^^^^
File "/Users/josibake/work/warnet-projects/tabconf-example/.venv/lib/python3.12/site-packages/click/core.py", line 1157, in __call__
return self.main(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/josibake/work/warnet-projects/tabconf-example/.venv/lib/python3.12/site-packages/click/core.py", line 1078, in main
rv = self.invoke(ctx)
^^^^^^^^^^^^^^^^
File "/Users/josibake/work/warnet-projects/tabconf-example/.venv/lib/python3.12/site-packages/click/core.py", line 1688, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/josibake/work/warnet-projects/tabconf-example/.venv/lib/python3.12/site-packages/click/core.py", line 1434, in invoke
return ctx.invoke(self.callback, **ctx.params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/josibake/work/warnet-projects/tabconf-example/.venv/lib/python3.12/site-packages/click/core.py", line 783, in invoke
return __callback(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/josibake/work/warnet/src/warnet/status.py", line 16, in status
tanks = _get_tank_status()
^^^^^^^^^^^^^^^^^^
File "/Users/josibake/work/warnet/src/warnet/status.py", line 64, in _get_tank_status
tanks = get_mission("tank")
^^^^^^^^^^^^^^^^^^^
File "/Users/josibake/work/warnet/src/warnet/k8s.py", line 36, in get_mission
pods = get_pods()
^^^^^^^^^^
File "/Users/josibake/work/warnet/src/warnet/k8s.py", line 31, in get_pods
raise e
File "/Users/josibake/work/warnet/src/warnet/k8s.py", line 29, in get_pods
pod_list: V1PodList = sclient.list_namespaced_pod(get_default_namespace())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/josibake/work/warnet-projects/tabconf-example/.venv/lib/python3.12/site-packages/kubernetes/client/api/core_v1_api.py", line 15823, in list_namespaced_pod
return self.list_namespaced_pod_with_http_info(namespace, **kwargs) # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/josibake/work/warnet-projects/tabconf-example/.venv/lib/python3.12/site-packages/kubernetes/client/api/core_v1_api.py", line 15942, in list_namespaced_pod_with_http_info
return self.api_client.call_api(
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/josibake/work/warnet-projects/tabconf-example/.venv/lib/python3.12/site-packages/kubernetes/client/api_client.py", line 348, in call_api
return self.__call_api(resource_path, method,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/josibake/work/warnet-projects/tabconf-example/.venv/lib/python3.12/site-packages/kubernetes/client/api_client.py", line 180, in __call_api
response_data = self.request(
^^^^^^^^^^^^^
File "/Users/josibake/work/warnet-projects/tabconf-example/.venv/lib/python3.12/site-packages/kubernetes/client/api_client.py", line 373, in request
return self.rest_client.GET(url,
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/josibake/work/warnet-projects/tabconf-example/.venv/lib/python3.12/site-packages/kubernetes/client/rest.py", line 244, in GET
return self.request("GET", url,
^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/josibake/work/warnet-projects/tabconf-example/.venv/lib/python3.12/site-packages/kubernetes/client/rest.py", line 217, in request
r = self.pool_manager.request(method, url,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/josibake/work/warnet-projects/tabconf-example/.venv/lib/python3.12/site-packages/urllib3/_request_methods.py", line 135, in request
return self.request_encode_url(
^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/josibake/work/warnet-projects/tabconf-example/.venv/lib/python3.12/site-packages/urllib3/_request_methods.py", line 182, in request_encode_url
return self.urlopen(method, url, **extra_kw)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/josibake/work/warnet-projects/tabconf-example/.venv/lib/python3.12/site-packages/urllib3/poolmanager.py", line 443, in urlopen
response = conn.urlopen(method, u.request_uri, **kw)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/josibake/work/warnet-projects/tabconf-example/.venv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 873, in urlopen
return self.urlopen(
^^^^^^^^^^^^^
File "/Users/josibake/work/warnet-projects/tabconf-example/.venv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 873, in urlopen
return self.urlopen(
^^^^^^^^^^^^^
File "/Users/josibake/work/warnet-projects/tabconf-example/.venv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 873, in urlopen
return self.urlopen(
^^^^^^^^^^^^^
File "/Users/josibake/work/warnet-projects/tabconf-example/.venv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 843, in urlopen
retries = retries.increment(
^^^^^^^^^^^^^^^^^^
File "/Users/josibake/work/warnet-projects/tabconf-example/.venv/lib/python3.12/site-packages/urllib3/util/retry.py", line 519, in increment
raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='127.0.0.1', port=64897): Max retries exceeded with url: /api/v1/namespaces/default/pods (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 61] Connection refused'))
```

Ideally, this prompts the user that their credentials are out of date or that they are not running with a backend.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.