(
state: &Arc<ServerState>,
request: Request<DeleteSandboxRequest>,
)
| 494 | } |
| 495 | |
| 496 | async fn handle_delete_sandbox_inner( |
| 497 | state: &Arc<ServerState>, |
| 498 | request: Request<DeleteSandboxRequest>, |
| 499 | ) -> Result<Response<DeleteSandboxResponse>, Status> { |
| 500 | let name = request.into_inner().name; |
| 501 | if name.is_empty() { |
| 502 | return Err(Status::invalid_argument("name is required")); |
| 503 | } |
| 504 | |
| 505 | let sandbox_id = state |
| 506 | .store |
| 507 | .get_message_by_name::<Sandbox>(&name) |
| 508 | .await |
| 509 | .ok() |
| 510 | .flatten() |
| 511 | .map(|sandbox| sandbox.object_id().to_string()); |
| 512 | let deleted = state.compute.delete_sandbox(&name).await?; |
| 513 | if deleted && let Some(sandbox_id) = sandbox_id { |
| 514 | state.telemetry.end_sandbox_session(&sandbox_id); |
| 515 | } |
| 516 | info!(sandbox_name = %name, "DeleteSandbox request completed successfully"); |
| 517 | Ok(Response::new(DeleteSandboxResponse { deleted })) |
| 518 | } |
| 519 | |
| 520 | async fn sandbox_by_name(state: &Arc<ServerState>, name: &str) -> Result<Sandbox, Status> { |
| 521 | if name.is_empty() { |
no test coverage detected