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

Function create_image_prep_disk

crates/openshell-driver-vm/src/driver.rs:4777–4801  ·  view source on GitHub ↗
(
    image_path: &Path,
    size_bytes: u64,
    payload: &GuestImagePayload,
)

Source from the content-addressed store, hash-verified

4775}
4776
4777fn create_image_prep_disk(
4778 image_path: &Path,
4779 size_bytes: u64,
4780 payload: &GuestImagePayload,
4781) -> Result<(), String> {
4782 let staging_dir = overlay_staging_dir(image_path);
4783 if staging_dir.exists() {
4784 fs::remove_dir_all(&staging_dir)
4785 .map_err(|err| format!("remove stale image-prep staging dir: {err}"))?;
4786 }
4787
4788 let result = (|| {
4789 fs::create_dir_all(staging_dir.join("upper").join("srv"))
4790 .map_err(|err| format!("create image-prep env dir: {err}"))?;
4791 fs::create_dir_all(staging_dir.join("work"))
4792 .map_err(|err| format!("create image-prep work dir: {err}"))?;
4793 fs::create_dir_all(staging_dir.join("config"))
4794 .map_err(|err| format!("create image-prep config dir: {err}"))?;
4795 stage_guest_image_payload(&staging_dir, payload)?;
4796 create_ext4_image_from_dir_with_size(&staging_dir, image_path, size_bytes)
4797 })();
4798
4799 let _ = fs::remove_dir_all(&staging_dir);
4800 result
4801}
4802
4803fn stage_guest_image_payload(
4804 staging_dir: &Path,

Callers 1

Calls 4

overlay_staging_dirFunction · 0.85
existsMethod · 0.80

Tested by

no test coverage detected