Skip to content

Instantly share code, notes, and snippets.

@ncdc
Created November 13, 2015 19:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ncdc/736df88061bc7bc17470 to your computer and use it in GitHub Desktop.
Save ncdc/736df88061bc7bc17470 to your computer and use it in GitHub Desktop.
diff --git a/pkg/image/registry/imagestream/strategy.go b/pkg/image/registry/imagestream/strategy.go
index 22063a1..f728b08 100644
--- a/pkg/image/registry/imagestream/strategy.go
+++ b/pkg/image/registry/imagestream/strategy.go
@@ -4,6 +4,7 @@ import (
"fmt"
"strings"
+ "github.com/docker/distribution/digest"
"github.com/golang/glog"
kapi "k8s.io/kubernetes/pkg/api"
kerrors "k8s.io/kubernetes/pkg/api/errors"
@@ -229,19 +230,30 @@ func tagReferenceToTagEvent(stream *api.ImageStream, tagRef api.TagReference, ta
}, nil
case "ImageStreamImage":
- ref, err := api.DockerImageReferenceForStream(stream)
- if err != nil {
- return nil, err
+ var event *api.TagEvent
+ // code borrowed from imagestreamimage/rest.go
+ resolvedIDs := sets.NewString()
+ for _, history := range stream.Status.Tags {
+ for _, tagging := range history.Items {
+ if d, err := digest.ParseDigest(tagging.Image); err == nil {
+ if strings.HasPrefix(d.Hex(), tagOrID) || strings.HasPrefix(tagging.Image, tagOrID) {
+ event = &tagging
+ resolvedIDs.Insert(tagging.Image)
+ }
+ continue
+ }
+ if strings.HasPrefix(tagging.Image, tagOrID) {
+ event = &tagging
+ resolvedIDs.Insert(tagging.Image)
+ }
+ }
}
-
- resolvedIDs := api.ResolveImageID(stream, tagOrID)
switch len(resolvedIDs) {
case 1:
- ref.ID = resolvedIDs.List()[0]
return &api.TagEvent{
Created: unversioned.Now(),
- DockerImageReference: ref.String(),
- Image: ref.ID,
+ DockerImageReference: event.DockerImageReference,
+ Image: event.Image,
}, nil
case 0:
return nil, fmt.Errorf("no images match the prefix %q", tagOrID)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment