MCPcopy Create free account
hub / github.com/consensus-shipyard/ipc / get_or_create

Method get_or_create

fendermint/testing/materializer/src/docker/node.rs:95–497  ·  view source on GitHub ↗
(
        root: impl AsRef<Path>,
        docker: Docker,
        dropper: DropChute,
        drop_policy: &DropPolicy,
        node_name: &NodeName,
        node_config: &NodeConfig<'_, DockerMateria

Source from the content-addressed store, hash-verified

93
94impl DockerNode {
95 pub async fn get_or_create(
96 root: impl AsRef<Path>,
97 docker: Docker,
98 dropper: DropChute,
99 drop_policy: &DropPolicy,
100 node_name: &NodeName,
101 node_config: &NodeConfig<'_, DockerMaterials>,
102 port_range: DockerPortRange,
103 ) -> anyhow::Result<Self> {
104 let fendermint_name = container_name(node_name, "fendermint");
105 let cometbft_name = container_name(node_name, "cometbft");
106 let ethapi_name = container_name(node_name, "ethapi");
107
108 let fendermint = DockerContainer::get(
109 docker.clone(),
110 dropper.clone(),
111 drop_policy,
112 fendermint_name.clone(),
113 )
114 .await?;
115
116 let cometbft = DockerContainer::get(
117 docker.clone(),
118 dropper.clone(),
119 drop_policy,
120 cometbft_name.clone(),
121 )
122 .await?;
123
124 let ethapi = DockerContainer::get(
125 docker.clone(),
126 dropper.clone(),
127 drop_policy,
128 ethapi_name.clone(),
129 )
130 .await?;
131
132 // Directory for the node's data volumes
133 let node_dir = root.as_ref().join(node_name);
134 fs::create_dir_all(&node_dir).context("failed to create node dir")?;
135
136 // Get the current user ID to use with docker containers.
137 let user = user_id(&node_dir)?;
138
139 let make_runner = |image, volumes| {
140 DockerRunner::new(
141 docker.clone(),
142 dropper.clone(),
143 drop_policy.clone(),
144 node_name.clone(),
145 user,
146 image,
147 volumes,
148 Some(node_config.network.network_name().to_string()),
149 )
150 };
151
152 // Create a directory for keys

Callers 3

load_or_createMethod · 0.45
update_or_createMethod · 0.45
set_account_statusMethod · 0.45

Calls 15

create_dir_allFunction · 0.85
user_idFunction · 0.85
create_dirFunction · 0.85
make_runnerFunction · 0.85
export_fileFunction · 0.85
export_envFunction · 0.85
write_config_to_diskFunction · 0.85
contextMethod · 0.80
to_stringMethod · 0.80
existsMethod · 0.80
run_cmdMethod · 0.80
lastMethod · 0.80

Tested by

no test coverage detected