Please file a bug for any tracebacks you find. We would definitely like to
know if you can reproduce this on 1.4.4 or on the latest devel.


On Tue, Feb 4, 2014 at 6:46 PM, Mark Casey <[email protected]> wrote:

> For what it's worth, I tried taking out the reference to group_names and
> instead passed into the role as a variable a list of group names to test
> with. I still got the traceback. It doesn't happen if I just duplicate the
> task and use multiple copies of it that are even more hard coded such as:
> "{{ id }}_aStaticGroupName". Now the whole thing breaks horribly *past*that 
> point because of the change, but the tracebacks stop.
>
> So AFAICT I get the traceback trying to use "{{ id }}_{{ item }}".
>
> Also I forgot to mention that I'm seeing this on v1.4.3.
>
> Thank you,
> Mark
>
>
> On Monday, February 3, 2014 4:01:14 PM UTC-6, Mark Casey wrote:
>>
>> Hello,
>>
>> I'm getting a traceback on a group_by, which is intended to create a
>> group named after each of a host's existing groups, prepended by a variable
>> that is being set with '-e' at invocation (a site/host-group ID):
>>
>> - name: vagrant | Create provider-agnostic ID_and_type group
>>>   group_by: key="{{ id }}_{{ item }}"
>>>   with_items: group_names
>>>   when: provider == "vagrant"
>>>
>>
>> The variable *provider* is also being set via '-e'. So for example, a
>> host that was part of the dns and mail groups would be added to groups like
>> prodSite1_dns and prodSite1_mail. These are not being set statically in an
>> inventory file because sometimes it is run on ec2 hosts and the groups are
>> pulled from tags, and sometimes it is run on a vagrant box and the groups
>> are written into an inventory script.
>>
>> Here is what I'm getting when running with -vvvv:
>>
>> TASK: [iaas_gather_multi | ec2 | Create provider-agnostic ID group]
>>> ***********
>>> skipping: [localhost]
>>>
>>> TASK: [iaas_gather_multi | ec2 | Create provider-agnostic type group]
>>> *********
>>> skipping: [localhost]
>>>
>>> TASK: [iaas_gather_multi | ec2 | Create provider-agnostic ID_and_type
>>> group] ***
>>> skipping: [localhost]
>>>
>>> TASK: [iaas_gather_multi | ec2 | Create provider-agnostic
>>> host-provisioned boolean] ***
>>> skipping: [localhost]
>>>
>>> TASK: [iaas_gather_multi | debug var=group_names]
>>> *****************************
>>> ok: [localhost] => {
>>>     "group_names": [
>>>         "db",
>>>         "webnode"
>>>     ],
>>>     "item": ""
>>> }
>>>
>>>  TASK: [iaas_gather_multi | vagrant | Create provider-agnostic
>>> ID_and_type group] ***
>>> created 'group_by' ActionModule: key={{id}}_{{item}}
>>> changed: [localhost] => (item=db) => {"changed": true, "groups":
>>> {"vagrant-devhost_db": ["localhost"]}, "item": "db"}
>>> created 'group_by' ActionModule: key={{id}}_{{item}}
>>> fatal: [localhost] => Traceback (most recent call last):
>>>   File "/usr/lib/pymodules/python2.7/ansible/runner/__init__.py", line
>>> 394, in _executor
>>>     exec_rc = self._executor_internal(host, new_stdin)
>>>   File "/usr/lib/pymodules/python2.7/ansible/runner/__init__.py", line
>>> 514, in _executor_internal
>>>     complex_args=complex_args
>>>   File "/usr/lib/pymodules/python2.7/ansible/runner/__init__.py", line
>>> 685, in _executor_internal_inner
>>>     result = handler.run(conn, tmp, module_name, module_args, inject,
>>> complex_args)
>>>   File 
>>> "/usr/lib/pymodules/python2.7/ansible/runner/action_plugins/group_by.py",
>>> line 86, in run
>>>     del self.runner.inventory._vars_per_host[host]
>>> KeyError: u'localhost'
>>>
>>>
>>> FATAL: all hosts have already failed -- aborting
>>>
>>
>> Thank you,
>> Mark
>>
>  --
> 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].
> For more options, visit https://groups.google.com/groups/opt_out.
>

-- 
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].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to