(
image_path: &Path,
size_bytes: u64,
payload: &GuestImagePayload,
)
| 4775 | } |
| 4776 | |
| 4777 | fn 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 | |
| 4803 | fn stage_guest_image_payload( |
| 4804 | staging_dir: &Path, |
no test coverage detected