diff options
author | Valentin Rothberg <rothberg@redhat.com> | 2021-09-30 16:42:45 +0200 |
---|---|---|
committer | Valentin Rothberg <rothberg@redhat.com> | 2021-10-01 13:30:46 +0200 |
commit | 686b7ef7bf5b60c50b45307d548518c9709da87e (patch) | |
tree | a0c9249e9bc97393aaead117afd9d51302fc91b6 /pkg/specgen/specgen.go | |
parent | 1da364783dace3480ba1a142326aff2a644f19a8 (diff) | |
download | podman-686b7ef7bf5b60c50b45307d548518c9709da87e.tar.gz podman-686b7ef7bf5b60c50b45307d548518c9709da87e.tar.bz2 podman-686b7ef7bf5b60c50b45307d548518c9709da87e.zip |
pkg/specgen: cache image in generator
To prevent expensive redundant lookups and inspects on the same image,
cache the image in the generator. Note that once a given image has been
inspected, subsequent calls will use the libimage-internal cache.
[NO TESTS NEEDED] since it is no functional change.
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
Diffstat (limited to 'pkg/specgen/specgen.go')
-rw-r--r-- | pkg/specgen/specgen.go | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/pkg/specgen/specgen.go b/pkg/specgen/specgen.go index 70b2aa1ef..dbb669291 100644 --- a/pkg/specgen/specgen.go +++ b/pkg/specgen/specgen.go @@ -5,6 +5,7 @@ import ( "strings" "syscall" + "github.com/containers/common/libimage" "github.com/containers/image/v5/manifest" nettypes "github.com/containers/podman/v3/libpod/network/types" "github.com/containers/storage/types" @@ -512,6 +513,21 @@ type SpecGenerator struct { ContainerNetworkConfig ContainerResourceConfig ContainerHealthCheckConfig + + image *libimage.Image `json:"-"` + resolvedImageName string `json:"-"` +} + +// SetImage sets the associated for the generator. +func (s *SpecGenerator) SetImage(image *libimage.Image, resolvedImageName string) { + s.image = image + s.resolvedImageName = resolvedImageName +} + +// Image returns the associated image for the generator. +// May be nil if no image has been set yet. +func (s *SpecGenerator) GetImage() (*libimage.Image, string) { + return s.image, s.resolvedImageName } type Secret struct { |