From e4898a434838a1d9f2a03e595fd141379d02d26c Mon Sep 17 00:00:00 2001 From: Feanil Patel Date: Fri, 24 Jul 2015 09:38:11 -0400 Subject: [PATCH] If overwrite is set, download eagerly. If the we are going to overwrite the file anyway, there is no need to do any checksums locally or grab the remote etag. --- lib/ansible/modules/cloud/amazon/s3.py | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/lib/ansible/modules/cloud/amazon/s3.py b/lib/ansible/modules/cloud/amazon/s3.py index b0b68e409c..215e79fdaa 100644 --- a/lib/ansible/modules/cloud/amazon/s3.py +++ b/lib/ansible/modules/cloud/amazon/s3.py @@ -482,10 +482,10 @@ def main(): else: module.fail_json(msg="Key %s does not exist."%obj, failed=True) - # If the destination path doesn't exist, no need to md5um etag check, so just download. + # If the destination path doesn't exist or overwrite is True, no need to do the md5um etag check, so just download. pathrtn = path_check(dest) - if pathrtn is False: - download_s3file(module, s3, bucket, obj, dest, retries, version=version) + if pathrtn is False or overwrite == 'always': + download_s3file(module, s3, bucket, obj, dest) # Compare the remote MD5 sum of the object with the local dest md5sum, if it already exists. if pathrtn is True: @@ -509,10 +509,6 @@ def main(): if sum_matches is True and overwrite is False: module.exit_json(msg="Local and remote object are identical, ignoring. Use overwrite parameter to force.", changed=False) - # At this point explicitly define the overwrite condition. - if sum_matches is True and pathrtn is True and overwrite == 'always': - download_s3file(module, s3, bucket, obj, dest, retries, version=version) - # if our mode is a PUT operation (upload), go through the procedure as appropriate ... if mode == 'put':