mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Fix fetch action plugin to not fail if file is missing and fail_if_missing=False (the default). Add tests to test_fetch role to verify it works as expected.
This commit is contained in:
parent
feee4613cd
commit
260b9f648c
2 changed files with 32 additions and 1 deletions
|
@ -62,6 +62,8 @@ class ActionModule(ActionBase):
|
||||||
if remote_checksum in ('1', '2') or self._play_context.become:
|
if remote_checksum in ('1', '2') or self._play_context.become:
|
||||||
slurpres = self._execute_module(module_name='slurp', module_args=dict(src=source), task_vars=task_vars, tmp=tmp)
|
slurpres = self._execute_module(module_name='slurp', module_args=dict(src=source), task_vars=task_vars, tmp=tmp)
|
||||||
if slurpres.get('failed'):
|
if slurpres.get('failed'):
|
||||||
|
if remote_checksum == '1' and not fail_on_missing:
|
||||||
|
return dict(msg="the remote file does not exist, not transferring, ignored", file=source, changed=False)
|
||||||
return slurpres
|
return slurpres
|
||||||
else:
|
else:
|
||||||
if slurpres['encoding'] == 'base64':
|
if slurpres['encoding'] == 'base64':
|
||||||
|
|
|
@ -38,5 +38,34 @@
|
||||||
that:
|
that:
|
||||||
'diff.stdout == ""'
|
'diff.stdout == ""'
|
||||||
|
|
||||||
|
- name: attempt to fetch a non-existent file - do not fail on missing
|
||||||
|
fetch: src={{ output_dir }}/doesnotexist dest={{ output_dir }}/fetched
|
||||||
|
register: fetch_missing_nofail
|
||||||
|
|
||||||
|
- name: check fetch missing no fail result
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- "fetch_missing_nofail.msg"
|
||||||
|
- "not fetch_missing_nofail|changed"
|
||||||
|
|
||||||
|
- name: attempt to fetch a non-existent file - fail on missing
|
||||||
|
fetch: src={{ output_dir }}/doesnotexist dest={{ output_dir }}/fetched fail_on_missing=yes
|
||||||
|
register: fetch_missing
|
||||||
|
ignore_errors: true
|
||||||
|
|
||||||
|
- name: check fetch missing with failure
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- "fetch_missing|failed"
|
||||||
|
- "fetch_missing.msg"
|
||||||
|
- "not fetch_missing|changed"
|
||||||
|
|
||||||
|
- name: attempt to fetch a directory - should not fail but return a message
|
||||||
|
fetch: src={{ output_dir }} dest={{ output_dir }}/somedir
|
||||||
|
register: fetch_dir
|
||||||
|
|
||||||
|
- name: check fetch directory result
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- "not fetch_dir|changed"
|
||||||
|
- "fetch_dir.msg"
|
||||||
|
|
Loading…
Reference in a new issue