Skip to content

Commit

Permalink
Merge pull request #12004 from legionus/remove-dockerImageConfig-from…
Browse files Browse the repository at this point in the history
…-imagestreamtag-imagestreamimage

Merged by openshift-bot
  • Loading branch information
OpenShift Bot committed Jan 17, 2017
2 parents 9a57e87 + 1b747ae commit 8c82e8f
Show file tree
Hide file tree
Showing 4 changed files with 104 additions and 0 deletions.
1 change: 1 addition & 0 deletions pkg/image/registry/imagestreamimage/rest.go
Expand Up @@ -70,6 +70,7 @@ func (r *REST) Get(ctx kapi.Context, id string) (runtime.Object, error) {
return nil, err
}
image.DockerImageManifest = ""
image.DockerImageConfig = ""

isi := api.ImageStreamImage{
ObjectMeta: kapi.ObjectMeta{
Expand Down
2 changes: 2 additions & 0 deletions pkg/image/registry/imagestreamimport/rest.go
Expand Up @@ -436,13 +436,15 @@ func clearManifests(isi *api.ImageStreamImport) {
if !isi.Spec.Images[i].IncludeManifest {
if isi.Status.Images[i].Image != nil {
isi.Status.Images[i].Image.DockerImageManifest = ""
isi.Status.Images[i].Image.DockerImageConfig = ""
}
}
}
if isi.Spec.Repository != nil && !isi.Spec.Repository.IncludeManifest {
for i := range isi.Status.Repository.Images {
if isi.Status.Repository.Images[i].Image != nil {
isi.Status.Repository.Images[i].Image.DockerImageManifest = ""
isi.Status.Repository.Images[i].Image.DockerImageConfig = ""
}
}
}
Expand Down
1 change: 1 addition & 0 deletions pkg/image/registry/imagestreamtag/rest.go
Expand Up @@ -372,6 +372,7 @@ func newISTag(tag string, imageStream *imageapi.ImageStream, image *imageapi.Ima
return nil, err
}
image.DockerImageManifest = ""
image.DockerImageConfig = ""
ist.Image = *image
} else {
ist.Image = imageapi.Image{}
Expand Down
100 changes: 100 additions & 0 deletions test/integration/imagestream_test.go
@@ -1,6 +1,7 @@
package integration

import (
"encoding/json"
"os"
"reflect"
"testing"
Expand All @@ -11,6 +12,7 @@ import (

deployapi "github.com/openshift/origin/pkg/deploy/api"
stratsupport "github.com/openshift/origin/pkg/deploy/strategy/support"
imagetest "github.com/openshift/origin/pkg/image/admission/testutil"
imageapi "github.com/openshift/origin/pkg/image/api"
testutil "github.com/openshift/origin/test/util"
testserver "github.com/openshift/origin/test/util/server"
Expand Down Expand Up @@ -282,6 +284,104 @@ func TestImageStreamMappingCreate(t *testing.T) {
}
}

func TestImageStreamWithoutDockerImageConfig(t *testing.T) {
testutil.RequireEtcd(t)
defer testutil.DumpEtcdOnFailure(t)
_, clusterAdminKubeConfig, err := testserver.StartTestMasterAPI()
if err != nil {
t.Fatalf("unexpected error: %v", err)
}

clusterAdminClient, err := testutil.GetClusterAdminClient(clusterAdminKubeConfig)
if err != nil {
t.Errorf("unexpected error: %v", err)
}
err = testutil.CreateNamespace(clusterAdminKubeConfig, testutil.Namespace())
if err != nil {
t.Errorf("unexpected error: %v", err)
}

stream := mockImageStream()

expected, err := clusterAdminClient.ImageStreams(testutil.Namespace()).Create(stream)
if err != nil {
t.Fatalf("Unexpected error: %v", err)
}
if expected.Name == "" {
t.Errorf("Unexpected empty image Name %v", expected)
}

imageConfig := imageapi.DockerConfig{
Hostname: "example.com",
Env: []string{"A=B"},
}

imageConfigBytes, err := json.Marshal(imageConfig)
if err != nil {
t.Fatalf("error marshaling image config: %s", err)
}

image := imageapi.Image{
ObjectMeta: kapi.ObjectMeta{
Name: imagetest.BaseImageWith1LayerDigest,
},
DockerImageMetadata: imageapi.DockerImage{
Config: &imageapi.DockerConfig{
Hostname: "example.com",
Env: []string{"A=B"},
},
},
DockerImageConfig: string(imageConfigBytes),
DockerImageReference: "some/namespace/name",
}

// create a mapping to an image that doesn't exist
mapping := &imageapi.ImageStreamMapping{
ObjectMeta: kapi.ObjectMeta{
Name: stream.Name,
},
Tag: "newer",
Image: image,
}
if err := clusterAdminClient.ImageStreamMappings(testutil.Namespace()).Create(mapping); err != nil {
t.Fatalf("unexpected error: %v", err)
}

img, err := clusterAdminClient.Images().Get(image.Name)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
if img.Name != image.Name {
t.Fatalf("unexpected image: %#v", img)
}
if len(img.DockerImageConfig) == 0 {
t.Fatalf("image has an empty config: %#v", img)
}

ist, err := clusterAdminClient.ImageStreamTags(testutil.Namespace()).Get(stream.Name, "newer")
if err != nil {
t.Fatalf("Unexpected error: %v", err)
}
if ist.Image.Name != image.Name {
t.Fatalf("unexpected image: %#v", img)
}
if len(ist.Image.DockerImageConfig) != 0 {
t.Errorf("image has a not empty config: %#v", ist)
}

isi, err := clusterAdminClient.ImageStreamImages(testutil.Namespace()).Get(stream.Name, imagetest.BaseImageWith1LayerDigest)
if err != nil {
t.Fatalf("Unexpected error: %v", err)
}
if isi.Image.Name != image.Name {
t.Fatalf("unexpected image: %#v", img)
}
if len(isi.Image.DockerImageConfig) != 0 {
t.Errorf("image has a not empty config: %#v", isi)
}

}

func TestImageStreamTagLifecycleHook(t *testing.T) {
testutil.RequireEtcd(t)
defer testutil.DumpEtcdOnFailure(t)
Expand Down

0 comments on commit 8c82e8f

Please sign in to comment.