Repository: jclouds-labs Updated Branches: refs/heads/master acd382e58 -> 970250d31
[JCLOUDS-1157] fix networks in DockerComputeServiceAdapterLiveTest Project: http://git-wip-us.apache.org/repos/asf/jclouds-labs/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds-labs/commit/970250d3 Tree: http://git-wip-us.apache.org/repos/asf/jclouds-labs/tree/970250d3 Diff: http://git-wip-us.apache.org/repos/asf/jclouds-labs/diff/970250d3 Branch: refs/heads/master Commit: 970250d31fe7a7ca0633aa791a3034344ef43e2e Parents: acd382e Author: Josef Cacek <[email protected]> Authored: Fri Aug 19 15:24:44 2016 +0200 Committer: Andrea Turli <[email protected]> Committed: Fri Aug 19 17:51:42 2016 +0200 ---------------------------------------------------------------------- .../DockerComputeServiceAdapterLiveTest.java | 68 ++++++++++++-------- 1 file changed, 41 insertions(+), 27 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/970250d3/docker/src/test/java/org/jclouds/docker/compute/DockerComputeServiceAdapterLiveTest.java ---------------------------------------------------------------------- diff --git a/docker/src/test/java/org/jclouds/docker/compute/DockerComputeServiceAdapterLiveTest.java b/docker/src/test/java/org/jclouds/docker/compute/DockerComputeServiceAdapterLiveTest.java index cb8ca3e..c37c474 100644 --- a/docker/src/test/java/org/jclouds/docker/compute/DockerComputeServiceAdapterLiveTest.java +++ b/docker/src/test/java/org/jclouds/docker/compute/DockerComputeServiceAdapterLiveTest.java @@ -46,6 +46,7 @@ import org.jclouds.docker.compute.strategy.DockerComputeServiceAdapter; import org.jclouds.docker.domain.Container; import org.jclouds.docker.domain.Image; import org.jclouds.docker.domain.Network; +import org.jclouds.docker.features.NetworkApi; import org.jclouds.sshj.config.SshjSshClientModule; @Test(groups = "live", singleThreaded = true, testName = "DockerComputeServiceAdapterLiveTest") @@ -67,8 +68,8 @@ public class DockerComputeServiceAdapterLiveTest extends BaseDockerApiLiveTest { super.initialize(); String imageName = SSHABLE_IMAGE + ":" + SSHABLE_IMAGE_TAG; defaultImage = adapter.getImage(imageName); - network1 = api.getNetworkApi().createNetwork(Network.builder().name("network1").driver("overlay").build()); - network2 = api.getNetworkApi().createNetwork(Network.builder().name("network2").driver("overlay").build()); + network1 = createAndInspectNetwork("network1"); + network2 = createAndInspectNetwork("network2"); assertNotNull(defaultImage); } @@ -116,47 +117,60 @@ public class DockerComputeServiceAdapterLiveTest extends BaseDockerApiLiveTest { } public void testGetImageNotHiddenByCache() { - //Ensure image to be tested is unknown to jclouds and docker and that cache is warm + // Ensure image to be tested is unknown to jclouds and docker and that + // cache is warm assertNull(findImageFromListImages(CHUANWEN_COWSAY)); assertNull(api.getImageApi().inspectImage(CHUANWEN_COWSAY)); // Get new image adapter.getImage(CHUANWEN_COWSAY); - assertNotNull(findImageFromListImages(CHUANWEN_COWSAY), "New image is not available from listImages presumably due to caching"); + assertNotNull(findImageFromListImages(CHUANWEN_COWSAY), + "New image is not available from listImages presumably due to caching"); } public void testCreateNodeWithMultipleNetworks() { - String name = "container" + new Random().nextInt(); - Template template = templateBuilder.imageId(defaultImage.id()).build(); - DockerTemplateOptions options = template.getOptions().as(DockerTemplateOptions.class); - options.env(ImmutableList.of("ROOT_PASSWORD=password")); - options.networkMode("bridge"); - options.networks(network1.name(), network2.name()); - guest = adapter.createNodeWithGroupEncodedIntoName("test", name, template); - - assertTrue(guest.getNode().networkSettings().networks().containsKey("network1")); - assertTrue(guest.getNode().networkSettings().networks().containsKey("network2")); - assertEquals(guest.getNode().networkSettings().secondaryIPAddresses().size(), 2); - } + String name = "container" + new Random().nextInt(); + Template template = templateBuilder.imageId(defaultImage.id()).build(); + DockerTemplateOptions options = template.getOptions().as(DockerTemplateOptions.class); + options.env(ImmutableList.of("ROOT_PASSWORD=password")); + options.networkMode("bridge"); + options.networks(network1.name(), network2.name()); + guest = adapter.createNodeWithGroupEncodedIntoName("test", name, template); + + assertTrue(guest.getNode().networkSettings().networks().containsKey("network1")); + assertTrue(guest.getNode().networkSettings().networks().containsKey("network2")); + assertEquals(guest.getNode().networkSettings().networks().size(), 3); + } private Image findImageFromListImages(final String image) { return Iterables.find(adapter.listImages(), new Predicate<Image>() { - @Override - public boolean apply(Image input) { - for (String tag : input.repoTags()) { - if (tag.equals(image) || tag.equals(CHUANWEN_COWSAY + ":latest")) { - return true; - } - } - return false; - } - }, null); + @Override + public boolean apply(Image input) { + for (String tag : input.repoTags()) { + if (tag.equals(image) || tag.equals(CHUANWEN_COWSAY + ":latest")) { + return true; + } + } + return false; + } + }, null); } @Override protected Iterable<Module> setupModules() { - return ImmutableSet.<Module>of(getLoggingModule(), new SshjSshClientModule()); + return ImmutableSet.<Module> of(getLoggingModule(), new SshjSshClientModule()); } + /** + * Creates network (driver="bridge") with given name and then inspects it to + * fully populate the returned {@link Network} object. + * + * @param networkName + */ + private Network createAndInspectNetwork(final String networkName) { + final NetworkApi networkApi = api.getNetworkApi(); + Network network = networkApi.createNetwork(Network.builder().name(networkName).driver("bridge").build()); + return networkApi.inspectNetwork(network.id()); + } }
