Skip to content

blktests: fix diy output in oscheck run task#42

Merged
dagomez137 merged 1 commit intomainfrom
blktests-diy-fix
Sep 29, 2025
Merged

blktests: fix diy output in oscheck run task#42
dagomez137 merged 1 commit intomainfrom
blktests-diy-fix

Conversation

@dagomez137
Copy link
Contributor

The diy callback plugin was throwing warnings about undefined 'cmd' attribute because the template attempted to access command information through ansible_callback_diy.result.output.cmd, which doesn't exist for ansible.builtin.command modules.

Fixed by using ansible_callback_diy.task.args._raw_params to access the actual command being executed, and replaced ansible_host with inventory_hostname for proper variable scope in the callback context.

Debugging with the following vars helped finding the root cause:

ansible_callback_diy_runner_on_ok_msg: |
DEBUG - Result keys: {{ ansible_callback_diy.result.output.keys() | list }}
DEBUG - Task args: {{ ansible_callback_diy.task.args }}
DEBUG - Direct keys: {{ ansible_callback_diy.keys() | list }}
$ {{ ansible_callback_diy.task.args._raw_params | default('command') }}
{{ stdout | default('') }}

Output:

TASK: Run blktests using oscheck.sh [dgc-testing-block,dgc-testing-nvme] DEBUG - Result keys: ['changed', '_ansible_no_log', 'censored'] DEBUG - Task args: {'chdir': '/usr/local/blktests/', '_raw_params':
'./oscheck.sh --print-start --print-done --test-group block block/003'}
DEBUG - Direct keys: ['playbook', 'play', 'task', 'result', 'top_level_var_names'] $ ./oscheck.sh --print-start --print-done --test-group block block/003 DEBUG - Result keys: ['changed', '_ansible_no_log', 'censored'] DEBUG - Task args: {'chdir': '/usr/local/blktests/', '_raw_params': './oscheck.sh --print-start --print-done --test-group nvme block/003'} DEBUG - Direct keys: ['playbook', 'play', 'task', 'result', 'top_level_var_names'] $ ./oscheck.sh --print-start --print-done --test-group nvme block/003

Generated-by: Claude AI

The diy callback plugin was throwing warnings about undefined 'cmd'
attribute because the template attempted to access command information
through ansible_callback_diy.result.output.cmd, which doesn't exist
for ansible.builtin.command modules.

Fixed by using ansible_callback_diy.task.args._raw_params to access
the actual command being executed, and replaced ansible_host with
inventory_hostname for proper variable scope in the callback context.

Debugging with the following vars helped finding the root cause:

ansible_callback_diy_runner_on_ok_msg: |
  DEBUG - Result keys: {{ ansible_callback_diy.result.output.keys() | list }}
  DEBUG - Task args: {{ ansible_callback_diy.task.args }}
  DEBUG - Direct keys: {{ ansible_callback_diy.keys() | list }}
  $ {{ ansible_callback_diy.task.args._raw_params | default('command') }}
  {{ stdout | default('') }}

Output:

TASK: Run blktests using oscheck.sh [dgc-testing-block,dgc-testing-nvme]
DEBUG - Result keys: ['changed', '_ansible_no_log', 'censored']
DEBUG - Task args: {'chdir': '/usr/local/blktests/', '_raw_params':
    './oscheck.sh --print-start --print-done --test-group block  block/003'}
DEBUG - Direct keys: ['playbook', 'play', 'task', 'result', 'top_level_var_names']
$ ./oscheck.sh --print-start --print-done --test-group block  block/003
DEBUG - Result keys: ['changed', '_ansible_no_log', 'censored']
DEBUG - Task args: {'chdir': '/usr/local/blktests/', '_raw_params':
'./oscheck.sh --print-start --print-done --test-group nvme  block/003'}
DEBUG - Direct keys: ['playbook', 'play', 'task', 'result', 'top_level_var_names']
$ ./oscheck.sh --print-start --print-done --test-group nvme  block/003

Generated-by: Claude AI
Signed-off-by: Daniel Gomez <da.gomez@samsung.com>
@dagomez137 dagomez137 merged commit 9ef5a5b into main Sep 29, 2025
22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant