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

Function handle_create_provider

crates/openshell-server/src/grpc/provider.rs:1150–1185  ·  view source on GitHub ↗
(
    state: &Arc<ServerState>,
    request: Request<CreateProviderRequest>,
)

Source from the content-addressed store, hash-verified

1148use tonic::{Request, Response};
1149
1150pub(super) async fn handle_create_provider(
1151 state: &Arc<ServerState>,
1152 request: Request<CreateProviderRequest>,
1153) -> Result<Response<ProviderResponse>, Status> {
1154 let req = request.into_inner();
1155 let Some(provider) = req.provider else {
1156 emit_provider_lifecycle(
1157 "custom",
1158 LifecycleOperation::Create,
1159 TelemetryOutcome::Failure,
1160 );
1161 return Err(Status::invalid_argument("provider is required"));
1162 };
1163 let provider_type = provider.r#type.clone();
1164 let result = create_provider_record(state.store.as_ref(), provider).await;
1165 match result {
1166 Ok(provider) => {
1167 emit_provider_lifecycle(
1168 &provider.r#type,
1169 LifecycleOperation::Create,
1170 TelemetryOutcome::Success,
1171 );
1172 Ok(Response::new(ProviderResponse {
1173 provider: Some(provider),
1174 }))
1175 }
1176 Err(err) => {
1177 emit_provider_lifecycle(
1178 &provider_type,
1179 LifecycleOperation::Create,
1180 TelemetryOutcome::Failure,
1181 );
1182 Err(err)
1183 }
1184 }
1185}
1186
1187pub(super) async fn handle_get_provider(
1188 state: &Arc<ServerState>,

Calls 2

create_provider_recordFunction · 0.85
emit_provider_lifecycleFunction · 0.70

Tested by

no test coverage detected