From 0154f32fbd4c9a9fb06beb494156d45ab63f0c67 Mon Sep 17 00:00:00 2001 From: Ondra Machacek Date: Thu, 29 Jun 2017 14:15:26 +0200 Subject: [PATCH] cloud: ovirt_disks: Fix download of the qcow disk (#26179) Fixes: #26177 --- lib/ansible/modules/cloud/ovirt/ovirt_disks.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/ansible/modules/cloud/ovirt/ovirt_disks.py b/lib/ansible/modules/cloud/ovirt/ovirt_disks.py index 5735cf1b12..e303e6740a 100644 --- a/lib/ansible/modules/cloud/ovirt/ovirt_disks.py +++ b/lib/ansible/modules/cloud/ovirt/ovirt_disks.py @@ -217,6 +217,7 @@ import traceback import ssl from httplib import HTTPSConnection +from httplib import IncompleteRead try: from urllib.parse import urlparse @@ -329,7 +330,7 @@ def download_disk_image(connection, module): def _transfer(transfer_service, proxy_connection, proxy_url, transfer_ticket): disks_service = connection.system_service().disks_service() disk = disks_service.disk_service(module.params['id']).get() - size = disk.provisioned_size + size = disk.actual_size transfer_headers = { 'Authorization': transfer_ticket, } @@ -349,7 +350,11 @@ def download_disk_image(connection, module): if r.status >= 300: raise Exception("Error: %s" % r.read()) - mydisk.write(r.read()) + try: + mydisk.write(r.read()) + except IncompleteRead as e: + mydisk.write(e.partial) + break pos += chunk_size return transfer( connection,