diff options
author | Daniel J Walsh <dwalsh@redhat.com> | 2019-03-13 17:17:07 -0400 |
---|---|---|
committer | Daniel J Walsh <dwalsh@redhat.com> | 2019-03-29 08:27:33 -0400 |
commit | c37589f503913ac85622cc9110e2eb983b1b38f3 (patch) | |
tree | 9061248749f167ec6a5674efa97fef55d2890a95 /libpod | |
parent | 6ab27c6355a4df228ed6d527162d5251d867b9b3 (diff) | |
download | podman-c37589f503913ac85622cc9110e2eb983b1b38f3.tar.gz podman-c37589f503913ac85622cc9110e2eb983b1b38f3.tar.bz2 podman-c37589f503913ac85622cc9110e2eb983b1b38f3.zip |
Set blob cache directory based on GraphDriver
Currently in rootless containers, we end up not using the blob cache.
We also don't store the blob cache based on the users specified graph
storage. This change will cause the cache directory to be stored with
the rest of the containe images.
While doing this patch, I found that we had duplicated GetSystemContext in
two places in libpod. I cleaned this up.
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
Diffstat (limited to 'libpod')
-rw-r--r-- | libpod/common/common.go | 15 | ||||
-rw-r--r-- | libpod/image/image.go | 5 | ||||
-rw-r--r-- | libpod/image/pull.go | 2 | ||||
-rw-r--r-- | libpod/image/search.go | 3 |
4 files changed, 6 insertions, 19 deletions
diff --git a/libpod/common/common.go b/libpod/common/common.go index 5d10bee36..93a736af2 100644 --- a/libpod/common/common.go +++ b/libpod/common/common.go @@ -1,20 +1,5 @@ package common -import ( - "github.com/containers/image/types" -) - -// GetSystemContext Constructs a new containers/image/types.SystemContext{} struct from the given signaturePolicy path -func GetSystemContext(signaturePolicyPath, authFilePath string, forceCompress bool) *types.SystemContext { - sc := &types.SystemContext{} - if signaturePolicyPath != "" { - sc.SignaturePolicyPath = signaturePolicyPath - } - sc.AuthFilePath = authFilePath - sc.DirForceCompress = forceCompress - return sc -} - // IsTrue determines whether the given string equals "true" func IsTrue(str string) bool { return str == "true" diff --git a/libpod/image/image.go b/libpod/image/image.go index f79bc3dc2..4862bf1d6 100644 --- a/libpod/image/image.go +++ b/libpod/image/image.go @@ -6,6 +6,7 @@ import ( "fmt" "io" "os" + "path/filepath" "strings" "syscall" "time" @@ -22,7 +23,6 @@ import ( "github.com/containers/image/transports" "github.com/containers/image/transports/alltransports" "github.com/containers/image/types" - "github.com/containers/libpod/libpod/common" "github.com/containers/libpod/libpod/driver" "github.com/containers/libpod/libpod/events" "github.com/containers/libpod/pkg/inspect" @@ -548,6 +548,7 @@ func (i *Image) PushImageToHeuristicDestination(ctx context.Context, destination // PushImageToReference pushes the given image to a location described by the given path func (i *Image) PushImageToReference(ctx context.Context, dest types.ImageReference, manifestMIMEType, authFile, signaturePolicyPath string, writer io.Writer, forceCompress bool, signingOptions SigningOptions, dockerRegistryOptions *DockerRegistryOptions, additionalDockerArchiveTags []reference.NamedTagged) error { sc := GetSystemContext(signaturePolicyPath, authFile, forceCompress) + sc.BlobInfoCacheDir = filepath.Join(i.imageruntime.store.GraphRoot(), "cache") policyContext, err := getPolicyContext(sc) if err != nil { @@ -909,7 +910,7 @@ func (ir *Runtime) Import(ctx context.Context, path, reference string, writer io return nil, errors.Wrapf(err, "error updating image config") } - sc := common.GetSystemContext("", "", false) + sc := GetSystemContext("", "", false) // if reference not given, get the image digest if reference == "" { diff --git a/libpod/image/pull.go b/libpod/image/pull.go index a3b716e65..5a0706b07 100644 --- a/libpod/image/pull.go +++ b/libpod/image/pull.go @@ -4,6 +4,7 @@ import ( "context" "fmt" "io" + "path/filepath" "strings" cp "github.com/containers/image/copy" @@ -204,6 +205,7 @@ func (ir *Runtime) pullImageFromHeuristicSource(ctx context.Context, inputName s var goal *pullGoal sc := GetSystemContext(signaturePolicyPath, authfile, false) + sc.BlobInfoCacheDir = filepath.Join(ir.store.GraphRoot(), "cache") srcRef, err := alltransports.ParseImageName(inputName) if err != nil { // could be trying to pull from registry with short name diff --git a/libpod/image/search.go b/libpod/image/search.go index 212eff00b..2c66ce284 100644 --- a/libpod/image/search.go +++ b/libpod/image/search.go @@ -9,7 +9,6 @@ import ( "github.com/containers/image/docker" "github.com/containers/image/types" - "github.com/containers/libpod/libpod/common" sysreg "github.com/containers/libpod/pkg/registries" "github.com/fatih/camelcase" "github.com/pkg/errors" @@ -157,7 +156,7 @@ func searchImageInRegistry(term string, registry string, options SearchOptions) limit = options.Limit } - sc := common.GetSystemContext("", options.Authfile, false) + sc := GetSystemContext("", options.Authfile, false) sc.DockerInsecureSkipTLSVerify = options.InsecureSkipTLSVerify // FIXME: Set this more globally. Probably no reason not to have it in // every types.SystemContext, and to compute the value just once in one |