Are there any activity for this ?
It is really must have feature because of impossibility to get all tags 
within huge playbooks, developed by large team.

четвер, 17 квітня 2014 р. 05:19:18 UTC+3 користувач Michael DeHaan написав:
>
> Sorry that --list-tags was meant to be just "--tags"
>
> ansible-playbook foo.yml --tags NotATagNameJustShowMeTheTags
>
>
> On Wed, Apr 16, 2014 at 10:19 PM, Michael DeHaan <[email protected] 
> <javascript:>> wrote:
>
>> So yeah.
>>
>> There's been interest in adding such before, my requirement is usually 
>> that it uses the Playbook API to do these things.
>>
>> Some things are going to require a minor bit of refactoring to make some 
>> of that later.
>>
>> I generally want to avoid special code specific to /usr/bin/ansible 
>> commands that are not contained in playbook API code.
>>
>> I'd generally think needing the stats class would be "not it".
>>
>> Workaround for now has been to just specify an invalid tag and it will 
>> list available tags, so that is pretty close, but it happens
>> as a result of a "live" run, so I understand that's not quite what you 
>> want.
>>
>> Example:
>>
>> ansible-playbook foo.yml --list-tags NotATagNameJustShowMeTheTags
>>
>>
>>
>> On Wed, Apr 16, 2014 at 3:38 AM, Michael Nelson <[email protected] 
>> <javascript:>> wrote:
>>
>>> On Fri, Mar 7, 2014 at 4:52 PM, Michael Nelson <[email protected] 
>>> <javascript:>> 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] <javascript:>.
>>> To post to this group, send email to [email protected] 
>>> <javascript:>.
>>> 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.
>>>
>>
>>
>

-- 
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/723c5d04-576f-4814-ae19-bd9cdf32b749%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to