Ensure that an empty literal list with loop skips the task (#47129)

pull/47139/head
Matt Martz 6 years ago committed by GitHub
parent 4fc6ab55aa
commit 02f4d0a57f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -0,0 +1,2 @@
bugfixes:
- loop - Do not evaluate a empty literal list ``[]`` as falsy, it should instead cause the task to skip ()

@ -236,7 +236,7 @@ class TaskExecutor:
else: else:
raise AnsibleError("Unexpected failure in finding the lookup named '%s' in the available lookup plugins" % self._task.loop_with) raise AnsibleError("Unexpected failure in finding the lookup named '%s' in the available lookup plugins" % self._task.loop_with)
elif self._task.loop: elif self._task.loop is not None:
items = templar.template(self._task.loop) items = templar.template(self._task.loop)
if not isinstance(items, list): if not isinstance(items, list):
raise AnsibleError( raise AnsibleError(

@ -252,3 +252,9 @@
loop: "{{ fake_var }}" loop: "{{ fake_var }}"
register: result register: result
failed_when: result is not skipped failed_when: result is not skipped
- name: Loop on literal empty list
debug:
loop: []
register: literal_empty_list
failed_when: literal_empty_list is not skipped

Loading…
Cancel
Save