mirror of
https://github.com/ansible/ansible.git
synced 2026-08-03 00:22:10 +02:00
linear strategy, show templated task name on start (#83473)
we only templated in some cases but when queueing we could get an untemplated name for the 'on start' event.
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- linear strategy now provides a properly templated task name to the v2_runner_on_started callback event.
|
||||
@@ -211,30 +211,21 @@ class StrategyModule(StrategyBase):
|
||||
skip_rest = True
|
||||
break
|
||||
|
||||
run_once = templar.template(task.run_once) or action and getattr(action, 'BYPASS_HOST_LOOP', False)
|
||||
run_once = action and getattr(action, 'BYPASS_HOST_LOOP', False) or templar.template(task.run_once)
|
||||
try:
|
||||
task.name = to_text(templar.template(task.name, fail_on_undefined=False), nonstring='empty')
|
||||
except Exception as e:
|
||||
display.debug(f"Failed to templalte task name ({task.name}), ignoring error and continuing: {e}")
|
||||
|
||||
if (task.any_errors_fatal or run_once) and not task.ignore_errors:
|
||||
any_errors_fatal = True
|
||||
|
||||
if not callback_sent:
|
||||
display.debug("sending task start callback, copying the task so we can template it temporarily")
|
||||
saved_name = task.name
|
||||
display.debug("done copying, going to template now")
|
||||
try:
|
||||
task.name = to_text(templar.template(task.name, fail_on_undefined=False), nonstring='empty')
|
||||
display.debug("done templating")
|
||||
except Exception:
|
||||
# just ignore any errors during task name templating,
|
||||
# we don't care if it just shows the raw name
|
||||
display.debug("templating failed for some reason")
|
||||
display.debug("here goes the callback...")
|
||||
if isinstance(task, Handler):
|
||||
self._tqm.send_callback('v2_playbook_on_handler_task_start', task)
|
||||
else:
|
||||
self._tqm.send_callback('v2_playbook_on_task_start', task, is_conditional=False)
|
||||
task.name = saved_name
|
||||
callback_sent = True
|
||||
display.debug("sending task start callback")
|
||||
|
||||
self._blocked_hosts[host.get_name()] = True
|
||||
self._queue_task(host, task, task_vars, play_context)
|
||||
|
||||
@@ -16,5 +16,11 @@ grep -e "${EXPECTED_REGEX}" "${OUTFILE}"
|
||||
# test connection tracking
|
||||
EXPECTED_CONNECTION='{"testhost":{"ssh":4}}'
|
||||
OUTPUT_TAIL=$(tail -n5 ${OUTFILE} | tr -d '[:space:]')
|
||||
echo "Checking for connection strin ${OUTPUT_TAIL} in stdout."
|
||||
[ "${EXPECTED_CONNECTION}" == "${OUTPUT_TAIL}" ]
|
||||
echo $?
|
||||
|
||||
# check variables are interpolated in 'started'
|
||||
UNTEMPLATED_STARTED="^.*\[started .*{{.*}}.*$"
|
||||
echo "Checking we dont have untemplated started in stdout."
|
||||
grep -e "${UNTEMPLATED_STARTED}" "${OUTFILE}" || exit 0
|
||||
|
||||
Reference in New Issue
Block a user