3a1279393f
Remove forked reference package. Use normalized named values everywhere and familiar functions to convert back to familiar strings for UX and storage compatibility. Enforce that the source repository in the distribution metadata is always a normalized string, ignore invalid values which are not. Update distribution tests to use normalized values. Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
47 lines
1.3 KiB
Go
47 lines
1.3 KiB
Go
package tarexport
|
|
|
|
import (
|
|
"github.com/docker/distribution"
|
|
"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"
|
|
legacyVersionFileName = "VERSION"
|
|
legacyRepositoriesFileName = "repositories"
|
|
)
|
|
|
|
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
|
|
ls 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, action string)
|
|
}
|
|
|
|
// NewTarExporter returns new Exporter for tar packages
|
|
func NewTarExporter(is image.Store, ls layer.Store, rs refstore.Store, loggerImgEvent LogImageEvent) image.Exporter {
|
|
return &tarexporter{
|
|
is: is,
|
|
ls: ls,
|
|
rs: rs,
|
|
loggerImgEvent: loggerImgEvent,
|
|
}
|
|
}
|