Skip to content

Commit 3b1313c

Browse files
sgaistolevski
andcommitted
feat: ensure notebook endpoints do their job (#388)
This work brings the notebook related endpoints to a working state to serve as replacement for the renku-notebooks external service. Short summary: - API tests have been added - Code has been fixed to answer / handle exception - Automated test cluster creation has been added using k3d --------- Co-authored-by: Tasko Olevski <[email protected]>
1 parent bfbc329 commit 3b1313c

File tree

2 files changed

+22
-4
lines changed

2 files changed

+22
-4
lines changed

components/renku_data_services/notebooks/api/classes/k8s_client.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -449,7 +449,7 @@ async def get_server_logs(
449449
server = await self.get_server(server_name, safe_username)
450450
if not server:
451451
raise errors.MissingResourceError(
452-
message=f"Cannot find server {server_name} for user " f"{safe_username} to retrieve logs."
452+
message=f"Cannot find server {server_name} for user {safe_username} to retrieve logs."
453453
)
454454
pod_name = f"{server_name}-0"
455455
return await self.renku_ns_client.get_pod_logs(pod_name, max_log_lines)
@@ -490,9 +490,10 @@ async def delete_server(self, server_name: str, safe_username: str) -> None:
490490
"""Delete the server."""
491491
server = await self.get_server(server_name, safe_username)
492492
if not server:
493-
return None
494-
await self.renku_ns_client.delete_server(server_name)
495-
return None
493+
raise MissingResourceError(
494+
f"Cannot find server {server_name} for user " f"{safe_username} in order to delete it."
495+
)
496+
return await self.renku_ns_client.delete_server(server_name)
496497

497498
async def patch_tokens(self, server_name: str, renku_tokens: RenkuTokens, gitlab_token: GitlabToken) -> None:
498499
"""Patch the Renku and Gitlab access tokens used in a session."""

test/bases/renku_data_services/data_api/test_sessions.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
"""Tests for sessions blueprints."""
22

3+
import os
4+
import shutil
35
from asyncio import AbstractEventLoop
46
from typing import Any
57

@@ -11,6 +13,21 @@
1113
from renku_data_services.crc.apispec import ResourcePool
1214
from renku_data_services.users.models import UserInfo
1315

16+
from .utils import K3DCluster, setup_amalthea
17+
18+
os.environ["KUBECONFIG"] = ".k3d-config.yaml"
19+
20+
21+
@pytest.fixture(scope="module", autouse=True)
22+
def cluster() -> K3DCluster:
23+
if shutil.which("k3d") is None:
24+
pytest.skip("Requires k3d for cluster creation")
25+
26+
with K3DCluster("renku-test-session") as cluster:
27+
setup_amalthea("amalthea-se", "amalthea-sessions", "0.0.10-new-operator-chart", cluster)
28+
29+
yield cluster
30+
1431

1532
@pytest.fixture
1633
def create_session_environment(sanic_client: SanicASGITestClient, admin_headers):

0 commit comments

Comments
 (0)