diff --git a/build.gradle b/build.gradle index 69445be..b256f74 100644 --- a/build.gradle +++ b/build.gradle @@ -16,7 +16,7 @@ ext { // System test dockerJavaVer = "4f094c112"; unirestVer = "1.4.7" - minimesosVer = "0.6.1" + minimesosVer = "0.7.0" elasticsearchVer = "1.7.3" javaxInjectVer = "1"; diff --git a/system-test/src/main/java/org/apache/mesos/logstash/systemtest/DummyFrameworkContainer.java b/system-test/src/main/java/org/apache/mesos/logstash/systemtest/DummyFrameworkContainer.java index e942e21..2e6b32b 100644 --- a/system-test/src/main/java/org/apache/mesos/logstash/systemtest/DummyFrameworkContainer.java +++ b/system-test/src/main/java/org/apache/mesos/logstash/systemtest/DummyFrameworkContainer.java @@ -1,11 +1,7 @@ package org.apache.mesos.logstash.systemtest; import com.containersol.minimesos.container.AbstractContainer; -import com.containersol.minimesos.docker.ResponseCollector; import com.github.dockerjava.api.DockerClient; import com.github.dockerjava.api.command.CreateContainerCmd; -import com.github.dockerjava.api.command.ExecCreateCmdResponse; - -import java.io.InputStream; public class DummyFrameworkContainer extends AbstractContainer { diff --git a/system-test/src/main/java/org/apache/mesos/logstash/systemtest/HostUtil.java b/system-test/src/main/java/org/apache/mesos/logstash/systemtest/HostUtil.java index caf54f4..48848ae 100644 --- a/system-test/src/main/java/org/apache/mesos/logstash/systemtest/HostUtil.java +++ b/system-test/src/main/java/org/apache/mesos/logstash/systemtest/HostUtil.java @@ -1,5 +1,4 @@ package org.apache.mesos.logstash.systemtest; -import com.containersol.minimesos.docker.ResponseCollector; import com.github.dockerjava.api.DockerClient; import com.github.dockerjava.api.command.ExecCreateCmdResponse; diff --git a/system-test/src/main/java/org/apache/mesos/logstash/systemtest/LogstashExecutorContainer.java b/system-test/src/main/java/org/apache/mesos/logstash/systemtest/LogstashExecutorContainer.java index bf86eb2..3e1bc6d 100644 --- a/system-test/src/main/java/org/apache/mesos/logstash/systemtest/LogstashExecutorContainer.java +++ b/system-test/src/main/java/org/apache/mesos/logstash/systemtest/LogstashExecutorContainer.java @@ -1,5 +1,4 @@ package org.apache.mesos.logstash.systemtest; -import com.containersol.minimesos.docker.ResponseCollector; import com.github.dockerjava.api.DockerClient; import com.github.dockerjava.api.command.ExecCreateCmdResponse; import com.github.dockerjava.api.model.Container; diff --git a/system-test/src/main/java/org/apache/mesos/logstash/systemtest/LogstashMesosSlave.java b/system-test/src/main/java/org/apache/mesos/logstash/systemtest/LogstashMesosSlave.java index 26c8ad0..0cd4079 100644 --- a/system-test/src/main/java/org/apache/mesos/logstash/systemtest/LogstashMesosSlave.java +++ b/system-test/src/main/java/org/apache/mesos/logstash/systemtest/LogstashMesosSlave.java @@ -1,12 +1,12 @@ package org.apache.mesos.logstash.systemtest; -import com.containersol.minimesos.mesos.MesosSlave; +import com.containersol.minimesos.mesos.MesosAgent; import com.containersol.minimesos.mesos.ZooKeeper; import com.github.dockerjava.api.DockerClient; import java.util.TreeMap; -public class LogstashMesosSlave extends MesosSlave { +public class LogstashMesosSlave extends MesosAgent { public LogstashMesosSlave(DockerClient dockerClient, ZooKeeper zooKeeper) { super(dockerClient, zooKeeper); } diff --git a/system-test/src/main/java/org/apache/mesos/logstash/systemtest/Main.java b/system-test/src/main/java/org/apache/mesos/logstash/systemtest/Main.java index 56b97a9..ea79212 100644 --- a/system-test/src/main/java/org/apache/mesos/logstash/systemtest/Main.java +++ b/system-test/src/main/java/org/apache/mesos/logstash/systemtest/Main.java @@ -18,7 +18,7 @@ public class Main { public static void main(String[] args) throws InterruptedException { DockerClient dockerClient = DockerClientFactory.build(); - MesosCluster cluster = new MesosCluster(ClusterUtil.withSlaves(1, zooKeeper -> new LogstashMesosSlave(dockerClient, zooKeeper)).withMaster().build()); + MesosCluster cluster = new MesosCluster(ClusterUtil.withAgent(1, zooKeeper -> new LogstashMesosSlave(dockerClient, zooKeeper)).withMaster().build()); cluster.start(); diff --git a/system-test/src/main/java/org/apache/mesos/logstash/systemtest/ResponseCollector.java b/system-test/src/main/java/org/apache/mesos/logstash/systemtest/ResponseCollector.java new file mode 100644 index 0000000..e5c3ab8 --- /dev/null +++ b/system-test/src/main/java/org/apache/mesos/logstash/systemtest/ResponseCollector.java @@ -0,0 +1,35 @@ +package org.apache.mesos.logstash.systemtest; + +import org.apache.commons.io.IOUtils; +import org.apache.commons.io.LineIterator; + +import java.io.IOException; +import java.io.InputStream; +import java.io.StringWriter; + +/** + * Logs an container response on logger. + */ +public class ResponseCollector { + + public static String collectResponse(InputStream response) { + StringWriter logwriter = new StringWriter(); + + try { + LineIterator itr = IOUtils.lineIterator(response, "UTF-8"); + + while (itr.hasNext()) { + String line = (String) itr.next(); + logwriter.write(line + (itr.hasNext() ? "\n" : "")); + } + response.close(); + + return logwriter.toString(); + } catch (IOException e) { + throw new RuntimeException(e); + } finally { + IOUtils.closeQuietly(response); + } + } + +} diff --git a/system-test/src/test/java/org/apache/mesos/logstash/systemtest/DeploymentSystemTest.java b/system-test/src/test/java/org/apache/mesos/logstash/systemtest/DeploymentSystemTest.java index ac324c7..52ab0ee 100644 --- a/system-test/src/test/java/org/apache/mesos/logstash/systemtest/DeploymentSystemTest.java +++ b/system-test/src/test/java/org/apache/mesos/logstash/systemtest/DeploymentSystemTest.java @@ -50,7 +50,7 @@ public class DeploymentSystemTest { private MesosCluster cluster = new MesosCluster(new ClusterArchitecture.Builder() .withZooKeeper() .withMaster(zooKeeper -> new LogstashMesosMaster(dockerClient, zooKeeper)) - .withSlave(zooKeeper -> new LogstashMesosSlave(dockerClient, zooKeeper)) + .withAgent(zooKeeper -> new LogstashMesosSlave(dockerClient, zooKeeper)) .build()); Optional scheduler = Optional.empty(); @@ -163,7 +163,7 @@ public void willForwardDataToElasticsearchInDockerMode() throws Exception { final String randomLogLine = "Hello " + RandomStringUtils.randomAlphanumeric(32); dockerClient.pullImageCmd("ubuntu:15.10").exec(new PullImageResultCallback()).awaitSuccess(); - final String logstashSlave = dockerClient.listContainersCmd().withSince(cluster.getSlaves()[0].getContainerId()).exec().stream().filter(container -> container.getImage().endsWith("/logstash-executor:latest")).findFirst().map(Container::getId).orElseThrow(() -> new AssertionError("Unable to find logstash container")); + final String logstashSlave = dockerClient.listContainersCmd().withSince(cluster.getAgents().get(0).getContainerId()).exec().stream().filter(container -> container.getImage().endsWith("/logstash-executor:latest")).findFirst().map(Container::getId).orElseThrow(() -> new AssertionError("Unable to find logstash container")); assertTrue("logstash slave is expected to be running", dockerClient.inspectContainerCmd(logstashSlave).exec().getState().isRunning()); @@ -213,7 +213,7 @@ public void willForwardDataToElasticsearchInJarMode() throws Exception { final String randomLogLine = "Hello " + RandomStringUtils.randomAlphanumeric(32); dockerClient.pullImageCmd("ubuntu:15.10").exec(new PullImageResultCallback()).awaitSuccess(); - final String logstashSlave = cluster.getSlaves()[0].getContainerId(); + final String logstashSlave = cluster.getAgents().get(0).getContainerId(); assertTrue(dockerClient.inspectContainerCmd(logstashSlave).exec().getState().isRunning()); @@ -282,12 +282,12 @@ public void willStartNewExecutorIfOldExecutorFails() throws Exception { .filter(container -> container.getImage().endsWith("/logstash-executor:latest")); await().atMost(1, TimeUnit.MINUTES).pollDelay(1, SECONDS).until(() -> { - long count = getLogstashExecutorsSince.apply(cluster.getSlaves()[0].getContainerId()).count(); - LOGGER.info("There are " + count + " executors since " + cluster.getSlaves()[0].getContainerId()); + long count = getLogstashExecutorsSince.apply(cluster.getAgents().get(0).getContainerId()).count(); + LOGGER.info("There are " + count + " executors since " + cluster.getAgents().get(0).getContainerId()); assertEquals(1, count); }); - final String slaveToKillContainerId = getLogstashExecutorsSince.apply(cluster.getSlaves()[0].getContainerId()).findFirst().map(Container::getId).orElseThrow(() -> new RuntimeException("Unable to find logstash container")); + final String slaveToKillContainerId = getLogstashExecutorsSince.apply(cluster.getAgents().get(0).getContainerId()).findFirst().map(Container::getId).orElseThrow(() -> new RuntimeException("Unable to find logstash container")); dockerClient.killContainerCmd(slaveToKillContainerId).exec(); diff --git a/system-test/src/test/java/org/apache/mesos/logstash/systemtest/LocalCluster.java b/system-test/src/test/java/org/apache/mesos/logstash/systemtest/LocalCluster.java index 1d92c53..acfeb9d 100644 --- a/system-test/src/test/java/org/apache/mesos/logstash/systemtest/LocalCluster.java +++ b/system-test/src/test/java/org/apache/mesos/logstash/systemtest/LocalCluster.java @@ -1,9 +1,10 @@ package org.apache.mesos.logstash.systemtest; import com.containersol.minimesos.cluster.MesosCluster; +import com.containersol.minimesos.config.ClusterConfig; import com.containersol.minimesos.mesos.ClusterUtil; import com.containersol.minimesos.mesos.MesosMaster; -import com.containersol.minimesos.mesos.MesosSlave; +import com.containersol.minimesos.mesos.MesosAgent; import com.github.dockerjava.api.DockerClient; import com.github.dockerjava.api.model.Container; import com.github.dockerjava.core.DockerClientBuilder; @@ -16,7 +17,7 @@ public class LocalCluster { private static final String DOCKER_PORT = "2376"; - public final MesosCluster cluster = new MesosCluster(ClusterUtil.withSlaves(3, zooKeeper -> new MesosSlave(null, zooKeeper) { + public final MesosCluster cluster = new MesosCluster(ClusterUtil.withAgent(3, zooKeeper -> new MesosAgent(null, zooKeeper) { @Override public TreeMap getDefaultEnvVars() { final TreeMap envVars = super.getDefaultEnvVars(); @@ -44,7 +45,7 @@ private void run() throws Exception { DummyFrameworkContainer dummyFrameworkContainer = new DummyFrameworkContainer( clusterDockerClient, "dummy-framework"); - dummyFrameworkContainer.start(MesosCluster.DEFAULT_TIMEOUT_SECS); + dummyFrameworkContainer.start(ClusterConfig.DEFAULT_TIMEOUT_SECS); String mesosZk = master.getFormattedZKAddress();