Merge pull request #23949 from jstarks/fix_progress_on_load_compressed_layer

image: Report load progress on compressed layer size
This commit is contained in:
Sebastiaan van Stijn 2016-06-29 13:37:12 -07:00 committed by GitHub
commit a1fff2ca5a

View file

@ -170,28 +170,25 @@ func (l *tarexporter) loadLayer(filename string, rootFS image.RootFS, id string,
}
defer rawTar.Close()
inflatedLayerData, err := archive.DecompressStream(rawTar)
if err != nil {
return nil, err
}
defer inflatedLayerData.Close()
var r io.Reader
if progressOutput != nil {
fileInfo, err := os.Stat(filename)
fileInfo, err := rawTar.Stat()
if err != nil {
logrus.Debugf("Error statting file: %v", err)
return nil, err
}
progressReader := progress.NewProgressReader(inflatedLayerData, progressOutput, fileInfo.Size(), stringid.TruncateID(id), "Loading layer")
if ds, ok := l.ls.(layer.DescribableStore); ok {
return ds.RegisterWithDescriptor(progressReader, rootFS.ChainID(), foreignSrc)
}
return l.ls.Register(progressReader, rootFS.ChainID())
r = progress.NewProgressReader(rawTar, progressOutput, fileInfo.Size(), stringid.TruncateID(id), "Loading layer")
} else {
r = rawTar
}
inflatedLayerData, err := archive.DecompressStream(r)
if err != nil {
return nil, err
}
defer inflatedLayerData.Close()
if ds, ok := l.ls.(layer.DescribableStore); ok {
return ds.RegisterWithDescriptor(inflatedLayerData, rootFS.ChainID(), foreignSrc)
}