Backblaze / boardwalk

A linear remote execution workflow engine built on top of Ansible
Other
18 stars 1 forks source link

Boardwalk CLI: Malformed YAML results in "unreachable" error #43

Open m4wh6k opened 1 year ago

m4wh6k commented 1 year ago

In the course of running a Workflow, if the Boardwalk CLI encounters malformed YAML, it will mistakenly consider the remote host to be unreachable. Boardwalk handles errors with unreachable hosts differently than other errors. For example, Workflow exit_jobs are not run.

While it's possible there's a related issue where, where perhaps Boardwalk should be able to run Workflow exit_jobs in the event of an unreachable failure (such as for local cleanup tasks), Boardwalk would benefit from having an ability to more accurately understand the nature of Ansible errors.

Boardwalk uses Ansible's exit codes to determine the nature of errors returned by Ansible. Unfortunately for this case, Ansible returns the same exit code for unreachable host failures as it does for malformed YAML errors. Using exit codes to understand how Ansible has failed is probably naive anyway, because a given Ansible run may have several different kinds of errors simultaneously.

Consider updating Boardwalk's Ansible functions to parse the output of ansible_runner in a way that could produce more accurate errors to solve this issue