cloud: ovirt_disks: Fix download of the qcow disk (#26179)

Fixes: #26177
This commit is contained in:
Ondra Machacek 2017-06-29 14:15:26 +02:00 committed by Ryan Brown
parent 1b00f4193b
commit 0154f32fbd

View file

@ -217,6 +217,7 @@ import traceback
import ssl import ssl
from httplib import HTTPSConnection from httplib import HTTPSConnection
from httplib import IncompleteRead
try: try:
from urllib.parse import urlparse 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): def _transfer(transfer_service, proxy_connection, proxy_url, transfer_ticket):
disks_service = connection.system_service().disks_service() disks_service = connection.system_service().disks_service()
disk = disks_service.disk_service(module.params['id']).get() disk = disks_service.disk_service(module.params['id']).get()
size = disk.provisioned_size size = disk.actual_size
transfer_headers = { transfer_headers = {
'Authorization': transfer_ticket, 'Authorization': transfer_ticket,
} }
@ -349,7 +350,11 @@ def download_disk_image(connection, module):
if r.status >= 300: if r.status >= 300:
raise Exception("Error: %s" % r.read()) raise Exception("Error: %s" % r.read())
try:
mydisk.write(r.read()) mydisk.write(r.read())
except IncompleteRead as e:
mydisk.write(e.partial)
break
pos += chunk_size pos += chunk_size
return transfer( return transfer(
connection, connection,