github.com/Prakhar-Agarwal-byte/moby@v0.0.0-20231027092010-a14e3e8ab87e/image/tarexport/tarexport.go (about) 1 package tarexport // import "github.com/Prakhar-Agarwal-byte/moby/image/tarexport" 2 3 import ( 4 "github.com/Prakhar-Agarwal-byte/moby/api/types/events" 5 "github.com/Prakhar-Agarwal-byte/moby/image" 6 "github.com/Prakhar-Agarwal-byte/moby/layer" 7 refstore "github.com/Prakhar-Agarwal-byte/moby/reference" 8 "github.com/docker/distribution" 9 ) 10 11 const ( 12 manifestFileName = "manifest.json" 13 legacyLayerFileName = "layer.tar" 14 legacyConfigFileName = "json" 15 legacyRepositoriesFileName = "repositories" 16 ) 17 18 type 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 26 type tarexporter struct { 27 is image.Store 28 lss 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 34 type LogImageEvent interface { 35 // LogImageEvent generates an event related to an image operation 36 LogImageEvent(imageID, refName string, action events.Action) 37 } 38 39 // NewTarExporter returns new Exporter for tar packages 40 func NewTarExporter(is image.Store, lss 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 }