fetch: fail if flat=yes and dest=existing-dir w/o trailing slash

This commit is contained in:
Martin Krizek 2017-07-28 11:36:29 +02:00 committed by Brian Coca
parent f3bc8b84b6
commit 36c6d0f748
2 changed files with 19 additions and 0 deletions

View file

@ -120,6 +120,11 @@ class ActionModule(ActionBase):
dest = os.path.expanduser(dest)
if flat:
if os.path.isdir(to_bytes(dest, errors='surrogate_or_strict')) and not dest.endswith(os.sep):
result['msg'] = "dest is an existing directory, use a trailing slash if you want to fetch src into that directory"
result['file'] = dest
result['failed'] = True
return result
if dest.endswith(os.sep):
# if the path ends with "/", we'll use the source filename as the
# destination filename

View file

@ -122,3 +122,17 @@
assert:
that:
'diff.stdout == ""'
- name: dest is an existing directory name without trailing slash and flat=yes, should fail
fetch:
src: "{{ output_dir }}/orig"
dest: "{{ output_dir }}"
flat: yes
register: failed_fetch_dest_dir
ignore_errors: true
- name: check that it indeed failed
assert:
that:
- "failed_fetch_dest_dir|failed"
- "failed_fetch_dest_dir.msg"