diff options
author | James Cammarata <jimi@sngx.net> | 2013-10-23 12:09:36 -0700 |
---|---|---|
committer | James Cammarata <jimi@sngx.net> | 2013-10-29 16:09:30 -0500 |
commit | e338c743106c5cb945171ef984d640f415360f91 (patch) | |
tree | c7bdc942bec737ae97f57a6d3e3ec23f7913449c | |
parent | 4bc70f0c73ffa9262eb463797ffe228e86e8a770 (diff) | |
download | ansible-e338c743106c5cb945171ef984d640f415360f91.tar.gz |
Minor fix for putting 0-length files over accelerated connections
Fixes #4652
-rw-r--r-- | lib/ansible/runner/connection_plugins/accelerate.py | 6 |
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) |