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

Function delete_provider_record

crates/openshell-server/src/grpc/provider.rs:284–312  ·  view source on GitHub ↗
(store: &Store, name: &str)

Source from the content-addressed store, hash-verified

282}
283
284pub(super) async fn delete_provider_record(store: &Store, name: &str) -> Result<bool, Status> {
285 if name.is_empty() {
286 return Err(Status::invalid_argument("name is required"));
287 }
288
289 let Some(provider) = store
290 .get_message_by_name::<Provider>(name)
291 .await
292 .map_err(|e| Status::internal(format!("fetch provider failed: {e}")))?
293 else {
294 return Ok(false);
295 };
296
297 let blocking_sandboxes = sandboxes_using_provider(store, name).await?;
298 if !blocking_sandboxes.is_empty() {
299 return Err(Status::failed_precondition(format!(
300 "provider '{name}' is attached to sandbox(es): {}",
301 blocking_sandboxes.join(", ")
302 )));
303 }
304
305 crate::provider_refresh::delete_refresh_states_for_provider(store, provider.object_id())
306 .await?;
307
308 store
309 .delete_by_name(Provider::object_type(), name)
310 .await
311 .map_err(|e| Status::internal(format!("delete provider failed: {e}")))
312}
313
314/// Iterate over every `Sandbox` in the store and collect items produced by
315/// `f`. `f` receives each decoded sandbox; returning `Some(T)` includes the

Calls 5

sandboxes_using_providerFunction · 0.85
object_idMethod · 0.80
is_emptyMethod · 0.45
delete_by_nameMethod · 0.45

Tested by

no test coverage detected