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

Method restore_persisted_sandboxes

crates/openshell-driver-vm/src/driver.rs:1148–1220  ·  view source on GitHub ↗
(&self)

Source from the content-addressed store, hash-verified

1146 }
1147
1148 async fn restore_persisted_sandboxes(&self) {
1149 let state_root = sandboxes_root_dir(&self.config.state_dir);
1150 let mut entries = match tokio::fs::read_dir(&state_root).await {
1151 Ok(entries) => entries,
1152 Err(err) if err.kind() == std::io::ErrorKind::NotFound => return,
1153 Err(err) => {
1154 warn!(
1155 state_root = %state_root.display(),
1156 error = %err,
1157 "vm driver: failed to scan persisted sandboxes"
1158 );
1159 return;
1160 }
1161 };
1162
1163 loop {
1164 let entry = match entries.next_entry().await {
1165 Ok(Some(entry)) => entry,
1166 Ok(None) => break,
1167 Err(err) => {
1168 warn!(
1169 state_root = %state_root.display(),
1170 error = %err,
1171 "vm driver: failed to continue scanning persisted sandboxes"
1172 );
1173 break;
1174 }
1175 };
1176 let state_dir = entry.path();
1177 let is_dir = match entry.file_type().await {
1178 Ok(file_type) => file_type.is_dir(),
1179 Err(err) => {
1180 warn!(
1181 state_dir = %state_dir.display(),
1182 error = %err,
1183 "vm driver: failed to inspect persisted sandbox state dir"
1184 );
1185 continue;
1186 }
1187 };
1188 if !is_dir {
1189 continue;
1190 }
1191
1192 let request_path = state_dir.join(SANDBOX_REQUEST_FILE);
1193 let sandbox = match read_sandbox_request(&request_path).await {
1194 Ok(sandbox) => sandbox,
1195 Err(err) if err.kind() == std::io::ErrorKind::NotFound => continue,
1196 Err(err) => {
1197 warn!(
1198 state_dir = %state_dir.display(),
1199 error = %err,
1200 "vm driver: failed to read persisted sandbox request"
1201 );
1202 continue;
1203 }
1204 };
1205

Callers 1

new_with_extensionsMethod · 0.80

Calls 5

sandboxes_root_dirFunction · 0.85
read_sandbox_requestFunction · 0.85
pathMethod · 0.80

Tested by

no test coverage detected