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

Function make_sys_config

vmm/src/app.rs:1139–1168  ·  view source on GitHub ↗
(cfg: &Config, manifest: &Manifest)

Source from the content-addressed store, hash-verified

1137}
1138
1139pub(crate) fn make_sys_config(cfg: &Config, manifest: &Manifest) -> Result<String> {
1140 let image_path = cfg.image.path.join(&manifest.image);
1141 let image = Image::load(image_path).context("Failed to load image info")?;
1142 let img_ver = image.info.version_tuple().unwrap_or((0, 0, 0));
1143 let kms_urls = if manifest.kms_urls.is_empty() {
1144 cfg.cvm.kms_urls.clone()
1145 } else {
1146 manifest.kms_urls.clone()
1147 };
1148 let gateway_urls = if manifest.gateway_urls.is_empty() {
1149 cfg.cvm.gateway_urls.clone()
1150 } else {
1151 manifest.gateway_urls.clone()
1152 };
1153 if img_ver < (0, 5, 0) {
1154 bail!("Unsupported image version: {img_ver:?}");
1155 }
1156
1157 let sys_config = json!({
1158 "kms_urls": kms_urls,
1159 "gateway_urls": gateway_urls,
1160 "pccs_url": cfg.cvm.pccs_url,
1161 "docker_registry": cfg.cvm.docker_registry,
1162 "host_api_url": format!("vsock://2:{}/api", cfg.host_api.port),
1163 "vm_config": serde_json::to_string(&make_vm_config(cfg, manifest, &image)?)?,
1164 });
1165 let sys_config_str =
1166 serde_json::to_string(&sys_config).context("Failed to serialize vm config")?;
1167 Ok(sys_config_str)
1168}
1169
1170fn make_vm_config(cfg: &Config, manifest: &Manifest, image: &Image) -> Result<serde_json::Value> {
1171 let os_image_hash = image

Callers 2

sync_dynamic_configMethod · 0.85
run_one_shotFunction · 0.85

Calls 3

version_tupleMethod · 0.80
cloneMethod · 0.80
is_emptyMethod · 0.45

Tested by

no test coverage detected