mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
9c8b0b6050
This splits the ImageService methods to separate files, to closer match the existing implementation, and to reduce the amount of code per file, making it easier to read, and to reduce merge conflicts if new functionality is added. Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
121 lines
3.7 KiB
Go
121 lines
3.7 KiB
Go
package containerd
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/containerd/containerd"
|
|
"github.com/docker/docker/api/types"
|
|
"github.com/docker/docker/container"
|
|
"github.com/docker/docker/daemon/images"
|
|
"github.com/docker/docker/image"
|
|
"github.com/docker/docker/layer"
|
|
)
|
|
|
|
// ImageService implements daemon.ImageService
|
|
type ImageService struct {
|
|
client *containerd.Client
|
|
}
|
|
|
|
// NewService creates a new ImageService.
|
|
func NewService(c *containerd.Client) *ImageService {
|
|
return &ImageService{
|
|
client: c,
|
|
}
|
|
}
|
|
|
|
// DistributionServices return services controlling daemon image storage.
|
|
func (i *ImageService) DistributionServices() images.DistributionServices {
|
|
return images.DistributionServices{}
|
|
}
|
|
|
|
// CountImages returns the number of images stored by ImageService
|
|
// called from info.go
|
|
func (i *ImageService) CountImages() int {
|
|
imgs, err := i.client.ListImages(context.TODO())
|
|
if err != nil {
|
|
return 0
|
|
}
|
|
|
|
return len(imgs)
|
|
}
|
|
|
|
// Children returns the children image.IDs for a parent image.
|
|
// called from list.go to filter containers
|
|
// TODO: refactor to expose an ancestry for image.ID?
|
|
func (i *ImageService) Children(id image.ID) []image.ID {
|
|
panic("not implemented")
|
|
}
|
|
|
|
// CreateLayer creates a filesystem layer for a container.
|
|
// called from create.go
|
|
// TODO: accept an opt struct instead of container?
|
|
func (i *ImageService) CreateLayer(container *container.Container, initFunc layer.MountInit) (layer.RWLayer, error) {
|
|
panic("not implemented")
|
|
}
|
|
|
|
// GetLayerByID returns a layer by ID
|
|
// called from daemon.go Daemon.restore(), and Daemon.containerExport().
|
|
func (i *ImageService) GetLayerByID(cid string) (layer.RWLayer, error) {
|
|
panic("not implemented")
|
|
}
|
|
|
|
// LayerStoreStatus returns the status for each layer store
|
|
// called from info.go
|
|
func (i *ImageService) LayerStoreStatus() [][2]string {
|
|
return [][2]string{}
|
|
}
|
|
|
|
// GetLayerMountID returns the mount ID for a layer
|
|
// called from daemon.go Daemon.Shutdown(), and Daemon.Cleanup() (cleanup is actually continerCleanup)
|
|
// TODO: needs to be refactored to Unmount (see callers), or removed and replaced with GetLayerByID
|
|
func (i *ImageService) GetLayerMountID(cid string) (string, error) {
|
|
panic("not implemented")
|
|
}
|
|
|
|
// Cleanup resources before the process is shutdown.
|
|
// called from daemon.go Daemon.Shutdown()
|
|
func (i *ImageService) Cleanup() error {
|
|
return nil
|
|
}
|
|
|
|
// GraphDriverName returns the name of the graph drvier
|
|
// moved from Daemon.GraphDriverName, used by:
|
|
// - newContainer
|
|
// - to report an error in Daemon.Mount(container)
|
|
func (i *ImageService) GraphDriverName() string {
|
|
return ""
|
|
}
|
|
|
|
// ReleaseLayer releases a layer allowing it to be removed
|
|
// called from delete.go Daemon.cleanupContainer(), and Daemon.containerExport()
|
|
func (i *ImageService) ReleaseLayer(rwlayer layer.RWLayer) error {
|
|
panic("not implemented")
|
|
}
|
|
|
|
// LayerDiskUsage returns the number of bytes used by layer stores
|
|
// called from disk_usage.go
|
|
func (i *ImageService) LayerDiskUsage(ctx context.Context) (int64, error) {
|
|
panic("not implemented")
|
|
}
|
|
|
|
// ImageDiskUsage returns information about image data disk usage.
|
|
func (i *ImageService) ImageDiskUsage(ctx context.Context) ([]*types.ImageSummary, error) {
|
|
panic("not implemented")
|
|
}
|
|
|
|
// UpdateConfig values
|
|
//
|
|
// called from reload.go
|
|
func (i *ImageService) UpdateConfig(maxDownloads, maxUploads int) {
|
|
panic("not implemented")
|
|
}
|
|
|
|
// GetLayerFolders returns the layer folders from an image RootFS.
|
|
func (i *ImageService) GetLayerFolders(img *image.Image, rwLayer layer.RWLayer) ([]string, error) {
|
|
panic("not implemented")
|
|
}
|
|
|
|
// GetContainerLayerSize returns the real size & virtual size of the container.
|
|
func (i *ImageService) GetContainerLayerSize(containerID string) (int64, int64) {
|
|
panic("not implemented")
|
|
}
|