summaryrefslogtreecommitdiff
path: root/pkg/specgen/specgen.go
diff options
context:
space:
mode:
authorValentin Rothberg <rothberg@redhat.com>2021-09-30 16:42:45 +0200
committerValentin Rothberg <rothberg@redhat.com>2021-10-01 13:30:46 +0200
commit686b7ef7bf5b60c50b45307d548518c9709da87e (patch)
treea0c9249e9bc97393aaead117afd9d51302fc91b6 /pkg/specgen/specgen.go
parent1da364783dace3480ba1a142326aff2a644f19a8 (diff)
downloadpodman-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.go16
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 {