summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzuiurs <z11111001011@gmail.com>2016-10-31 16:47:55 +0900
committerBrian Coca <bcoca@users.noreply.github.com>2016-11-02 22:40:03 -0400
commitcb1d90ccfd2f3ed62fc8fb1e6620463f5c9c15fe (patch)
tree1b753b419844523b228f64b33ad5ad33872cd2c5
parent872a3822c25db6cbb40e35feae1dae0cd56e49e8 (diff)
downloadansible-modules-core-cb1d90ccfd2f3ed62fc8fb1e6620463f5c9c15fe.tar.gz
fix the behavior that the dest is directory
This fixes the behavior that the dest is directory, when we set the "force: no" argument. To be join the dest and the src's basename, before checking the "force" argument.
-rw-r--r--files/copy.py13
1 files changed, 7 insertions, 6 deletions
diff --git a/files/copy.py b/files/copy.py
index 90662265..d42c285e 100644
--- a/files/copy.py
+++ b/files/copy.py
@@ -284,18 +284,19 @@ def main():
directory_args['mode'] = None
adjust_recursive_directory_permissions(pre_existing_dir, new_directory_list, module, directory_args, changed)
+ if os.path.isdir(b_dest):
+ basename = os.path.basename(src)
+ if original_basename:
+ basename = original_basename
+ dest = os.path.join(dest, basename)
+ b_dest = to_bytes(dest, errors='surrogate_or_strict')
+
if os.path.exists(b_dest):
if os.path.islink(b_dest) and follow:
b_dest = os.path.realpath(b_dest)
dest = to_native(b_dest, errors='surrogate_or_strict')
if not force:
module.exit_json(msg="file already exists", src=src, dest=dest, changed=False)
- if os.path.isdir(b_dest):
- basename = os.path.basename(src)
- if original_basename:
- basename = original_basename
- dest = os.path.join(dest, basename)
- b_dest = to_bytes(dest, errors='surrogate_or_strict')
if os.access(b_dest, os.R_OK):
checksum_dest = module.sha1(dest)
else: