浏览代码

Send an event when an image is deleted

Signed-off-by: Djordje Lukic <djordje.lukic@docker.com>
Djordje Lukic 2 年之前
父节点
当前提交
1b178dffa3
共有 1 个文件被更改,包括 10 次插入1 次删除
  1. 10 1
      daemon/containerd/image_delete.go

+ 10 - 1
daemon/containerd/image_delete.go

@@ -45,7 +45,7 @@ import (
 // TODO(thaJeztah): implement ImageDelete "force" options; see https://github.com/moby/moby/issues/43850
 // TODO(thaJeztah): implement ImageDelete "prune" options; see https://github.com/moby/moby/issues/43849
 // TODO(thaJeztah): add support for image delete using image (short)ID; see https://github.com/moby/moby/issues/43854
-// TODO(thaJeztah): mage delete should send image "untag" events and prometheus counters; see https://github.com/moby/moby/issues/43855
+// TODO(thaJeztah): image delete should send prometheus counters; see https://github.com/moby/moby/issues/45268
 func (i *ImageService) ImageDelete(ctx context.Context, imageRef string, force, prune bool) ([]types.ImageDeleteResponseItem, error) {
 	parsedRef, err := reference.ParseNormalizedNamed(imageRef)
 	if err != nil {
@@ -53,10 +53,19 @@ func (i *ImageService) ImageDelete(ctx context.Context, imageRef string, force,
 	}
 	ref := reference.TagNameOnly(parsedRef)
 
+	desc, err := i.resolveDescriptor(ctx, imageRef)
+	if err != nil {
+		return nil, err
+	}
+
+	imgID := string(desc.Digest)
 	err = i.client.ImageService().Delete(ctx, ref.String(), images.SynchronousDelete())
 	if err != nil {
 		return nil, err
 	}
 
+	i.LogImageEvent(imgID, imgID, "untag")
+	i.LogImageEvent(imgID, imgID, "delete")
+
 	return []types.ImageDeleteResponseItem{{Untagged: reference.FamiliarString(parsedRef)}}, nil
 }