1package tarexport // import "github.com/docker/docker/image/tarexport" 2 3import ( 4 "github.com/docker/distribution" 5 "github.com/docker/docker/image" 6 "github.com/docker/docker/layer" 7 refstore "github.com/docker/docker/reference" 8) 9 10const ( 11 manifestFileName = "manifest.json" 12 legacyLayerFileName = "layer.tar" 13 legacyConfigFileName = "json" 14 legacyVersionFileName = "VERSION" 15 legacyRepositoriesFileName = "repositories" 16) 17 18type manifestItem struct { 19 Config string 20 RepoTags []string 21 Layers []string 22 Parent image.ID `json:",omitempty"` 23 LayerSources map[layer.DiffID]distribution.Descriptor `json:",omitempty"` 24} 25 26type tarexporter struct { 27 is image.Store 28 lss map[string]layer.Store 29 rs refstore.Store 30 loggerImgEvent LogImageEvent 31} 32 33// LogImageEvent defines interface for event generation related to image tar(load and save) operations 34type LogImageEvent interface { 35 //LogImageEvent generates an event related to an image operation 36 LogImageEvent(imageID, refName, action string) 37} 38 39// NewTarExporter returns new Exporter for tar packages 40func NewTarExporter(is image.Store, lss map[string]layer.Store, rs refstore.Store, loggerImgEvent LogImageEvent) image.Exporter { 41 return &tarexporter{ 42 is: is, 43 lss: lss, 44 rs: rs, 45 loggerImgEvent: loggerImgEvent, 46 } 47} 48