summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrent Baude <bbaude@redhat.com>2020-08-03 12:53:33 -0500
committerMatthew Heon <matthew.heon@pm.me>2020-08-20 12:16:52 -0400
commitc22ea20bf6f12ccf289a48cc185d5159ce7fdaf4 (patch)
tree7ad44996925cf5e6095d749f7a9510dfb3f1ec13
parentc14b6c366288c875155d8bbb33c322843b438741 (diff)
downloadpodman-c22ea20bf6f12ccf289a48cc185d5159ce7fdaf4.tar.gz
podman-c22ea20bf6f12ccf289a48cc185d5159ce7fdaf4.tar.bz2
podman-c22ea20bf6f12ccf289a48cc185d5159ce7fdaf4.zip
add event for image build
upon image build completion, a new image type event is written for "build". more intricate details, like pulling an image, that might be done by build must be implemented in different vendored packages only after libpod is split from podman. Fixes: #7022 Signed-off-by: Brent Baude <bbaude@redhat.com> <MH: Fixed imports during cherry-pick> Signed-off-by: Matt Heon <matthew.heon@pm.me>
-rw-r--r--libpod/events/config.go2
-rw-r--r--libpod/events/events.go2
-rw-r--r--libpod/runtime_img.go16
3 files changed, 20 insertions, 0 deletions
diff --git a/libpod/events/config.go b/libpod/events/config.go
index c34408e63..bb35c03c0 100644
--- a/libpod/events/config.go
+++ b/libpod/events/config.go
@@ -101,6 +101,8 @@ const (
Attach Status = "attach"
// AutoUpdate ...
AutoUpdate Status = "auto-update"
+ // Build ...
+ Build Status = "build"
// Checkpoint ...
Checkpoint Status = "checkpoint"
// Cleanup ...
diff --git a/libpod/events/events.go b/libpod/events/events.go
index 0253b1ee5..722c9595e 100644
--- a/libpod/events/events.go
+++ b/libpod/events/events.go
@@ -127,6 +127,8 @@ func StringToStatus(name string) (Status, error) {
switch name {
case Attach.String():
return Attach, nil
+ case Build.String():
+ return Build, nil
case Checkpoint.String():
return Checkpoint, nil
case Cleanup.String():
diff --git a/libpod/runtime_img.go b/libpod/runtime_img.go
index 7c75dbf98..1a82cdc07 100644
--- a/libpod/runtime_img.go
+++ b/libpod/runtime_img.go
@@ -11,7 +11,11 @@ import (
"github.com/containers/buildah/imagebuildah"
"github.com/containers/image/v5/docker/reference"
+ ociarchive "github.com/containers/image/v5/oci/archive"
+ "github.com/containers/image/v5/oci/layout"
+ "github.com/containers/image/v5/types"
"github.com/containers/libpod/v2/libpod/define"
+ "github.com/containers/libpod/v2/libpod/events"
"github.com/containers/libpod/v2/libpod/image"
"github.com/containers/libpod/v2/pkg/util"
"github.com/containers/storage"
@@ -147,9 +151,21 @@ func removeStorageContainers(ctrIDs []string, store storage.Store) error {
return nil
}
+// newBuildEvent creates a new event based on completion of a built image
+func (r *Runtime) newImageBuildCompleteEvent(idOrName string) {
+ e := events.NewEvent(events.Build)
+ e.Type = events.Image
+ e.Name = idOrName
+ if err := r.eventer.Write(e); err != nil {
+ logrus.Errorf("unable to write build event: %q", err)
+ }
+}
+
// Build adds the runtime to the imagebuildah call
func (r *Runtime) Build(ctx context.Context, options imagebuildah.BuildOptions, dockerfiles ...string) (string, reference.Canonical, error) {
id, ref, err := imagebuildah.BuildDockerfiles(ctx, r.store, options, dockerfiles...)
+ // Write event for build completion
+ r.newImageBuildCompleteEvent(id)
return id, ref, err
}