Add load/save image event support

For every docker load and save operations, it would log related
image events.

Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
Upstream-commit: 06561057103441fe176910e12674d998b8561b75
Component: engine
This commit is contained in:
Kai Qiang Wu(Kennan)
2016-04-19 04:45:59 +00:00
parent 8a812459dd
commit ff027b364b
8 changed files with 71 additions and 14 deletions

View File

@ -122,6 +122,7 @@ func (l *tarexporter) Load(inTar io.ReadCloser, outStream io.Writer, quiet bool)
}
parentLinks = append(parentLinks, parentLink{imgID, m.Parent})
l.loggerImgEvent.LogImageEvent(imgID.String(), imgID.String(), "load")
}
for _, p := range validatedParentLinks(parentLinks) {

View File

@ -158,6 +158,7 @@ func (s *saveSession) save(outStream io.Writer) error {
parentID, _ := s.is.GetParent(id)
parentLinks = append(parentLinks, parentLink{id, parentID})
s.tarexporter.loggerImgEvent.LogImageEvent(id.String(), id.String(), "save")
}
for i, p := range validatedParentLinks(parentLinks) {

View File

@ -22,16 +22,24 @@ type manifestItem struct {
}
type tarexporter struct {
is image.Store
ls layer.Store
rs reference.Store
is image.Store
ls layer.Store
rs reference.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 ImageExporter for tar packages
func NewTarExporter(is image.Store, ls layer.Store, rs reference.Store) image.Exporter {
func NewTarExporter(is image.Store, ls layer.Store, rs reference.Store, loggerImgEvent LogImageEvent) image.Exporter {
return &tarexporter{
is: is,
ls: ls,
rs: rs,
is: is,
ls: ls,
rs: rs,
loggerImgEvent: loggerImgEvent,
}
}