Skip to content

Commit

Permalink
Merge pull request #123 from mesos/enhancement/upgrade-minimesos-0.7.0
Browse files Browse the repository at this point in the history
Upgraded to minimesos 0.7.0
  • Loading branch information
mwl committed Mar 14, 2016
2 parents ca5ddf3 + f347e39 commit 9287ef5
Show file tree
Hide file tree
Showing 9 changed files with 49 additions and 19 deletions.
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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";

Expand Down
Original file line number Diff line number Diff line change
@@ -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 {

Expand Down
Original file line number Diff line number Diff line change
@@ -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;

Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand Down
Original file line number Diff line number Diff line change
@@ -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);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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();

Expand Down
Original file line number Diff line number Diff line change
@@ -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);
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -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<LogstashSchedulerContainer> scheduler = Optional.empty();
Expand Down Expand Up @@ -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());

Expand Down Expand Up @@ -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());

Expand Down Expand Up @@ -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();

Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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<String, String> getDefaultEnvVars() {
final TreeMap<String, String> envVars = super.getDefaultEnvVars();
Expand Down Expand Up @@ -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();

Expand Down

0 comments on commit 9287ef5

Please sign in to comment.