summaryrefslogtreecommitdiff
path: root/pkg
diff options
context:
space:
mode:
authorW. Trevor King <wking@tremily.us>2019-01-08 21:46:20 -0800
committerAtomic Bot <atomic-devel@projectatomic.io>2019-01-09 22:29:18 +0000
commit0f6535cf6b4bfac265983c2fdd3482310ab4f39b (patch)
tree16bc07796a80a1ab567a86d089ebc08f5ea8366c /pkg
parenta60090cfba3674c5c1223b270c5f46600e6ee07e (diff)
downloadpodman-0f6535cf6b4bfac265983c2fdd3482310ab4f39b.tar.gz
podman-0f6535cf6b4bfac265983c2fdd3482310ab4f39b.tar.bz2
podman-0f6535cf6b4bfac265983c2fdd3482310ab4f39b.zip
libpod/image: Use ParseNormalizedNamed in RepoDigests
Avoid generating quay.io/openshift-release-dev/ocp-release@sha256@sha256:239... and similar when the image name is already digest-based [1]. It's not clear exactly how we get into this state, but as shown by the unit tests, the new code handles this case correctly (while the previous code does not). [1]: https://github.com/containers/libpod/issues/2086 Signed-off-by: W. Trevor King <wking@tremily.us> Closes: #2106 Approved by: rhatdan
Diffstat (limited to 'pkg')
-rw-r--r--pkg/varlinkapi/images.go13
1 files changed, 11 insertions, 2 deletions
diff --git a/pkg/varlinkapi/images.go b/pkg/varlinkapi/images.go
index 5e4cb4ccb..8f8934025 100644
--- a/pkg/varlinkapi/images.go
+++ b/pkg/varlinkapi/images.go
@@ -41,13 +41,18 @@ func (i *LibpodAPI) ListImages(call iopodman.VarlinkCall) error {
for _, image := range images {
labels, _ := image.Labels(getContext())
containers, _ := image.Containers()
+ repoDigests, err := image.RepoDigests()
+ if err != nil {
+ return err
+ }
+
size, _ := image.Size(getContext())
i := iopodman.ImageInList{
Id: image.ID(),
ParentId: image.Parent,
RepoTags: image.Names(),
- RepoDigests: image.RepoDigests(),
+ RepoDigests: repoDigests,
Created: image.Created().String(),
Size: int64(*size),
VirtualSize: image.VirtualSize,
@@ -73,6 +78,10 @@ func (i *LibpodAPI) GetImage(call iopodman.VarlinkCall, name string) error {
if err != nil {
return err
}
+ repoDigests, err := newImage.RepoDigests()
+ if err != nil {
+ return err
+ }
size, err := newImage.Size(getContext())
if err != nil {
return err
@@ -82,7 +91,7 @@ func (i *LibpodAPI) GetImage(call iopodman.VarlinkCall, name string) error {
Id: newImage.ID(),
ParentId: newImage.Parent,
RepoTags: newImage.Names(),
- RepoDigests: newImage.RepoDigests(),
+ RepoDigests: repoDigests,
Created: newImage.Created().String(),
Size: int64(*size),
VirtualSize: newImage.VirtualSize,