You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ansible/test
Ian Wienand 39945b8570 Make query with errors='ignore' return a blank list (#57038)
The jinja2 query() function (or lookup with wantslist=True, which is
the same thing) should always return a list.

However, if you combine a query with errors='ignore' and take the
error path, the current code returns a None value.  This is important
in a case such as

 - name: Conditional include file
   import_tasks: '{{ item }}'
   vars:
     params:
       files:
         - path/file1.yaml
         - path/file2.yaml
   loop: "{{ q('first_found', params, errors='ignore') }}"

If neither file1.yaml or file2.yaml exist, this should do nothing by
returning an empty list to the loop.  Currently if you run the above
task you'll get a rather unhelpful:

 Invalid data passed to 'loop', it requires a list, got this instead: .

This change ensures that when a query ignores an error, it returns a
empty list.  The errors='ignore' case is tested in several variants
with first_found.  The extant (but deprecated) "skip: True" for
first_found doesn't seem to be explicitly tested; a test is added here
to avoid regressions before removal in 2.12.

This fixes a regression you'll hit if you follow the suggestion in the
deprecation message included with
e17a2b502d to use errors=ignore over
"skip: True" for first_found.  This change adds an example that points
out the query/lookup difference and also fixes the error message to
not mention the now deprecated "skip: True".

Closes #56775
5 years ago
..
cache Update ansible-test sanity command. (#31958) 7 years ago
env Add `env` command to ansible-test and run in CI. (#50176) 6 years ago
integration Make query with errors='ignore' return a blank list (#57038) 5 years ago
legacy Removed legacy Digital Ocean tasks (#51786) 5 years ago
results Collect data from integration test runs. (#28650) 7 years ago
runner Add missing scp dependency for ios_file tests (#56956) 5 years ago
sanity $result.reboot_required = $feature_result.RestartNeeded (#56419) 5 years ago
units Rename _facts -> _info (#57028) 5 years ago
utils Add Hetzner Cloud to CI integration tests. 5 years ago