Hi, I've got the following structures (or at least I'm hoping to be able to use them)
list_of_files: - { filename: file1, version: 1 } - { filename: file2, version: 1 } - { filename: file3, version: 1 } - { filename: file1, version: 2 } - { filename: file2, version: 2 } - { filename: file1, version: 3 } - { filename: file1, version: 4 } - { filename: file1, version: 5 } - { filename: file2, version: 5 } dict_name: key1: type: x dictversion: 1 key2: type: y dictversion: 2 key3: type: z dictversion: 1 I'd like to use *dict_name.key.dictversion* to download all files from *list_of_files* where *dict_name.keyX.dictversion==**list_of_files* *.version. * Meaning, for each key, I'd like to get the (variable) number of files with the versionnumber that specific key has. I tried with this: - name: Get files get_url: url={{ source }}/{{ item.0.filename }} dest={{ somewhere }} with_together: - dict_name - list_of_files when: "{{ dict_name[item.1].dictversion }}" == "{{ item.0.version }} But it doesnt work. It errors out with a stacktrace: File "/usr/lib/python2.7/site-packages/ansible/runner/__init__.py", line 561, in _executor exec_rc = self._executor_internal(host, new_stdin) File "/usr/lib/python2.7/site-packages/ansible/runner/__init__.py", line 696, in _executor_internal complex_args=complex_args File "/usr/lib/python2.7/site-packages/ansible/runner/__init__.py", line 756, in _executor_internal_inner if not utils.check_conditional(cond, self.basedir, inject, fail_on_undefined=self.error_on_undefined_vars): File "/usr/lib/python2.7/site-packages/ansible/utils/__init__.py", line 254, in check_conditional conditional = template.template(basedir, conditional, inject, fail_on_undefined=fail_on_undefined) File "/usr/lib/python2.7/site-packages/ansible/utils/template.py", line 115, in template varname = template_from_string(basedir, varname, vars, fail_on_undefined) File "/usr/lib/python2.7/site-packages/ansible/utils/template.py", line 357, in template_from_string res = jinja2.utils.concat(rf) File "<template>", line 10, in root File "/usr/lib/python2.7/site-packages/jinja2/environment.py", line 372, in getattr return getattr(obj, attribute) File "/usr/lib/python2.7/site-packages/jinja2/runtime.py", line 463, in __getattr__ return self._fail_with_undefined_error() File "/usr/lib/python2.7/site-packages/jinja2/runtime.py", line 457, in _fail_with_undefined_error raise self._undefined_exception(hint) UndefinedError: dict object has no element None Is this even possible? I could work around this by adding something like a 'download: true/false' to the list and use that in the when:, but I really like the to be able to control which files to get by using the dictversion variable in *dict_name* regards /Micke -- 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 ansible-project+unsubscr...@googlegroups.com. To post to this group, send email to ansible-project@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/4f8428c3-a03e-4d43-9b59-83ade3c66b47%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.