Search in sources :

Example 11 with IDockerImage

use of org.eclipse.linuxtools.docker.core.IDockerImage in project linuxtools by eclipse.

the class DockerImageHierarchyViewSWTBotTest method shouldRetrieveImageHierarchyFromLeafImage.

@Test
public void shouldRetrieveImageHierarchyFromLeafImage() {
    // given
    final IDockerImage fooImage2 = this.connection.getImage("sha256:foo_image2");
    // when
    final IDockerImageHierarchyNode fooImage2Hierarchy = this.connection.resolveImageHierarchy(fooImage2);
    // then
    assertThat(fooImage2Hierarchy).isNotNull();
    assertThat(fooImage2Hierarchy.getElement()).isEqualTo(fooImage2);
    // 2 containers: foo_container21 and foo_container22
    assertThat(fooImage2Hierarchy.getChildren()).hasSize(2);
    assertThat((IDockerContainer) fooImage2Hierarchy.getChild("sha256:foo_container21").getElement()).isNotNull();
    final IDockerImageHierarchyNode fooImage1Hierarchy = fooImage2Hierarchy.getParent();
    final IDockerImage fooImage = (IDockerImage) fooImage1Hierarchy.getElement();
    assertThat(fooImage.id()).isEqualTo("sha256:foo_image1");
    // in this case, intermediate images shows a single child
    assertThat(fooImage1Hierarchy.getChildren()).hasSize(1);
    assertThat(fooImage1Hierarchy.getChildren()).containsExactly(fooImage2Hierarchy);
}
Also used : IDockerContainer(org.eclipse.linuxtools.docker.core.IDockerContainer) IDockerImageHierarchyNode(org.eclipse.linuxtools.docker.core.IDockerImageHierarchyNode) IDockerImage(org.eclipse.linuxtools.docker.core.IDockerImage) Test(org.junit.Test)

Example 12 with IDockerImage

use of org.eclipse.linuxtools.docker.core.IDockerImage in project linuxtools by eclipse.

the class DockerImageHierarchyViewSWTBotTest method shouldRetrieveImageHierarchyFromIntermediateImage.

@Test
public void shouldRetrieveImageHierarchyFromIntermediateImage() {
    // given
    final IDockerImage fooImage1 = this.connection.getImage("sha256:foo_image1");
    // when
    final IDockerImageHierarchyNode fooImage1Hierarchy = this.connection.resolveImageHierarchy(fooImage1);
    // then
    assertThat(fooImage1Hierarchy).isNotNull();
    assertThat(fooImage1Hierarchy.getElement()).isEqualTo(fooImage1);
    assertThat(getChildrenElementIds(fooImage1Hierarchy)).contains("sha256:foo_container1", "sha256:foo_image2");
    final IDockerImage rootElement = (IDockerImage) fooImage1Hierarchy.getParent().getElement();
    assertThat(rootElement.id()).isEqualTo("sha256:root_image");
    // the parent only shows this child element, not its whole descendants
    assertThat(fooImage1Hierarchy.getParent().getChildren()).containsExactly(fooImage1Hierarchy);
    final IDockerImageHierarchyNode fooImage2HierarchyNode = fooImage1Hierarchy.getChild("sha256:foo_image2");
    assertThat(fooImage2HierarchyNode).isNotNull();
    // 2 child containers: foo_container21 and foo_container22
    assertThat(fooImage2HierarchyNode.getChildren()).hasSize(2);
    final IDockerImageHierarchyNode fooContainer1HierarchyNode = fooImage1Hierarchy.getChild("sha256:foo_container1");
    assertThat(fooContainer1HierarchyNode).isNotNull();
    assertThat(fooContainer1HierarchyNode.getChildren()).isEmpty();
}
Also used : IDockerImageHierarchyNode(org.eclipse.linuxtools.docker.core.IDockerImageHierarchyNode) IDockerImage(org.eclipse.linuxtools.docker.core.IDockerImage) Test(org.junit.Test)

Example 13 with IDockerImage

use of org.eclipse.linuxtools.docker.core.IDockerImage in project linuxtools by eclipse.

the class DockerImageHierarchyViewSWTBotTest method shouldRetrieveImageHierarchyFromRootImage.

@Test
public void shouldRetrieveImageHierarchyFromRootImage() {
    // given
    final IDockerImage rootImage = this.connection.getImage("sha256:root_image");
    // when
    final IDockerImageHierarchyNode rootImageHierarchy = this.connection.resolveImageHierarchy(rootImage);
    // then
    assertThat(rootImageHierarchy).isNotNull();
    assertThat(rootImageHierarchy.getElement()).isEqualTo(rootImage);
    // 2 direct children: foo_image1 and bar_image1
    assertThat(rootImageHierarchy.getChildren()).hasSize(2);
    assertThat(rootImageHierarchy.getParent()).isNull();
    final IDockerImageHierarchyNode fooImage1Hierarchy = rootImageHierarchy.getChild("sha256:foo_image1");
    assertThat(fooImage1Hierarchy.getParent()).isEqualTo(rootImageHierarchy);
    // 2 direct children: foo_image2/foo_image2_alias and foo_container1
    assertThat(fooImage1Hierarchy.getChildren()).hasSize(2);
}
Also used : IDockerImageHierarchyNode(org.eclipse.linuxtools.docker.core.IDockerImageHierarchyNode) IDockerImage(org.eclipse.linuxtools.docker.core.IDockerImage) Test(org.junit.Test)

Example 14 with IDockerImage

use of org.eclipse.linuxtools.docker.core.IDockerImage in project linuxtools by eclipse.

the class DockerImageHierarchyViewSWTBotTest method shouldRetrieveImageHierarchyFromContainerBasedOnLeafImage.

@Test
public void shouldRetrieveImageHierarchyFromContainerBasedOnLeafImage() {
    // given
    // when
    final IDockerContainer barContainer1 = this.connection.getContainer("sha256:bar_container1");
    final IDockerImageHierarchyNode barContainer1Hierarchy = this.connection.resolveImageHierarchy(barContainer1);
    // then
    assertThat(barContainer1Hierarchy).isNotNull();
    assertThat(barContainer1Hierarchy.getElement()).isEqualTo(barContainer1);
    assertThat(barContainer1Hierarchy.getChildren()).isEmpty();
    final IDockerImage barImageElement = (IDockerImage) barContainer1Hierarchy.getParent().getElement();
    assertThat(barImageElement.id()).isEqualTo("sha256:bar_image1");
}
Also used : IDockerContainer(org.eclipse.linuxtools.docker.core.IDockerContainer) IDockerImageHierarchyNode(org.eclipse.linuxtools.docker.core.IDockerImageHierarchyNode) IDockerImage(org.eclipse.linuxtools.docker.core.IDockerImage) Test(org.junit.Test)

Example 15 with IDockerImage

use of org.eclipse.linuxtools.docker.core.IDockerImage in project linuxtools by eclipse.

the class DockerImageHierarchyViewSWTBotTest method shouldRetrieveImageHierarchyFromContainerBasedOnIntermediateImage.

@Test
public void shouldRetrieveImageHierarchyFromContainerBasedOnIntermediateImage() {
    // given
    final IDockerContainer fooContainer1 = this.connection.getContainer("sha256:foo_container1");
    // when
    final IDockerImageHierarchyNode fooContainer1Hierarchy = this.connection.resolveImageHierarchy(fooContainer1);
    // then
    assertThat(fooContainer1Hierarchy).isNotNull();
    assertThat(fooContainer1Hierarchy.getElement()).isEqualTo(fooContainer1);
    assertThat(fooContainer1Hierarchy.getChildren()).isEmpty();
    final IDockerImage fooImage1 = (IDockerImage) fooContainer1Hierarchy.getParent().getElement();
    assertThat(fooImage1.id()).isEqualTo("sha256:foo_image1");
    // parent images hierarchy only shows the selected container as its
    // child.
    assertThat(fooContainer1Hierarchy.getParent().getChildren()).containsExactly(fooContainer1Hierarchy);
}
Also used : IDockerContainer(org.eclipse.linuxtools.docker.core.IDockerContainer) IDockerImageHierarchyNode(org.eclipse.linuxtools.docker.core.IDockerImageHierarchyNode) IDockerImage(org.eclipse.linuxtools.docker.core.IDockerImage) Test(org.junit.Test)

Aggregations

IDockerImage (org.eclipse.linuxtools.docker.core.IDockerImage)41 IDockerConnection (org.eclipse.linuxtools.docker.core.IDockerConnection)16 DockerException (org.eclipse.linuxtools.docker.core.DockerException)10 ArrayList (java.util.ArrayList)9 Test (org.junit.Test)8 IDockerImageHierarchyNode (org.eclipse.linuxtools.docker.core.IDockerImageHierarchyNode)7 List (java.util.List)6 CoreException (org.eclipse.core.runtime.CoreException)6 IDockerHostConfig (org.eclipse.linuxtools.docker.core.IDockerHostConfig)6 ILaunchConfiguration (org.eclipse.debug.core.ILaunchConfiguration)5 IDockerContainer (org.eclipse.linuxtools.docker.core.IDockerContainer)5 DockerConnection (org.eclipse.linuxtools.internal.docker.core.DockerConnection)5 IWorkbenchPart (org.eclipse.ui.IWorkbenchPart)5 HashMap (java.util.HashMap)4 Map (java.util.Map)3 Job (org.eclipse.core.runtime.jobs.Job)3 ColumnLabelProvider (org.eclipse.jface.viewers.ColumnLabelProvider)3 IDockerContainerConfig (org.eclipse.linuxtools.docker.core.IDockerContainerConfig)3 IDockerImageInfo (org.eclipse.linuxtools.docker.core.IDockerImageInfo)3 DockerContainerConfig (org.eclipse.linuxtools.internal.docker.core.DockerContainerConfig)3