From b51568c166e29ec5ee4053fb14abda2fe6d46488 Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Mon, 12 May 2025 11:40:13 +0200 Subject: [PATCH] fix: make ansible more resilient to invalid lockfiles --- .../windmill-worker/src/ansible_executor.rs | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/backend/windmill-worker/src/ansible_executor.rs b/backend/windmill-worker/src/ansible_executor.rs index a0aa683cb3..1e47edc67e 100644 --- a/backend/windmill-worker/src/ansible_executor.rs +++ b/backend/windmill-worker/src/ansible_executor.rs @@ -782,9 +782,22 @@ pub async fn handle_ansible_job( "ansible", )?; - let req_lockfiles: Option = requirements_o - .map(|s| serde_json::from_str(s)) - .transpose()?; + let req_lockfiles: Option = if let Some(s) = requirements_o { + if let Ok(lockfile) = serde_json::from_str(s) { + Some(lockfile) + } else { + append_logs( + &job.id, + &job.workspace_id, + format!("WARN: lockfile could not be parsed: `{s}`"), + conn, + ) + .await; + None + } + } else { + None + }; let (logs, reqs, playbook) = windmill_parser_yaml::parse_ansible_reqs(inner_content)?; append_logs(&job.id, &job.workspace_id, logs, conn).await;