MCPcopy Create free account
hub / github.com/NVIDIA/OpenShell / handle_list_sandboxes

Function handle_list_sandboxes

crates/openshell-server/src/grpc/sandbox.rs:256–279  ·  view source on GitHub ↗
(
    state: &Arc<ServerState>,
    request: Request<ListSandboxesRequest>,
)

Source from the content-addressed store, hash-verified

254}
255
256pub(super) async fn handle_list_sandboxes(
257 state: &Arc<ServerState>,
258 request: Request<ListSandboxesRequest>,
259) -> Result<Response<ListSandboxesResponse>, Status> {
260 let request = request.into_inner();
261 let limit = clamp_limit(request.limit, 100, MAX_PAGE_SIZE);
262
263 let sandboxes: Vec<Sandbox> = if request.label_selector.is_empty() {
264 state
265 .store
266 .list_messages(limit, request.offset)
267 .await
268 .map_err(|e| Status::internal(format!("list sandboxes failed: {e}")))?
269 } else {
270 crate::grpc::validation::validate_label_selector(&request.label_selector)?;
271 state
272 .store
273 .list_messages_with_selector(&request.label_selector, limit, request.offset)
274 .await
275 .map_err(|e| Status::internal(format!("list sandboxes with selector failed: {e}")))?
276 };
277
278 Ok(Response::new(ListSandboxesResponse { sandboxes }))
279}
280
281pub(super) async fn handle_list_sandbox_providers(
282 state: &Arc<ServerState>,

Callers 1

list_sandboxesMethod · 0.85

Calls 5

clamp_limitFunction · 0.85
validate_label_selectorFunction · 0.85
list_messagesMethod · 0.80
is_emptyMethod · 0.45

Tested by

no test coverage detected