|
98 | 98 | </section> |
99 | 99 |
|
100 | 100 | <section> |
101 | | - <h3 class="section-title">Image & Payload</h3> |
| 101 | + <h3 class="section-title">Template</h3> |
102 | 102 | <table class="details-table"> |
103 | 103 | <tbody> |
104 | 104 | <tr> |
@@ -185,16 +185,33 @@ const storageSizeLabel = computed(() => { |
185 | 185 | const networkInterfaces = computed(() => props.details?.network?.interfaces || []); |
186 | 186 | const originImageLabel = computed(() => { |
187 | 187 | const config = props.details?.firecracker_config; |
188 | | - if (config && typeof config.image_idr === "string" && config.image_idr.trim()) { |
189 | | - return config.image_idr; |
| 188 | + const baseDir = |
| 189 | + (config && typeof config.image_dir === "string" && config.image_dir.trim()) || |
| 190 | + props.details?.agent_defaults?.host?.image_dir; |
| 191 | +
|
| 192 | + const fromConfig = config && typeof config.image_idr === "string" && config.image_idr.trim(); |
| 193 | + const legacyConfig = config && typeof config.image_id === "string" && config.image_id.trim(); |
| 194 | + const payloadImage = props.details?.payload?.image; |
| 195 | +
|
| 196 | + const imageToken = fromConfig || legacyConfig || payloadImage; |
| 197 | + if (!imageToken || typeof imageToken !== "string" || !imageToken.trim()) { |
| 198 | + return "-"; |
190 | 199 | } |
191 | | - if (config && typeof config.image_id === "string" && config.image_id.trim()) { |
192 | | - return config.image_id; |
| 200 | +
|
| 201 | + if ( |
| 202 | + imageToken.startsWith("/") || |
| 203 | + imageToken.startsWith("./") || |
| 204 | + imageToken.startsWith("../") || |
| 205 | + imageToken.includes(":\\") |
| 206 | + ) { |
| 207 | + return imageToken; |
193 | 208 | } |
194 | | - const payloadImage = props.details?.payload?.image; |
195 | | - if (typeof payloadImage === "string" && payloadImage.trim()) { |
196 | | - return payloadImage; |
| 209 | +
|
| 210 | + if (!baseDir) { |
| 211 | + return imageToken; |
197 | 212 | } |
198 | | - return "-"; |
| 213 | +
|
| 214 | + const sanitizedBase = baseDir.endsWith("/") ? baseDir.slice(0, -1) : baseDir; |
| 215 | + return `${sanitizedBase}/${imageToken}`; |
199 | 216 | }); |
200 | 217 | </script> |
0 commit comments