(cfg: &Config, manifest: &Manifest)
| 1137 | } |
| 1138 | |
| 1139 | pub(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 | |
| 1170 | fn make_vm_config(cfg: &Config, manifest: &Manifest, image: &Image) -> Result<serde_json::Value> { |
| 1171 | let os_image_hash = image |
no test coverage detected