The download code was mistakenly using the length of the json
manifest in place of the length of the image file blob.

Signed-off-by: Daniel P. Berrange <berra...@redhat.com>
---
 libvirt-sandbox/image/sources/docker.py | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/libvirt-sandbox/image/sources/docker.py 
b/libvirt-sandbox/image/sources/docker.py
index 3e0aa9f..3b59051 100644
--- a/libvirt-sandbox/image/sources/docker.py
+++ b/libvirt-sandbox/image/sources/docker.py
@@ -138,8 +138,6 @@ class DockerSource(base.Source):
                                           jsonfile)
                     createdFiles.append(jsonfile)
 
-                    layersize = int(res.info().getheader("Content-Length"))
-
                     datacsum = None
                     if layerid in checksums:
                         datacsum = checksums[layerid]
@@ -148,7 +146,7 @@ class DockerSource(base.Source):
                                     registryendpoint,
                                     "/v1/images/" + layerid + "/layer",
                                     headers,
-                                    datafile, datacsum, layersize)
+                                    datafile, datacsum)
                     createdFiles.append(datafile)
 
             index = {
@@ -173,10 +171,14 @@ class DockerSource(base.Source):
                     pass
 
     def _save_data(self, template, server, path, headers,
-                   dest, checksum=None, datalen=None):
+                   dest, checksum=None):
         try:
             res = self._get_url(template, server, path, headers)
 
+            datalen = res.info().getheader("Content-Length")
+            if datalen is not None:
+                datalen = int(datalen)
+
             csum = None
             if checksum is not None:
                 csum = hashlib.sha256()
-- 
2.7.4

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to