Skip to content

Commit f367cc7

Browse files
authored
fix(cli): fix setting cpu request in renku.ini for renku session start (#3232)
1 parent 7a718ab commit f367cc7

File tree

3 files changed

+30
-1
lines changed

3 files changed

+30
-1
lines changed

renku/core/errors.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -627,7 +627,11 @@ def __init__(self, reason: str):
627627
super().__init__(f"Docker failed: {reason}")
628628

629629

630-
class RenkulabSessionError(RenkuException):
630+
class SessionStartError(RenkuException):
631+
"""Raised when an error occurs trying to start sessions."""
632+
633+
634+
class RenkulabSessionError(SessionStartError):
631635
"""Raised when an error occurs trying to start sessions with the notebook service."""
632636

633637

renku/core/session/session.py

+7
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,13 @@ def session_start(
103103

104104
# set resource settings
105105
cpu_limit = cpu_request or get_value("interactive", "cpu_request")
106+
107+
if cpu_limit is not None:
108+
try:
109+
cpu_limit = float(cpu_limit)
110+
except ValueError:
111+
raise errors.SessionStartError(f"Invalid value for cpu_request (must be float): {cpu_limit}")
112+
106113
disk_limit = disk_request or get_value("interactive", "disk_request")
107114
mem_limit = mem_request or get_value("interactive", "mem_request")
108115
gpu = gpu_request or get_value("interactive", "gpu_request")

tests/cli/test_session.py

+18
Original file line numberDiff line numberDiff line change
@@ -63,3 +63,21 @@ def test_session_up_down(runner, project, dummy_session_provider, monkeypatch):
6363
result = runner.invoke(cli, ["session", "ls", "-p", "dummy"])
6464
assert 0 == result.exit_code, format_result_exception(result)
6565
assert 2 == len(result.output.splitlines())
66+
67+
68+
def test_session_start_config_requests(runner, project, dummy_session_provider, monkeypatch):
69+
"""Test session with configuration in the renku config."""
70+
import docker
71+
72+
result = runner.invoke(cli, ["config", "set", "interactive.cpu_request", "0.5"])
73+
assert 0 == result.exit_code, format_result_exception(result)
74+
result = runner.invoke(cli, ["config", "set", "interactive.disk_request", "100mb"])
75+
assert 0 == result.exit_code, format_result_exception(result)
76+
result = runner.invoke(cli, ["config", "set", "interactive.mem_request", "100mb"])
77+
assert 0 == result.exit_code, format_result_exception(result)
78+
79+
with monkeypatch.context() as monkey:
80+
monkey.setattr(docker, "from_env", MagicMock())
81+
result = runner.invoke(cli, ["session", "start", "-p", "docker"])
82+
assert 0 == result.exit_code, format_result_exception(result)
83+
assert "successfully started" in result.output

0 commit comments

Comments
 (0)