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

Function handle_delete_service

crates/openshell-server/src/grpc/service.rs:170–195  ·  view source on GitHub ↗
(
    state: &Arc<ServerState>,
    request: Request<DeleteServiceRequest>,
)

Source from the content-addressed store, hash-verified

168}
169
170pub(super) async fn handle_delete_service(
171 state: &Arc<ServerState>,
172 request: Request<DeleteServiceRequest>,
173) -> Result<Response<DeleteServiceResponse>, Status> {
174 let req = request.into_inner();
175 validate_endpoint_name("sandbox", &req.sandbox, MAX_SANDBOX_NAME_LEN)?;
176 validate_optional_endpoint_name("service", &req.service, MAX_SERVICE_NAME_LEN)?;
177
178 let endpoint = get_service_endpoint(state, &req.sandbox, &req.service).await?;
179 let Some(endpoint) = endpoint else {
180 return Ok(Response::new(DeleteServiceResponse { deleted: false }));
181 };
182
183 let key = service_routing::endpoint_key(&req.sandbox, &req.service);
184 let deleted = state
185 .store
186 .delete_by_name(ServiceEndpoint::object_type(), &key)
187 .await
188 .map_err(|e| Status::internal(format!("delete endpoint failed: {e}")))?;
189
190 if deleted {
191 service_routing::emit_service_endpoint_delete_event(&endpoint);
192 }
193
194 Ok(Response::new(DeleteServiceResponse { deleted }))
195}
196
197async fn get_service_endpoint(
198 state: &Arc<ServerState>,

Callers 2

delete_serviceMethod · 0.85

Calls 6

validate_endpoint_nameFunction · 0.85
get_service_endpointFunction · 0.85
endpoint_keyFunction · 0.85
delete_by_nameMethod · 0.45

Tested by

no test coverage detected