| 5053 | } |
| 5054 | |
| 5055 | fn attach_vm_progress_metadata(event: &mut PlatformEvent) { |
| 5056 | if event.source != "vm" { |
| 5057 | return; |
| 5058 | } |
| 5059 | |
| 5060 | match event.reason.as_str() { |
| 5061 | "Scheduled" => { |
| 5062 | mark_progress_complete( |
| 5063 | &mut event.metadata, |
| 5064 | PROGRESS_STEP_REQUESTING_SANDBOX, |
| 5065 | "Sandbox allocated", |
| 5066 | ); |
| 5067 | mark_progress_active(&mut event.metadata, PROGRESS_STEP_PULLING_IMAGE); |
| 5068 | } |
| 5069 | "Pulling" => { |
| 5070 | mark_progress_active(&mut event.metadata, PROGRESS_STEP_PULLING_IMAGE); |
| 5071 | if let Some(image_ref) = event.metadata.get("image_ref").cloned() { |
| 5072 | mark_progress_detail(&mut event.metadata, image_ref); |
| 5073 | } else if let Some(image_ref) = pulling_image_from_message(&event.message) { |
| 5074 | mark_progress_detail(&mut event.metadata, image_ref); |
| 5075 | } |
| 5076 | } |
| 5077 | "Pulled" => { |
| 5078 | let label = pulled_label(event); |
| 5079 | mark_progress_complete(&mut event.metadata, PROGRESS_STEP_PULLING_IMAGE, label); |
| 5080 | mark_progress_active(&mut event.metadata, PROGRESS_STEP_STARTING_SANDBOX); |
| 5081 | } |
| 5082 | "PullingLayer" => { |
| 5083 | if let Some(detail) = pulling_layer_detail(&event.metadata) { |
| 5084 | mark_progress_detail(&mut event.metadata, detail); |
| 5085 | } |
| 5086 | } |
| 5087 | "ResolvingImage" => mark_progress_detail(&mut event.metadata, "Resolving image"), |
| 5088 | "AuthenticatingRegistry" => { |
| 5089 | mark_progress_detail(&mut event.metadata, "Authenticating registry"); |
| 5090 | } |
| 5091 | "FetchingManifest" => mark_progress_detail(&mut event.metadata, "Fetching image manifest"), |
| 5092 | "CacheHit" => mark_progress_detail(&mut event.metadata, "Using cached root disk"), |
| 5093 | "CacheMiss" => mark_progress_detail(&mut event.metadata, "Preparing image cache"), |
| 5094 | "WaitingForImageCacheLock" => { |
| 5095 | mark_progress_detail(&mut event.metadata, "Waiting for image cache lock"); |
| 5096 | } |
| 5097 | "ExportingRootfs" => { |
| 5098 | mark_progress_detail(&mut event.metadata, "Exporting local image rootfs"); |
| 5099 | } |
| 5100 | "PreparingRootfs" => mark_progress_detail(&mut event.metadata, "Preparing rootfs"), |
| 5101 | "CreatingRootDisk" => mark_progress_detail(&mut event.metadata, "Formatting root disk"), |
| 5102 | "PreparingOverlay" => mark_progress_detail(&mut event.metadata, "Preparing overlay disk"), |
| 5103 | "Started" => mark_progress_detail(&mut event.metadata, "Waiting for VM supervisor"), |
| 5104 | _ => {} |
| 5105 | } |
| 5106 | } |
| 5107 | |
| 5108 | fn pulling_image_from_message(message: &str) -> Option<String> { |
| 5109 | let image = message |