Add support for partial load

Missing layers in tar will not cause an error if 
layers are already loaded before.

Fixes #18723

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
Upstream-commit: f946782316ea5fa635773587bd4c6da7ecf118b8
Component: engine
This commit is contained in:
Tonis Tiigi
2015-12-16 13:46:40 -08:00
parent ff4354d4e6
commit 31bdfea928
+7 -2
View File
@@ -73,9 +73,14 @@ func (l *tarexporter) Load(inTar io.ReadCloser, outStream io.Writer) error {
if err != nil {
return err
}
newLayer, err := l.loadLayer(layerPath, rootFS)
r := rootFS
r.Append(diffID)
newLayer, err := l.ls.Get(r.ChainID())
if err != nil {
return err
newLayer, err = l.loadLayer(layerPath, rootFS)
if err != nil {
return err
}
}
defer layer.ReleaseAndLog(l.ls, newLayer)
if expected, actual := diffID, newLayer.DiffID(); expected != actual {