MCPcopy Create free account
hub / github.com/Dstack-TEE/dstack / make_vm_config

Function make_vm_config

vmm/src/app.rs:1170–1196  ·  view source on GitHub ↗
(cfg: &Config, manifest: &Manifest, image: &Image)

Source from the content-addressed store, hash-verified

1168}
1169
1170fn make_vm_config(cfg: &Config, manifest: &Manifest, image: &Image) -> Result<serde_json::Value> {
1171 let os_image_hash = image
1172 .digest
1173 .as_ref()
1174 .and_then(|d| hex::decode(d).ok())
1175 .unwrap_or_default();
1176 let gpus = manifest.gpus.clone().unwrap_or_default();
1177 let mut config = serde_json::to_value(dstack_types::VmConfig {
1178 os_image_hash,
1179 cpu_count: manifest.vcpu,
1180 memory_size: manifest.memory as u64 * 1024 * 1024,
1181 qemu_single_pass_add_pages: cfg.cvm.qemu_single_pass_add_pages,
1182 pic: cfg.cvm.qemu_pic,
1183 qemu_version: cfg.cvm.qemu_version.clone(),
1184 pci_hole64_size: cfg.cvm.qemu_pci_hole64_size,
1185 hugepages: manifest.hugepages,
1186 num_gpus: gpus.gpus.len() as u32,
1187 num_nvswitches: gpus.bridges.len() as u32,
1188 host_share_mode: cfg.cvm.host_share_mode.clone(),
1189 hotplug_off: cfg.cvm.qemu_hotplug_off,
1190 image: Some(manifest.image.clone()),
1191 ovmf_variant: image.info.ovmf_variant,
1192 })?;
1193 // For backward compatibility
1194 config["spec_version"] = serde_json::Value::from(1);
1195 Ok(config)
1196}
1197
1198fn paginate<T>(items: Vec<T>, page: u32, page_size: u32) -> impl Iterator<Item = T> {
1199 let skip;

Callers

nothing calls this directly

Calls 4

decodeFunction · 0.85
cloneMethod · 0.80
as_refMethod · 0.45
lenMethod · 0.45

Tested by

no test coverage detected