Skip to content

Commit f057687

Browse files
handle zero value as per suggestion
Signed-off-by: Alex <aizquier@redhat.com>
1 parent 5854b7f commit f057687

File tree

3 files changed

+20
-4
lines changed

3 files changed

+20
-4
lines changed

src/aap_eda/services/activation/engine/podman.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,7 @@ def _get_podman_socket_url() -> str:
4848

4949
def get_podman_client() -> PodmanClient:
5050
"""Podman client factory."""
51-
params = {}
52-
if settings.PODMAN_SOCKET_TIMEOUT:
53-
params["timeout"] = settings.PODMAN_SOCKET_TIMEOUT
51+
params = {"timeout": settings.PODMAN_SOCKET_TIMEOUT}
5452
podman_url = _get_podman_socket_url()
5553
params["base_url"] = podman_url
5654
LOGGER.info(f"Using podman socket: {podman_url}")

src/aap_eda/settings/default.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -362,7 +362,10 @@ def _config_authentication_backends():
362362
"ws://", "http://"
363363
).replace("wss://", "https://")
364364
PODMAN_SOCKET_URL = settings.get("PODMAN_SOCKET_URL", None)
365-
PODMAN_SOCKET_TIMEOUT = settings.get("PODMAN_SOCKET_TIMEOUT", None)
365+
PODMAN_SOCKET_TIMEOUT = settings.get("PODMAN_SOCKET_TIMEOUT", default=0)
366+
# zero raises an exception, None takes the socket default
367+
if PODMAN_SOCKET_TIMEOUT == 0:
368+
PODMAN_SOCKET_TIMEOUT = None
366369
PODMAN_MEM_LIMIT = settings.get("PODMAN_MEM_LIMIT", "200m")
367370
PODMAN_ENV_VARS = settings.get("PODMAN_ENV_VARS", {})
368371
PODMAN_MOUNTS = settings.get("PODMAN_MOUNTS", [])

tests/integration/services/activation/engine/test_podman.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
)
4747

4848
from .utils import InitData, get_ansible_rulebook_cmdline, get_request
49+
from aap_eda.settings.default import settings as orig_dynaconf_settings
4950

5051
DATA_DIR = Path(__file__).parent / "data"
5152

@@ -150,6 +151,20 @@ def test_get_podman_client_with_timeout(settings):
150151
assert client.api.timeout == 10
151152

152153

154+
def test_get_podman_client_with_zero_timeout():
155+
"""Test setting the timeout for the Podman client to zero."""
156+
with mock.patch("aap_eda.settings.default.settings.get") as get_mock:
157+
158+
def get_side_effect(*args, **kwargs):
159+
if args[0] == "PODMAN_SOCKET_TIMEOUT":
160+
return 0
161+
return orig_dynaconf_settings.get(*args, **kwargs)
162+
163+
get_mock.side_effect = get_side_effect
164+
client = get_podman_client()
165+
assert client.api.timeout is None
166+
167+
153168
def test_get_podman_client(settings):
154169
settings.PODMAN_SOCKET_URL = None
155170
uid_0_mock = mock.Mock(return_value=0)

0 commit comments

Comments
 (0)