From 73f05693437e92b3355c7dbd7de6d3e5368828b2 Mon Sep 17 00:00:00 2001 From: Martin Westergaard Lassen Date: Tue, 4 Aug 2015 10:55:53 +0100 Subject: [PATCH 1/2] Removed redundant inner class --- .../apache/mesos/mini/DockerProxyTest.java | 20 ------------------- 1 file changed, 20 deletions(-) diff --git a/src/test/java/org/apache/mesos/mini/DockerProxyTest.java b/src/test/java/org/apache/mesos/mini/DockerProxyTest.java index 07467c17..23ebc235 100644 --- a/src/test/java/org/apache/mesos/mini/DockerProxyTest.java +++ b/src/test/java/org/apache/mesos/mini/DockerProxyTest.java @@ -59,24 +59,4 @@ public void testInstantiate() throws InterruptedException, UnirestException { String url = "http://" + ipAddress + ":" + HelloWorldContainer.PORT; Assert.assertEquals(200, Unirest.get(url).asString().getStatus()); } - - class HelloWorldContainer extends AbstractContainer { - - public static final String HELLO_WORLD_IMAGE = "tutum/hello-world"; - public static final int PORT = 80; - - protected HelloWorldContainer(DockerClient dockerClient) { - super(dockerClient); - } - - @Override - protected void pullImage() { - pullImage(HELLO_WORLD_IMAGE, "latest"); - } - - @Override - protected CreateContainerCmd dockerCommand() { - return dockerClient.createContainerCmd(HELLO_WORLD_IMAGE).withName("hello-world_" + new SecureRandom().nextInt()); - } - } } From 35df67a4b3698fefff4274ddfeda73ede96a3f6b Mon Sep 17 00:00:00 2001 From: Martin Westergaard Lassen Date: Thu, 3 Sep 2015 14:44:33 +0100 Subject: [PATCH 2/2] Removing both proxies --- .../org/apache/mesos/mini/MesosCluster.java | 11 --- .../apache/mesos/mini/docker/DockerProxy.java | 41 ---------- .../mesos/mini/mesos/InnerDockerProxy.java | 41 ---------- .../mesos/mini/mesos/MesosClusterConfig.java | 5 -- .../mesos/mini/mesos/MesosContainer.java | 17 +---- .../apache/mesos/mini/DockerProxyTest.java | 74 ------------------- 6 files changed, 2 insertions(+), 187 deletions(-) delete mode 100644 src/main/java/org/apache/mesos/mini/docker/DockerProxy.java delete mode 100644 src/main/java/org/apache/mesos/mini/mesos/InnerDockerProxy.java delete mode 100644 src/test/java/org/apache/mesos/mini/DockerProxyTest.java diff --git a/src/main/java/org/apache/mesos/mini/MesosCluster.java b/src/main/java/org/apache/mesos/mini/MesosCluster.java index 41bfa0ef..03ef02b7 100644 --- a/src/main/java/org/apache/mesos/mini/MesosCluster.java +++ b/src/main/java/org/apache/mesos/mini/MesosCluster.java @@ -7,7 +7,6 @@ import com.mashape.unirest.http.exceptions.UnirestException; import org.apache.log4j.Logger; import org.apache.mesos.mini.container.AbstractContainer; -import org.apache.mesos.mini.docker.DockerProxy; import org.apache.mesos.mini.docker.ImagePusher; import org.apache.mesos.mini.docker.PrivateDockerRegistry; import org.apache.mesos.mini.mesos.MesosClusterConfig; @@ -55,16 +54,6 @@ public void start() { LOGGER.info("Starting Mesos cluster"); try { - String os = System.getProperty("os.name"); - if (!os.equals("Linux")) { - LOGGER.info("Mini-Mesos runs on '" + os + "'. Starting HTTP Proxy for container networking"); - DockerProxy dockerProxy = new DockerProxy(config.dockerClient, config.proxyPort); - addAndStartContainer(dockerProxy); - LOGGER.info("Started Proxy at " + dockerProxy.getIpAddress() + ":" + config.proxyPort); - } else { - LOGGER.info("Mini-Mesos runs on 'Linux'. No need to run HTTP Proxy for container networking"); - } - LOGGER.info("Starting Registry"); PrivateDockerRegistry privateDockerRegistry = new PrivateDockerRegistry(config.dockerClient, this.config); addAndStartContainer(privateDockerRegistry); diff --git a/src/main/java/org/apache/mesos/mini/docker/DockerProxy.java b/src/main/java/org/apache/mesos/mini/docker/DockerProxy.java deleted file mode 100644 index c9bb1ae9..00000000 --- a/src/main/java/org/apache/mesos/mini/docker/DockerProxy.java +++ /dev/null @@ -1,41 +0,0 @@ -package org.apache.mesos.mini.docker; - -import com.github.dockerjava.api.DockerClient; -import com.github.dockerjava.api.command.CreateContainerCmd; -import com.github.dockerjava.api.model.ExposedPort; -import com.github.dockerjava.api.model.PortBinding; -import org.apache.mesos.mini.container.AbstractContainer; - -import java.security.SecureRandom; - -public class DockerProxy extends AbstractContainer { - - public static final String PROXY_IMAGE = "paintedfox/tinyproxy"; - public static final String CONTAINER_NAME = "tinyproxy"; - public static final String TAG = "latest"; - public final int proxyPort; - - public DockerProxy(DockerClient dockerClient, int port) { - super(dockerClient); - proxyPort = port; - } - - @Override - protected void pullImage() { - pullImage(PROXY_IMAGE, TAG); - } - - @Override - protected CreateContainerCmd dockerCommand() { - return dockerClient - .createContainerCmd(PROXY_IMAGE + ":" + TAG) - .withName(generateRegistryContainerName()) - .withExposedPorts(ExposedPort.parse("" + proxyPort)) - .withPortBindings(PortBinding.parse("0.0.0.0:" + proxyPort + ":8888")); - } - - String generateRegistryContainerName() { - return CONTAINER_NAME + "_" + new SecureRandom().nextInt(); - } - -} \ No newline at end of file diff --git a/src/main/java/org/apache/mesos/mini/mesos/InnerDockerProxy.java b/src/main/java/org/apache/mesos/mini/mesos/InnerDockerProxy.java deleted file mode 100644 index 24f034ec..00000000 --- a/src/main/java/org/apache/mesos/mini/mesos/InnerDockerProxy.java +++ /dev/null @@ -1,41 +0,0 @@ -package org.apache.mesos.mini.mesos; - -import com.github.dockerjava.api.DockerClient; -import com.github.dockerjava.api.command.CreateContainerCmd; -import com.github.dockerjava.api.model.ExposedPort; -import com.github.dockerjava.api.model.Link; -import com.github.dockerjava.api.model.PortBinding; -import org.apache.mesos.mini.container.AbstractContainer; - -public class InnerDockerProxy extends AbstractContainer { - - private static final String DOCKER_IMAGE = "mwldk/go-tcp-proxy"; - - private static final int PROXY_PORT = 2377; - - private MesosContainer mesosContainer; - - public InnerDockerProxy(DockerClient dockerClient, MesosContainer mesosContainer) { - super(dockerClient); - this.mesosContainer = mesosContainer; - } - - @Override - protected void pullImage() { - pullImage(DOCKER_IMAGE, "latest"); - } - - @Override - protected CreateContainerCmd dockerCommand() { - return dockerClient - .createContainerCmd(DOCKER_IMAGE) - .withLinks(Link.parse(mesosContainer.getContainerId() + ":docker")) - .withExposedPorts(ExposedPort.tcp(mesosContainer.getDockerPort())) - .withPortBindings(PortBinding.parse("0.0.0.0:" + getProxyPort() + ":" + mesosContainer.getDockerPort())) - .withCmd("-l=:" + mesosContainer.getDockerPort(), "-r=docker:" + mesosContainer.getDockerPort()); - } - - public int getProxyPort() { - return PROXY_PORT; - } -} diff --git a/src/main/java/org/apache/mesos/mini/mesos/MesosClusterConfig.java b/src/main/java/org/apache/mesos/mini/mesos/MesosClusterConfig.java index 6007a08d..02e324e4 100644 --- a/src/main/java/org/apache/mesos/mini/mesos/MesosClusterConfig.java +++ b/src/main/java/org/apache/mesos/mini/mesos/MesosClusterConfig.java @@ -86,11 +86,6 @@ public Builder defaultDockerClient() { DockerClientConfig config = builder.build(); - if (config.getUri().getScheme().startsWith("http") && !System.getProperty("os.name").equals("Linux")) { - HttpHost proxy = new HttpHost(config.getUri().getHost(), this.proxyPort); - Unirest.setProxy(proxy); - Unirest.setTimeouts(20_000L, 20_000L); - } this.dockerClient = DockerClientBuilder.getInstance(config).build(); return this; } diff --git a/src/main/java/org/apache/mesos/mini/mesos/MesosContainer.java b/src/main/java/org/apache/mesos/mini/mesos/MesosContainer.java index fd933116..56a251a6 100644 --- a/src/main/java/org/apache/mesos/mini/mesos/MesosContainer.java +++ b/src/main/java/org/apache/mesos/mini/mesos/MesosContainer.java @@ -30,7 +30,6 @@ public class MesosContainer extends AbstractContainer { private final MesosClusterConfig clusterConfig; private final String registryContainerId; private DockerClient innerDockerClient; - private InnerDockerProxy innerDockerProxy; public MesosContainer(DockerClient dockerClient, MesosClusterConfig clusterConfig, String registryContainerId) { super(dockerClient); @@ -46,16 +45,8 @@ public void start() { String os = System.getProperty("os.name"); DockerClientConfig.DockerClientConfigBuilder innerDockerConfigBuilder; - if (!os.equals("Linux")) { - LOGGER.info("Mini-Mesos runs on '" + os + "'. Starting inner Docker Proxy"); - innerDockerProxy = new InnerDockerProxy(clusterConfig.dockerClient, this); - innerDockerProxy.start(); - innerDockerConfigBuilder = DockerClientConfig.createDefaultConfigBuilder(); - innerDockerConfigBuilder.withUri("http://" + innerDockerConfigBuilder.build().getUri().getHost() + ":" + innerDockerProxy.getProxyPort()); - } else { - innerDockerConfigBuilder = DockerClientConfig.createDefaultConfigBuilder(); - innerDockerConfigBuilder.withUri("http://" + getIpAddress() + ":" + getDockerPort()); - } + innerDockerConfigBuilder = DockerClientConfig.createDefaultConfigBuilder(); + innerDockerConfigBuilder.withUri("http://" + getIpAddress() + ":" + getDockerPort()); this.innerDockerClient = DockerClientBuilder.getInstance(innerDockerConfigBuilder.build()).build(); } @@ -114,10 +105,6 @@ public void remove() { innerDockerClient.removeContainerCmd(innerContainer.getId()).withForce().withRemoveVolumes(true).exec(); } - if (innerDockerProxy != null) { - innerDockerProxy.remove(); - } - LOGGER.info("Removing Mesos-Local container"); super.remove(); } diff --git a/src/test/java/org/apache/mesos/mini/DockerProxyTest.java b/src/test/java/org/apache/mesos/mini/DockerProxyTest.java deleted file mode 100644 index 4ea61b5c..00000000 --- a/src/test/java/org/apache/mesos/mini/DockerProxyTest.java +++ /dev/null @@ -1,74 +0,0 @@ -package org.apache.mesos.mini; - -import com.github.dockerjava.api.DockerClient; -import com.github.dockerjava.api.command.CreateContainerCmd; -import com.github.dockerjava.core.DockerClientBuilder; -import com.github.dockerjava.core.DockerClientConfig; -import com.mashape.unirest.http.Unirest; -import com.mashape.unirest.http.exceptions.UnirestException; -import org.apache.commons.lang.StringUtils; -import org.apache.commons.lang.SystemUtils; -import org.apache.http.HttpHost; -import org.apache.mesos.mini.container.AbstractContainer; -import org.apache.mesos.mini.docker.DockerProxy; -import org.junit.AfterClass; -import org.junit.Assert; -import org.junit.Assume; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.security.SecureRandom; - -public class DockerProxyTest { - - public static final int PROXY_PORT = 8777; - - private static HelloWorldContainer helloWorld; - private static DockerProxy proxy; - - @BeforeClass - public static void beforeClass() { - Assume.assumeFalse(SystemUtils.IS_OS_LINUX); - } - - @AfterClass - public static void callShutdownHook() { - if (helloWorld != null) { - helloWorld.remove(); - } - if (proxy != null) { - proxy.remove(); - } - } - - private static DockerClient getDockerClient() { - DockerClientConfig.DockerClientConfigBuilder builder = DockerClientConfig.createDefaultConfigBuilder(); - - String dockerHostEnv = System.getenv("DOCKER_HOST"); - if (StringUtils.isBlank(dockerHostEnv)) { - builder.withUri("unix:///var/run/docker.sock"); - } - - DockerClientConfig config = builder.build(); - - if (config.getUri().getScheme().startsWith("http")) { - HttpHost proxy = new HttpHost(config.getUri().getHost(), PROXY_PORT); - Unirest.setProxy(proxy); - } - return DockerClientBuilder.getInstance(config).build(); - } - - @Test - public void testInstantiate() throws InterruptedException, UnirestException { - DockerClient dockerClient = getDockerClient(); - proxy = new DockerProxy(dockerClient, PROXY_PORT); - proxy.start(); - - helloWorld = new HelloWorldContainer(dockerClient); - helloWorld.start(); - - String ipAddress = helloWorld.getIpAddress(); - String url = "http://" + ipAddress + ":" + HelloWorldContainer.PORT; - Assert.assertEquals(200, Unirest.get(url).asString().getStatus()); - } -}