summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Cammarata <jimi@sngx.net>2013-10-23 12:09:36 -0700
committerJames Cammarata <jimi@sngx.net>2013-10-29 16:09:30 -0500
commite338c743106c5cb945171ef984d640f415360f91 (patch)
treec7bdc942bec737ae97f57a6d3e3ec23f7913449c
parent4bc70f0c73ffa9262eb463797ffe228e86e8a770 (diff)
downloadansible-e338c743106c5cb945171ef984d640f415360f91.tar.gz
Minor fix for putting 0-length files over accelerated connections
Fixes #4652
-rw-r--r--lib/ansible/runner/connection_plugins/accelerate.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/ansible/runner/connection_plugins/accelerate.py b/lib/ansible/runner/connection_plugins/accelerate.py
index 2ab32af2dc..9c74bd1b23 100644
--- a/lib/ansible/runner/connection_plugins/accelerate.py
+++ b/lib/ansible/runner/connection_plugins/accelerate.py
@@ -200,9 +200,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)
@@ -224,6 +225,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)