On Fri, Mar 7, 2014 at 4:52 PM, Michael Nelson <[email protected]> wrote:
>
>
> On Friday, 7 March 2014 16:31:45 UTC+1, Michael Nelson wrote:
>>
>> Hi!
>>
>> Just a heads-up that I'm thinking of adding a --list-tags option to
>> ansible-playbook. Let me know if there's a reason why that wouldn't be a
>> good idea, or it's not needed etc.
>>
>> My use-case is that I'd like to know in advance whether a tag is included
>> in the playbook, rather than running the playbook and erroring. I can
>> currently work around this by parsing the error output of `ansible-playbook
>> --tags random-hash myplaybook`, but I'd like a nicer way :)
>
>
> Actually, I've just taken a look at the code and seen that, given that I'm
> already using python helpers for the ansible support, I could just use
> ansible.playbook.Play().compare_tags() directly. So no change needed :)
>
Just getting back to this - it seems quite complicated to get the tags
for a playbook... here's the helper function that I have:
{{{
def get_tags_for_playbook(playbook_path):
"""Return all tags within a playbook."""
# utils imported first to avoid circular import failure.
import ansible.utils
import ansible.callbacks
import ansible.playbook
stats = ansible.callbacks.AggregateStats()
callbacks = ansible.callbacks.PlaybookRunnerCallbacks(stats)
runner_callbacks =
ansible.callbacks.PlaybookRunnerCallbacks(stats)
playbook = ansible.playbook.PlayBook(playbook=playbook_path,
callbacks=callbacks,
runner_callbacks=runner_callbacks,
stats=stats)
myplay = ansible.playbook.Play(playbook, ds=playbook.playbook[0],
basedir=os.path.dirname(playbook_path))
_, playbook_tags = myplay.compare_tags([])
playbook_tags.remove('all')
return playbook_tags
}}}
Perhaps it is worth a feature request - let me know if this should be
easier or if I've missed something above?
Thanks.
-Michael
--
You received this message because you are subscribed to the Google Groups
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/CABgyWipybYRJGkwt4MgXgOZcWNEE4bYOiZZeuac8PeTCApebzw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.