Bug 1041766

Summary: [RFE][glance]: Support restart of partial download
Product: Red Hat OpenStack Reporter: RHOS Integration <rhos-integ>
Component: RFEsAssignee: RHOS Maint <rhos-maint>
Status: CLOSED UPSTREAM QA Contact:
Severity: medium Docs Contact:
Priority: unspecified    
Version: unspecifiedCC: markmc, yeylon
Target Milestone: rcKeywords: FutureFeature
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
URL: https://blueprints.launchpad.net/glance/+spec/restartable-image-download
Whiteboard: upstream_milestone_juno-rc1 upstream_status_implemented upstream_definition_discussion
Fixed In Version: Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-03-19 17:39:15 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description RHOS Integration 2013-12-12 19:14:04 UTC
Cloned from launchpad blueprint https://blueprints.launchpad.net/glance/+spec/restartable-image-download.

Description:

Downloads of very large images may be interrupted prior to completion, due to dropped connections and such.

Rather than discard the partial image and start again from the zero offset, it could be preferable to restart from the current offset where the storage backage support range-based GETs and then knit the remainder of the image content into the partial result of the first GET.

In order to avoid polluting the API, this logic should be limited to the service->backend leg (as opposed to end-to-end interaction from the client side).

The change should be restricted to the glance backend store gluecode for those
stores that support Ranges (S3, Swift, HTTP).

In the S3 case, the boto.s3.resumable_download_handler already provides restartable logic in a fairly generic way, similar logic could be applied to the Swift and HTTP backends.

Specification URL (additional information):

None