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

Function ensure_bridge_network

crates/openshell-driver-docker/src/lib.rs:2550–2593  ·  view source on GitHub ↗
(docker: &Docker, network_name: &str)

Source from the content-addressed store, hash-verified

2548}
2549
2550async fn ensure_bridge_network(docker: &Docker, network_name: &str) -> CoreResult<IpAddr> {
2551 match docker.inspect_network(network_name, None).await {
2552 Ok(network) => return validate_bridge_network(network_name, &network),
2553 Err(err) if !is_not_found_error(&err) => {
2554 return Err(Error::execution(format!(
2555 "failed to inspect Docker network '{network_name}': {err}"
2556 )));
2557 }
2558 Err(_) => {}
2559 }
2560
2561 docker
2562 .create_network(NetworkCreateRequest {
2563 name: network_name.to_string(),
2564 driver: Some(DOCKER_NETWORK_DRIVER.to_string()),
2565 attachable: Some(true),
2566 labels: Some(HashMap::from([(
2567 LABEL_MANAGED_BY.to_string(),
2568 LABEL_MANAGED_BY_VALUE.to_string(),
2569 )])),
2570 ..Default::default()
2571 })
2572 .await
2573 .map(|_| ())
2574 .or_else(|err| {
2575 if is_conflict_error(&err) {
2576 Ok(())
2577 } else {
2578 Err(Error::execution(format!(
2579 "failed to create Docker network '{network_name}': {err}"
2580 )))
2581 }
2582 })?;
2583
2584 let network = docker
2585 .inspect_network(network_name, None)
2586 .await
2587 .map_err(|err| {
2588 Error::execution(format!(
2589 "failed to inspect Docker network '{network_name}' after create: {err}"
2590 ))
2591 })?;
2592 validate_bridge_network(network_name, &network)
2593}
2594
2595fn validate_bridge_network(
2596 network_name: &str,

Callers 1

newMethod · 0.85

Calls 3

validate_bridge_networkFunction · 0.85
is_not_found_errorFunction · 0.85
is_conflict_errorFunction · 0.85

Tested by

no test coverage detected