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

Method find_managed_container_summary

crates/openshell-driver-docker/src/lib.rs:1267–1309  ·  view source on GitHub ↗
(
        &self,
        sandbox_id: &str,
        sandbox_name: &str,
    )

Source from the content-addressed store, hash-verified

1265 }
1266
1267 async fn find_managed_container_summary(
1268 &self,
1269 sandbox_id: &str,
1270 sandbox_name: &str,
1271 ) -> Result<Option<ContainerSummary>, Status> {
1272 let mut label_filter_values = Vec::new();
1273 if !sandbox_id.is_empty() {
1274 label_filter_values.push(format!("{LABEL_SANDBOX_ID}={sandbox_id}"));
1275 } else if !sandbox_name.is_empty() {
1276 label_filter_values.push(format!("{LABEL_SANDBOX_NAME}={sandbox_name}"));
1277 }
1278
1279 let filters =
1280 managed_container_label_filters(&self.config.sandbox_namespace, label_filter_values);
1281 let containers = self
1282 .docker
1283 .list_containers(Some(
1284 ListContainersOptionsBuilder::default()
1285 .all(true)
1286 .filters(&filters)
1287 .build(),
1288 ))
1289 .await
1290 .map_err(|err| internal_status("find Docker sandbox container", err))?;
1291
1292 Ok(containers.into_iter().find(|summary| {
1293 let Some(labels) = summary.labels.as_ref() else {
1294 return false;
1295 };
1296 let namespace_matches = labels
1297 .get(LABEL_SANDBOX_NAMESPACE)
1298 .is_some_and(|value| value == &self.config.sandbox_namespace);
1299 let id_matches = sandbox_id.is_empty()
1300 || labels
1301 .get(LABEL_SANDBOX_ID)
1302 .is_some_and(|value| value == sandbox_id);
1303 let name_matches = sandbox_name.is_empty()
1304 || labels
1305 .get(LABEL_SANDBOX_NAME)
1306 .is_some_and(|value| value == sandbox_name);
1307 namespace_matches && id_matches && name_matches
1308 }))
1309 }
1310
1311 async fn ensure_image_available(&self, sandbox_id: &str, image: &str) -> Result<(), Status> {
1312 let policy = self.config.image_pull_policy.trim().to_ascii_lowercase();

Callers 6

get_sandbox_snapshotMethod · 0.80
create_sandbox_innerMethod · 0.80
delete_sandbox_innerMethod · 0.80
stop_sandbox_innerMethod · 0.80
resume_sandboxMethod · 0.80

Calls 7

internal_statusFunction · 0.85
pushMethod · 0.80
list_containersMethod · 0.80
is_emptyMethod · 0.45
buildMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected