Fix copy when force=no and update _remote_md5 docs.

Previously setting force=no caused copy to subversively
fail when target did not exist on remote host.

Caused by Runner._remote_md5 returning 1
when files don't exist, rather than 0.
pull/3050/head
Jeremiah Heller 12 years ago committed by Michael DeHaan
parent 3e774fedea
commit 7de718cd51

@ -621,7 +621,7 @@ class Runner(object):
# ***************************************************** # *****************************************************
def _remote_md5(self, conn, tmp, path): def _remote_md5(self, conn, tmp, path):
''' takes a remote md5sum without requiring python, and returns 0 if no file ''' ''' takes a remote md5sum without requiring python, and returns 1 if no file '''
path = pipes.quote(path) path = pipes.quote(path)
# The following test needs to be SH-compliant. BASH-isms will # The following test needs to be SH-compliant. BASH-isms will

@ -106,8 +106,8 @@ class ActionModule(object):
dest = os.path.join(dest, os.path.basename(source)) dest = os.path.join(dest, os.path.basename(source))
remote_md5 = self.runner._remote_md5(conn, tmp, dest) remote_md5 = self.runner._remote_md5(conn, tmp, dest)
# remote_md5 == '0' would mean that the file does not exist. # remote_md5 == '1' would mean that the file does not exist.
if remote_md5 != '0' and not force: if remote_md5 != '1' and not force:
return ReturnData(conn=conn, result=dict(changed=False)) return ReturnData(conn=conn, result=dict(changed=False))
exec_rc = None exec_rc = None

Loading…
Cancel
Save