If the user mis-spells a tag when invoking a playbook, then Ansible will run 0 tasks and claim it succeeded. This is misleading.
Ansible should warn users when 0 tasks match the tags, because the user probably did not intent to run 0 tasks.
e.g.
---
- hosts: localhost
tasks:
- name: test
debug:
msg: "test"
tags:
- something
ansible-playbook test.yaml --tags somethin(Note the lack of the e at the end. It's a mis-spelled tag.)
Expected behavior: Ansible warns the user that no tag called somethin exists, and zero tasks will be run.
Actual behavior: Ansible runs and prints all green, but for zero
tasks. As a user my first impression was that all tasked tagged with something had been completed, but this was not the case.
The answer I got on github was that it is not possible to count the number of matched tasks prior to execution. However what about after execution?
i.e. make `ansible-playbook --tags blah playbook.yaml` do this:
num_tasks_run = 0
for task in tasks:
if tag in task:
task.do()
num_tasks_run += 1
if (num_tasks_run == 0):
print("Warning: No tasks were run. Did you misspell your tag?")
(Looking at the repo, it's not clear where anything is. E.g. there's a bin directory, even though Ansible can be run without compiling to a binary.)
Regards,
Matt