github.com/rawahars/moby@v24.0.4+incompatible/daemon/images/image_windows.go (about)

     1  package images
     2  
     3  import (
     4  	"context"
     5  
     6  	"github.com/docker/docker/image"
     7  	"github.com/docker/docker/layer"
     8  	"github.com/docker/docker/pkg/system"
     9  	"github.com/pkg/errors"
    10  )
    11  
    12  // GetContainerLayerSize returns real size & virtual size
    13  func (i *ImageService) GetContainerLayerSize(ctx context.Context, containerID string) (int64, int64, error) {
    14  	// TODO Windows
    15  	return 0, 0, nil
    16  }
    17  
    18  // GetLayerFolders returns the layer folders from an image RootFS
    19  func (i *ImageService) GetLayerFolders(img *image.Image, rwLayer layer.RWLayer) ([]string, error) {
    20  	folders := []string{}
    21  	max := len(img.RootFS.DiffIDs)
    22  	for index := 1; index <= max; index++ {
    23  		// FIXME: why does this mutate the RootFS?
    24  		img.RootFS.DiffIDs = img.RootFS.DiffIDs[:index]
    25  		if !system.IsOSSupported(img.OperatingSystem()) {
    26  			return nil, errors.Wrapf(system.ErrNotSupportedOperatingSystem, "cannot get layerpath for ImageID %s", img.RootFS.ChainID())
    27  		}
    28  		layerPath, err := layer.GetLayerPath(i.layerStore, img.RootFS.ChainID())
    29  		if err != nil {
    30  			return nil, errors.Wrapf(err, "failed to get layer path from graphdriver %s for ImageID %s", i.layerStore, img.RootFS.ChainID())
    31  		}
    32  		// Reverse order, expecting parent first
    33  		folders = append([]string{layerPath}, folders...)
    34  	}
    35  	if rwLayer == nil {
    36  		return nil, errors.New("RWLayer is unexpectedly nil")
    37  	}
    38  	m, err := rwLayer.Metadata()
    39  	if err != nil {
    40  		return nil, errors.Wrap(err, "failed to get layer metadata")
    41  	}
    42  	return append(folders, m["dir"]), nil
    43  }