distribution/pull_v2_windows.go
694df3ff
 // +build windows
 
 package distribution
 
 import (
 	"encoding/json"
 	"fmt"
 
 	"github.com/docker/distribution/manifest/schema1"
 	"github.com/docker/docker/image"
 )
 
 func detectBaseLayer(is image.Store, m *schema1.Manifest, rootFS *image.RootFS) error {
 	v1img := &image.V1Image{}
 	if err := json.Unmarshal([]byte(m.History[len(m.History)-1].V1Compatibility), v1img); err != nil {
 		return err
 	}
 	if v1img.Parent == "" {
 		return fmt.Errorf("Last layer %q does not have a base layer reference", v1img.ID)
 	}
 	// There must be an image that already references the baselayer.
 	for _, img := range is.Map() {
 		if img.RootFS.BaseLayerID() == v1img.Parent {
 			rootFS.BaseLayer = img.RootFS.BaseLayer
 			return nil
 		}
 	}
 	return fmt.Errorf("Invalid base layer %q", v1img.Parent)
 }