Skip to content

Commit

Permalink
session endpoints
Browse files Browse the repository at this point in the history
  • Loading branch information
nerdai committed Oct 9, 2024
1 parent 87874d2 commit 9544408
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 0 deletions.
24 changes: 24 additions & 0 deletions llama_deploy/apiserver/routers/deployments.py
Original file line number Diff line number Diff line change
Expand Up @@ -137,3 +137,27 @@ async def create_deployment(config_file: UploadFile = File(...)) -> JSONResponse
"name": config.name,
}
)


@deployments_router.get("/{deployment_name}/sessions")
async def get_sessions(
deployment_name: str,
) -> JSONResponse:
"""Get the active sessions in a deployment and service."""
deployment = manager.get_deployment(deployment_name)
if deployment is None:
raise HTTPException(status_code=404, detail="Deployment not found")

sessions = await deployment.client.list_sessions()
return JSONResponse(sessions)


@deployments_router.get("/{deployment_name}/sessions/delete")
async def delete_session(deployment_name: str, session_id: str) -> JSONResponse:
"""Get the active sessions in a deployment and service."""
deployment = manager.get_deployment(deployment_name)
if deployment is None:
raise HTTPException(status_code=404, detail="Deployment not found")

await deployment.client.delete_session(session_id)
return JSONResponse({"session_id": session_id, "status": "Deleted"})
16 changes: 16 additions & 0 deletions tests/apiserver/routers/test_deployments.py
Original file line number Diff line number Diff line change
Expand Up @@ -177,3 +177,19 @@ def test_get_task_result(http_client: TestClient, data_path: Path) -> None:
assert response.json() == "test_result"
session.get_task_result.assert_called_with("test_task_id")
deployment.client.get_session.assert_called_with("42")


def test_get_sessions(http_client: TestClient, data_path: Path) -> None:
with mock.patch(
"llama_deploy.apiserver.routers.deployments.manager"
) as mocked_manager:
deployment = mock.AsyncMock()
deployment.default_service = "TestService"
deployment.client.list_sessions.return_value = []
mocked_manager.get_deployment.return_value = deployment

response = http_client.get(
"/deployments/test-deployment/sessions/",
)
assert response.status_code == 200
assert response.json() == []

0 comments on commit 9544408

Please sign in to comment.