moby/image/tarexport/tarexport.go
Sebastiaan van Stijn 0f871f8cb7
api/types/events: define "Action" type and consts
Define consts for the Actions we use for events, instead of "ad-hoc" strings.
Having these consts makes it easier to find where specific events are triggered,
makes the events less error-prone, and allows documenting each Action (if needed).

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2023-08-29 00:38:08 +02:00

51 lines
1.5 KiB
Go

package tarexport // import "github.com/docker/docker/image/tarexport"
import (
"github.com/docker/distribution"
"github.com/docker/docker/api/types/events"
"github.com/docker/docker/image"
"github.com/docker/docker/layer"
refstore "github.com/docker/docker/reference"
)
const (
manifestFileName = "manifest.json"
legacyLayerFileName = "layer.tar"
legacyConfigFileName = "json"
legacyRepositoriesFileName = "repositories"
ociIndexFileName = "index.json"
ociLayoutFilename = "oci-layout"
ociLayoutContent = `{"imageLayoutVersion": "1.0.0"}`
)
type manifestItem struct {
Config string
RepoTags []string
Layers []string
Parent image.ID `json:",omitempty"`
LayerSources map[layer.DiffID]distribution.Descriptor `json:",omitempty"`
}
type tarexporter struct {
is image.Store
lss layer.Store
rs refstore.Store
loggerImgEvent LogImageEvent
}
// LogImageEvent defines interface for event generation related to image tar(load and save) operations
type LogImageEvent interface {
// LogImageEvent generates an event related to an image operation
LogImageEvent(imageID, refName string, action events.Action)
}
// NewTarExporter returns new Exporter for tar packages
func NewTarExporter(is image.Store, lss layer.Store, rs refstore.Store, loggerImgEvent LogImageEvent) image.Exporter {
return &tarexporter{
is: is,
lss: lss,
rs: rs,
loggerImgEvent: loggerImgEvent,
}
}