Minor fix for putting 0-length files over accelerated connections

Fixes #4652
This commit is contained in:
James Cammarata 2013-10-23 12:09:36 -07:00
parent 4833c2fdf0
commit b9dd514713

View file

@ -211,9 +211,10 @@ class Connection(object):
fstat = os.stat(in_path)
try:
vvv("PUT file is %d bytes" % fstat.st_size)
while fd.tell() < fstat.st_size:
last = False
while fd.tell() <= fstat.st_size and not last:
vvvv("file position currently %ld, file size is %ld" % (fd.tell(), fstat.st_size))
data = fd.read(CHUNK_SIZE)
last = False
if fd.tell() >= fstat.st_size:
last = True
data = dict(mode='put', data=base64.b64encode(data), out_path=out_path, last=last)
@ -235,6 +236,7 @@ class Connection(object):
raise errors.AnsibleError("failed to put the file in the requested location")
finally:
fd.close()
vvvv("waiting for final response after PUT")
response = self.recv_data()
if not response:
raise errors.AnsibleError("Failed to get a response from %s" % self.host)