Skip to content

Commit

Permalink
Merge pull request #20643 from smarterclayton/bump_image_api
Browse files Browse the repository at this point in the history
React to imagelayers API changes
  • Loading branch information
openshift-merge-robot authored Aug 17, 2018
2 parents ccef287 + 786c7ed commit b250f4f
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 0 deletions.
3 changes: 3 additions & 0 deletions pkg/image/apiserver/registry/imagestream/etcd/etcd.go
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,9 @@ func addImageStreamLayersFromCache(isl *imageapi.ImageStreamLayers, is *imageapi
obj, _, _ := index.GetByKey(item.Image)
entry, ok := obj.(*ImageLayers)
if !ok {
if _, ok := isl.Images[item.Image]; !ok {
isl.Images[item.Image] = imageapi.ImageBlobReferences{ImageMissing: true}
}
missing = append(missing, item.Image)
continue
}
Expand Down
38 changes: 38 additions & 0 deletions test/extended/images/layers.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,44 @@ var _ = g.Describe("[Feature:ImageLayers] Image layer subresource", func() {

oc = exutil.NewCLI("image-layers", exutil.KubeConfigPath())

g.It("should identify a deleted image as missing", func() {
client := imageclientset.NewForConfigOrDie(oc.AdminConfig()).Image()
_, err := client.ImageStreams(oc.Namespace()).Create(&imageapi.ImageStream{
ObjectMeta: metav1.ObjectMeta{
Name: "test",
},
})
o.Expect(err).NotTo(o.HaveOccurred())
_, err = client.ImageStreamMappings(oc.Namespace()).Create(&imageapi.ImageStreamMapping{
ObjectMeta: metav1.ObjectMeta{
Name: "test",
},
Image: imageapi.Image{
ObjectMeta: metav1.ObjectMeta{
Name: "an_image_to_be_deleted",
},
DockerImageReference: "example.com/random/image:latest",
},
Tag: "missing",
})
o.Expect(err).NotTo(o.HaveOccurred())
err = client.Images().Delete("an_image_to_be_deleted", nil)
o.Expect(err).NotTo(o.HaveOccurred())
err = wait.PollImmediate(time.Second, time.Minute, func() (bool, error) {
layers, err := client.ImageStreams(oc.Namespace()).Layers("test", metav1.GetOptions{})
if err != nil {
return false, err
}
ref, ok := layers.Images["an_image_to_be_deleted"]
if !ok {
return false, nil
}
o.Expect(ref.ImageMissing).To(o.BeTrue())
return true, nil
})
o.Expect(err).NotTo(o.HaveOccurred())
})

g.It("should return layers from tagged images", func() {
ns = []string{oc.Namespace()}
client := imageclientset.NewForConfigOrDie(oc.UserConfig()).Image()
Expand Down

0 comments on commit b250f4f

Please sign in to comment.