|
|
|
@ -136,8 +136,8 @@ class ActionModule(object):
|
|
|
|
|
|
|
|
|
|
# If it's recursive copy, destination is always a dir,
|
|
|
|
|
# explicitly mark it so (note - copy module relies on this).
|
|
|
|
|
if not dest.endswith("/"):
|
|
|
|
|
dest += "/"
|
|
|
|
|
if not conn.shell.path_has_trailing_slash(dest):
|
|
|
|
|
dest = conn.shell.join_path(dest, '')
|
|
|
|
|
else:
|
|
|
|
|
source_files.append((source, os.path.basename(source)))
|
|
|
|
|
|
|
|
|
@ -169,10 +169,10 @@ class ActionModule(object):
|
|
|
|
|
# This is kind of optimization - if user told us destination is
|
|
|
|
|
# dir, do path manipulation right away, otherwise we still check
|
|
|
|
|
# for dest being a dir via remote call below.
|
|
|
|
|
if dest.endswith("/"): # CCTODO: Fixme for powershell
|
|
|
|
|
dest_file = os.path.join(dest, source_rel)
|
|
|
|
|
if conn.shell.path_has_trailing_slash(dest):
|
|
|
|
|
dest_file = conn.shell.join_path(dest, source_rel)
|
|
|
|
|
else:
|
|
|
|
|
dest_file = dest
|
|
|
|
|
dest_file = conn.shell.join_path(dest)
|
|
|
|
|
|
|
|
|
|
# Attempt to get the remote MD5 Hash.
|
|
|
|
|
remote_md5 = self.runner._remote_md5(conn, tmp_path, dest_file)
|
|
|
|
@ -186,7 +186,7 @@ class ActionModule(object):
|
|
|
|
|
return ReturnData(conn=conn, result=result)
|
|
|
|
|
else:
|
|
|
|
|
# Append the relative source location to the destination and retry remote_md5.
|
|
|
|
|
dest_file = os.path.join(dest, source_rel) # CCTODO
|
|
|
|
|
dest_file = conn.shell.join_path(dest, source_rel)
|
|
|
|
|
remote_md5 = self.runner._remote_md5(conn, tmp_path, dest_file)
|
|
|
|
|
|
|
|
|
|
if remote_md5 != '1' and not force:
|
|
|
|
|