diff --git a/src/main/java/com/openshift/internal/restclient/model/image/ImageStreamImport.java b/src/main/java/com/openshift/internal/restclient/model/image/ImageStreamImport.java index 653af955..7febc158 100644 --- a/src/main/java/com/openshift/internal/restclient/model/image/ImageStreamImport.java +++ b/src/main/java/com/openshift/internal/restclient/model/image/ImageStreamImport.java @@ -15,6 +15,7 @@ import java.util.Map; import java.util.Optional; +import org.apache.commons.lang.StringUtils; import org.jboss.dmr.ModelNode; import com.openshift.internal.restclient.model.KubernetesResource; @@ -31,12 +32,13 @@ */ public class ImageStreamImport extends KubernetesResource implements IImageStreamImport { - private static final String IMAGE_DOCKER_IMAGE_REFERENCE = "image.dockerImageReference"; - private static final String STATUS = "status"; - private static final String STATUS_IMAGES = "status.images"; private static final String FROM_KIND = "from.kind"; + private static final String IMAGE_DOCKER_IMAGE_REFERENCE = "image.dockerImageReference"; private static final String SPEC_IMAGES = "spec.images"; private static final String SPEC_IMPORT = "spec.import"; + private static final String STATUS = "status"; + private static final String STATUS_IMAGES = "status.images"; + private static final String TAG = "tag"; public ImageStreamImport(ModelNode node, IClient client, Map overrideProperties) { super(node, client, overrideProperties); @@ -56,7 +58,7 @@ public boolean isImport() { public void addImage(String fromKind, DockerImageURI imageUri) { ModelNode image = new ModelNode(); set(image, FROM_KIND, fromKind); - set(image, "from.name", imageUri.getUriWithoutTag()); + set(image, "from.name", imageUri.getAbsoluteUri()); get(SPEC_IMAGES).add(image); } @@ -76,11 +78,12 @@ public Collection getImageStatus() { @Override public String getImageJsonFor(DockerImageURI uri) { String prefix = uri.getUriWithoutTag(); + String tag = uri.getTag(); ModelNode images = get(STATUS_IMAGES); if(images.isDefined()) { Optional node = images.asList() .stream() - .filter(n->asString(n, IMAGE_DOCKER_IMAGE_REFERENCE).startsWith(prefix)) + .filter(n->asString(n, IMAGE_DOCKER_IMAGE_REFERENCE).startsWith(prefix) && tag.equals(asString(n,TAG))) .findFirst(); if(node.isPresent()) { return node.get().toJSONString(true); diff --git a/src/test/java/com/openshift/internal/restclient/model/v1/ImageStreamImportTest.java b/src/test/java/com/openshift/internal/restclient/model/v1/ImageStreamImportTest.java index c778d2a2..817fe984 100644 --- a/src/test/java/com/openshift/internal/restclient/model/v1/ImageStreamImportTest.java +++ b/src/test/java/com/openshift/internal/restclient/model/v1/ImageStreamImportTest.java @@ -60,8 +60,8 @@ public void testGetImageStatus() { @Test public void testGetImageJsonFor() { DockerImageURI uri = new DockerImageURI("jcantrill/swarm-helloworld"); - assertTrue(StringUtils.isNotBlank(stream.getImageJsonFor(uri))); + assertTrue("Exp. to find the json blob for the given image", StringUtils.isNotBlank(stream.getImageJsonFor(uri))); - assertNull(stream.getImageJsonFor(new DockerImageURI("foo/bar"))); + assertNull("Exp. to not find the json blob", stream.getImageJsonFor(new DockerImageURI("foo/bar"))); } }