diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..f711a017 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,11 @@ +root = true + +[*] +end_of_line = lf +insert_final_newline = true +charset = utf-8 +trim_trailing_whitespace = true + +[*.java] +indent_style = space +indent_size = 4 diff --git a/minimesos/build.gradle b/minimesos/build.gradle index bf1fc1da..1036b4e0 100644 --- a/minimesos/build.gradle +++ b/minimesos/build.gradle @@ -1,5 +1,5 @@ -import com.bmuschko.gradle.docker.tasks.image.DockerPushImage import com.bmuschko.gradle.docker.tasks.image.DockerBuildImage +import com.bmuschko.gradle.docker.tasks.image.DockerPushImage import com.bmuschko.gradle.docker.tasks.image.DockerTagImage ext { @@ -71,11 +71,11 @@ jar { baseName = "minimesos" manifest { attributes( - 'Main-Class' : mainClassName, - 'Implementation-Version' : project.version + 'Main-Class': mainClassName, + 'Implementation-Version': project.version ) } - exclude 'META-INF/*.RSA', 'META-INF/*.SF','META-INF/*.DSA' + exclude 'META-INF/*.RSA', 'META-INF/*.SF', 'META-INF/*.DSA' } jacocoTestReport { @@ -92,16 +92,16 @@ task executableJar(type: Jar) { with jar manifest { attributes( - 'Main-Class' : mainClassName, - 'Implementation-Version' : project.version + 'Main-Class': mainClassName, + 'Implementation-Version': project.version ) } - exclude 'META-INF/*.RSA', 'META-INF/*.SF','META-INF/*.DSA' + exclude 'META-INF/*.RSA', 'META-INF/*.SF', 'META-INF/*.DSA' } task installMinimesosScript(type: Copy) { - from "$rootDir/bin/minimesos" - into "/usr/local/bin" + from "$rootDir/bin/minimesos" + into "/usr/local/bin" } task copyExecutableJar(type: Copy) { @@ -109,23 +109,23 @@ task copyExecutableJar(type: Copy) { rename { String fileName -> fileName.replace("-${project.version}-all", "") } - from "build/libs/minimesos-${project.version}-all.jar" - into 'build/libs' + from "build/libs/minimesos-${project.version}-all.jar" + into 'build/libs' } task copyFilesForDocker(type: Copy) { - dependsOn 'copyExecutableJar' - from "build/libs/minimesos.jar" - into 'build/docker' + dependsOn 'copyExecutableJar' + from "build/libs/minimesos.jar" + into 'build/docker' rename { String fileName -> fileName.replace("-${project.version}", "") } } task copyDockerfile(type: Copy) { - dependsOn 'copyFilesForDocker' - from "Dockerfile" - into 'build/docker' + dependsOn 'copyFilesForDocker' + from "Dockerfile" + into 'build/docker' } artifacts { @@ -145,35 +145,35 @@ afterEvaluate { project -> + ' contains Dockerfile, but it does not define project.ext.imageName value') } docker.url = 'unix:///var/run/docker.sock' - if(!System.properties['os.name'].equals('Mac OS X')) { + if (!System.properties['os.name'].equals('Mac OS X')) { docker.certPath = null } if (System.env.DOCKER_HOST) { - docker.url = "$System.env.DOCKER_HOST".replace("tcp","https") + docker.url = "$System.env.DOCKER_HOST".replace("tcp", "https") if (System.env.DOCKER_CERT_PATH) { docker.certPath = new File(System.env.DOCKER_CERT_PATH) } } task buildDockerImage(type: DockerBuildImage, dependsOn: [copyDockerfile], description: 'build Docker image') { - inputDir = new File( "${buildDir}/docker") + inputDir = new File("${buildDir}/docker") tag = project.imageName } project.build.dependsOn buildDockerImage - [ 'snapshot', 'version' ].each { aTag -> + ['snapshot', 'version'].each { aTag -> String uppercasedName = aTag.capitalize() task "tagDockerImageWith$uppercasedName"(type: DockerTagImage, description: 'tag Docker image') { imageId = project.imageName - tag = ( 'version'.equals(aTag) ) ? project.version : aTag + tag = ('version'.equals(aTag)) ? project.version : aTag repository = project.imageName force = true } task "publishDockerImageWith$uppercasedName"(type: DockerPushImage, dependsOn: ["tagDockerImageWith$uppercasedName"], description: 'publish Docker image') { imageName = project.imageName - tag = ( 'version'.equals(aTag) ) ? project.version : aTag + tag = ('version'.equals(aTag)) ? project.version : aTag doFirst { ['dockerHubUsername', 'dockerHubPassword', 'dockerHubEmail'].each { - assert project.hasProperty(it) : 'Undefined "' + it + '" property' + assert project.hasProperty(it): 'Undefined "' + it + '" property' } docker { registryCredentials { @@ -189,4 +189,4 @@ afterEvaluate { project -> } assemble.dependsOn copyExecutableJar -// install.dependsOn installMinimesosScript \ No newline at end of file +// install.dependsOn installMinimesosScript diff --git a/minimesos/src/main/groovy/com/containersol/minimesos/config/ConfigParser.groovy b/minimesos/src/main/groovy/com/containersol/minimesos/config/ConfigParser.groovy index 76a0d625..b6eab709 100644 --- a/minimesos/src/main/groovy/com/containersol/minimesos/config/ConfigParser.groovy +++ b/minimesos/src/main/groovy/com/containersol/minimesos/config/ConfigParser.groovy @@ -20,10 +20,10 @@ class ConfigParser { private final Map propsDictionary = [ "agents": "agent", - "cpus": "cpu", - "mems": "mem", - "disks": "disk", - "apps": "app" + "cpus" : "cpu", + "mems" : "mem", + "disks" : "disk", + "apps" : "app" ] private final List ignoredProperties = ["class", "format"] diff --git a/minimesos/src/main/groovy/com/containersol/minimesos/config/ConsulConfig.groovy b/minimesos/src/main/groovy/com/containersol/minimesos/config/ConsulConfig.groovy index d492cf88..603952fb 100644 --- a/minimesos/src/main/groovy/com/containersol/minimesos/config/ConsulConfig.groovy +++ b/minimesos/src/main/groovy/com/containersol/minimesos/config/ConsulConfig.groovy @@ -9,8 +9,8 @@ public class ConsulConfig extends ContainerConfigBlock implements ContainerConfi public static final int CONSUL_DNS_PORT = 8600 public ConsulConfig() { - imageName = CONSUL_IMAGE_NAME - imageTag = CONSUL_TAG_NAME + imageName = CONSUL_IMAGE_NAME + imageTag = CONSUL_TAG_NAME } } diff --git a/minimesos/src/main/groovy/com/containersol/minimesos/config/ContainerConfig.groovy b/minimesos/src/main/groovy/com/containersol/minimesos/config/ContainerConfig.groovy index 9defdcef..883a5d55 100644 --- a/minimesos/src/main/groovy/com/containersol/minimesos/config/ContainerConfig.groovy +++ b/minimesos/src/main/groovy/com/containersol/minimesos/config/ContainerConfig.groovy @@ -6,9 +6,11 @@ package com.containersol.minimesos.config interface ContainerConfig { String getImageName() + void setImageName(String imageName) String getImageTag() + void setImageTag(String imageTag) -} \ No newline at end of file +} diff --git a/minimesos/src/main/groovy/com/containersol/minimesos/config/MarathonConfig.groovy b/minimesos/src/main/groovy/com/containersol/minimesos/config/MarathonConfig.groovy index 0f314ccf..b95a089d 100644 --- a/minimesos/src/main/groovy/com/containersol/minimesos/config/MarathonConfig.groovy +++ b/minimesos/src/main/groovy/com/containersol/minimesos/config/MarathonConfig.groovy @@ -11,8 +11,8 @@ public class MarathonConfig extends ContainerConfigBlock implements ContainerCon List apps = new ArrayList<>(); public MarathonConfig() { - imageName = MARATHON_IMAGE - imageTag = MARATHON_IMAGE_TAG + imageName = MARATHON_IMAGE + imageTag = MARATHON_IMAGE_TAG } def app(@DelegatesTo(AppConfig) Closure cl) { diff --git a/minimesos/src/main/groovy/com/containersol/minimesos/config/MesosAgentConfig.groovy b/minimesos/src/main/groovy/com/containersol/minimesos/config/MesosAgentConfig.groovy index 67cae8e6..bde83f35 100644 --- a/minimesos/src/main/groovy/com/containersol/minimesos/config/MesosAgentConfig.groovy +++ b/minimesos/src/main/groovy/com/containersol/minimesos/config/MesosAgentConfig.groovy @@ -13,8 +13,8 @@ class MesosAgentConfig extends MesosContainerConfig { AgentResourcesConfig resources = new AgentResourcesConfig() public MesosAgentConfig() { - imageName = MESOS_AGENT_IMAGE - imageTag = MESOS_IMAGE_TAG + imageName = MESOS_AGENT_IMAGE + imageTag = MESOS_IMAGE_TAG } def resources(@DelegatesTo(AgentResourcesConfig) Closure cl) { diff --git a/minimesos/src/main/groovy/com/containersol/minimesos/config/MesosMasterConfig.groovy b/minimesos/src/main/groovy/com/containersol/minimesos/config/MesosMasterConfig.groovy index f84e40b0..b8bf82e7 100644 --- a/minimesos/src/main/groovy/com/containersol/minimesos/config/MesosMasterConfig.groovy +++ b/minimesos/src/main/groovy/com/containersol/minimesos/config/MesosMasterConfig.groovy @@ -9,8 +9,8 @@ class MesosMasterConfig extends MesosContainerConfig { public static final int MESOS_MASTER_PORT = 5050 public MesosMasterConfig() { - imageName = MESOS_MASTER_IMAGE - imageTag = MESOS_IMAGE_TAG + imageName = MESOS_MASTER_IMAGE + imageTag = MESOS_IMAGE_TAG } boolean authenticate = false diff --git a/minimesos/src/main/groovy/com/containersol/minimesos/config/RegistratorConfig.groovy b/minimesos/src/main/groovy/com/containersol/minimesos/config/RegistratorConfig.groovy index beff3c88..cb74547a 100644 --- a/minimesos/src/main/groovy/com/containersol/minimesos/config/RegistratorConfig.groovy +++ b/minimesos/src/main/groovy/com/containersol/minimesos/config/RegistratorConfig.groovy @@ -6,8 +6,8 @@ public class RegistratorConfig extends ContainerConfigBlock implements Container public static final String REGISTRATOR_TAG_NAME = "v6" public RegistratorConfig() { - imageName = REGISTRATOR_IMAGE_NAME - imageTag = REGISTRATOR_TAG_NAME + imageName = REGISTRATOR_IMAGE_NAME + imageTag = REGISTRATOR_TAG_NAME } } diff --git a/minimesos/src/main/groovy/com/containersol/minimesos/config/ResourceDefScalar.groovy b/minimesos/src/main/groovy/com/containersol/minimesos/config/ResourceDefScalar.groovy index 9140d06b..f1c564a9 100644 --- a/minimesos/src/main/groovy/com/containersol/minimesos/config/ResourceDefScalar.groovy +++ b/minimesos/src/main/groovy/com/containersol/minimesos/config/ResourceDefScalar.groovy @@ -2,6 +2,7 @@ package com.containersol.minimesos.config import java.text.DecimalFormat import java.text.DecimalFormatSymbols + /** * Check http://mesos.apache.org/documentation/latest/attributes-resources/ for possible types of values */ diff --git a/minimesos/src/main/groovy/com/containersol/minimesos/config/ZooKeeperConfig.groovy b/minimesos/src/main/groovy/com/containersol/minimesos/config/ZooKeeperConfig.groovy index 0658361b..586a8893 100644 --- a/minimesos/src/main/groovy/com/containersol/minimesos/config/ZooKeeperConfig.groovy +++ b/minimesos/src/main/groovy/com/containersol/minimesos/config/ZooKeeperConfig.groovy @@ -8,8 +8,8 @@ public class ZooKeeperConfig extends ContainerConfigBlock implements ContainerCo public static final String ZOOKEEPER_IMAGE_TAG = "3.4.6" public ZooKeeperConfig() { - imageName = MESOS_LOCAL_IMAGE - imageTag = ZOOKEEPER_IMAGE_TAG + imageName = MESOS_LOCAL_IMAGE + imageTag = ZOOKEEPER_IMAGE_TAG } } diff --git a/minimesos/src/main/java/com/containersol/minimesos/cluster/ClusterProcess.java b/minimesos/src/main/java/com/containersol/minimesos/cluster/ClusterProcess.java index d9f4f70b..971d6ffc 100644 --- a/minimesos/src/main/java/com/containersol/minimesos/cluster/ClusterProcess.java +++ b/minimesos/src/main/java/com/containersol/minimesos/cluster/ClusterProcess.java @@ -6,6 +6,7 @@ public interface ClusterProcess { MesosCluster getCluster(); + void setCluster(MesosCluster mesosCluster); /** diff --git a/minimesos/src/main/java/com/containersol/minimesos/cluster/ClusterRepository.java b/minimesos/src/main/java/com/containersol/minimesos/cluster/ClusterRepository.java index 3e07384d..95cc7858 100644 --- a/minimesos/src/main/java/com/containersol/minimesos/cluster/ClusterRepository.java +++ b/minimesos/src/main/java/com/containersol/minimesos/cluster/ClusterRepository.java @@ -19,7 +19,8 @@ public class ClusterRepository { public static final String MINIMESOS_FILE_PROPERTY = "minimesos.cluster"; - private ClusterRepository() {} + private ClusterRepository() { + } /** * Loads representation of the running cluster diff --git a/minimesos/src/main/java/com/containersol/minimesos/cluster/MesosCluster.java b/minimesos/src/main/java/com/containersol/minimesos/cluster/MesosCluster.java index df16b595..a2c831c5 100644 --- a/minimesos/src/main/java/com/containersol/minimesos/cluster/MesosCluster.java +++ b/minimesos/src/main/java/com/containersol/minimesos/cluster/MesosCluster.java @@ -220,7 +220,7 @@ public void destroy(MesosClusterFactory factory) { * Starts a container. This container will be removed when the Mesos cluster is shut down. * * @param process container to be started - * @param timeout in seconds + * @param timeout in seconds * @return container ID */ public String addAndStartProcess(ClusterProcess process, int timeout) { @@ -374,7 +374,6 @@ public static File getHostDir() { * Taking either URI or path to a file, returns string with its content * * @param location either absolute URI or path to a file - * * @return input stream with location content or null */ public static InputStream getInputStream(String location) { diff --git a/minimesos/src/main/java/com/containersol/minimesos/cluster/MesosContainer.java b/minimesos/src/main/java/com/containersol/minimesos/cluster/MesosContainer.java index d5768453..90af135e 100644 --- a/minimesos/src/main/java/com/containersol/minimesos/cluster/MesosContainer.java +++ b/minimesos/src/main/java/com/containersol/minimesos/cluster/MesosContainer.java @@ -9,6 +9,7 @@ public interface MesosContainer extends ClusterProcess { void setZooKeeper(ZooKeeper zookeeper); + JSONObject getStateInfoJSON() throws UnirestException; } diff --git a/minimesos/src/main/java/com/containersol/minimesos/cluster/MesosMaster.java b/minimesos/src/main/java/com/containersol/minimesos/cluster/MesosMaster.java index 48274968..88795103 100644 --- a/minimesos/src/main/java/com/containersol/minimesos/cluster/MesosMaster.java +++ b/minimesos/src/main/java/com/containersol/minimesos/cluster/MesosMaster.java @@ -10,6 +10,7 @@ public interface MesosMaster extends MesosContainer { String getStateUrl(); + void waitFor(); Map getFlags() throws UnirestException; diff --git a/minimesos/src/main/java/com/containersol/minimesos/container/ContainerName.java b/minimesos/src/main/java/com/containersol/minimesos/container/ContainerName.java index fccf1f83..6dc52966 100644 --- a/minimesos/src/main/java/com/containersol/minimesos/container/ContainerName.java +++ b/minimesos/src/main/java/com/containersol/minimesos/container/ContainerName.java @@ -37,9 +37,9 @@ public static boolean hasRoleInCluster(String containerName, String clusterId, S /** * Based on container name check if it has the given role in the cluster * - * @param dockerNames as returned by container.getNames() - * @param clusterId cluster to check - * @param role role to check + * @param dockerNames as returned by container.getNames() + * @param clusterId cluster to check + * @param role role to check * @return true if container has the role */ public static boolean hasRoleInCluster(String[] dockerNames, String clusterId, String role) { diff --git a/minimesos/src/main/java/com/containersol/minimesos/docker/DockerContainersUtil.java b/minimesos/src/main/java/com/containersol/minimesos/docker/DockerContainersUtil.java index 6aef46cf..2d45d62c 100644 --- a/minimesos/src/main/java/com/containersol/minimesos/docker/DockerContainersUtil.java +++ b/minimesos/src/main/java/com/containersol/minimesos/docker/DockerContainersUtil.java @@ -1,9 +1,9 @@ package com.containersol.minimesos.docker; import com.containersol.minimesos.MinimesosException; +import com.github.dockerjava.api.DockerException; import com.github.dockerjava.api.command.InspectContainerResponse; import com.github.dockerjava.api.command.LogContainerCmd; -import com.github.dockerjava.api.DockerException; import com.github.dockerjava.api.model.Container; import com.github.dockerjava.api.model.Frame; import com.github.dockerjava.api.model.PullResponseItem; @@ -37,6 +37,7 @@ private DockerContainersUtil(List containers) { /** * Use this getter if you need to iterate over docker objects + * * @return set of docker containers */ public List getContainers() { @@ -164,6 +165,7 @@ public static String getIpAddress(String containerId) { /** * Synchronized method for returning logs of docker container + * * @param containerId - ID of the container ot lookup logs * @return list of strings, where every string is log line */ diff --git a/minimesos/src/main/java/com/containersol/minimesos/junit/MesosClusterTestRule.java b/minimesos/src/main/java/com/containersol/minimesos/junit/MesosClusterTestRule.java index e2a9f8b2..1da87bec 100644 --- a/minimesos/src/main/java/com/containersol/minimesos/junit/MesosClusterTestRule.java +++ b/minimesos/src/main/java/com/containersol/minimesos/junit/MesosClusterTestRule.java @@ -13,7 +13,7 @@ /** * JUnit Rule extension of Mesos Cluster to use in JUnit. - * + *

* TODO: see https://github.com/ContainerSolutions/minimesos/issues/8 for completion */ public class MesosClusterTestRule implements TestRule { diff --git a/minimesos/src/main/java/com/containersol/minimesos/main/CommandInit.java b/minimesos/src/main/java/com/containersol/minimesos/main/CommandInit.java index 942e8934..a0d1e801 100644 --- a/minimesos/src/main/java/com/containersol/minimesos/main/CommandInit.java +++ b/minimesos/src/main/java/com/containersol/minimesos/main/CommandInit.java @@ -3,7 +3,15 @@ import com.beust.jcommander.Parameters; import com.containersol.minimesos.MinimesosException; import com.containersol.minimesos.cluster.MesosCluster; -import com.containersol.minimesos.config.*; +import com.containersol.minimesos.config.AppConfig; +import com.containersol.minimesos.config.ClusterConfig; +import com.containersol.minimesos.config.ConfigParser; +import com.containersol.minimesos.config.ConsulConfig; +import com.containersol.minimesos.config.MarathonConfig; +import com.containersol.minimesos.config.MesosAgentConfig; +import com.containersol.minimesos.config.MesosMasterConfig; +import com.containersol.minimesos.config.RegistratorConfig; +import com.containersol.minimesos.config.ZooKeeperConfig; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/minimesos/src/main/java/com/containersol/minimesos/main/CommandInstall.java b/minimesos/src/main/java/com/containersol/minimesos/main/CommandInstall.java index 67cc2dcf..164a5f4a 100644 --- a/minimesos/src/main/java/com/containersol/minimesos/main/CommandInstall.java +++ b/minimesos/src/main/java/com/containersol/minimesos/main/CommandInstall.java @@ -7,7 +7,8 @@ import com.containersol.minimesos.cluster.MesosCluster; import com.containersol.minimesos.mesos.MesosClusterContainersFactory; -import java.io.*; +import java.io.IOException; +import java.io.InputStream; import java.util.Scanner; /** diff --git a/minimesos/src/main/java/com/containersol/minimesos/main/CommandUp.java b/minimesos/src/main/java/com/containersol/minimesos/main/CommandUp.java index f8d87355..ad6efd23 100644 --- a/minimesos/src/main/java/com/containersol/minimesos/main/CommandUp.java +++ b/minimesos/src/main/java/com/containersol/minimesos/main/CommandUp.java @@ -3,13 +3,18 @@ import com.beust.jcommander.Parameter; import com.beust.jcommander.Parameters; import com.containersol.minimesos.MinimesosException; -import com.containersol.minimesos.cluster.ClusterProcess; import com.containersol.minimesos.cluster.ClusterRepository; import com.containersol.minimesos.cluster.MesosCluster; -import com.containersol.minimesos.config.*; +import com.containersol.minimesos.config.ClusterConfig; +import com.containersol.minimesos.config.ConfigParser; +import com.containersol.minimesos.config.ConsulConfig; +import com.containersol.minimesos.config.MarathonConfig; +import com.containersol.minimesos.config.MesosAgentConfig; +import com.containersol.minimesos.config.MesosMasterConfig; +import com.containersol.minimesos.config.RegistratorConfig; +import com.containersol.minimesos.config.ZooKeeperConfig; import com.containersol.minimesos.mesos.MesosClusterContainersFactory; import org.apache.commons.io.IOUtils; -import org.apache.commons.lang.StringUtils; import org.slf4j.LoggerFactory; import java.io.InputStream; @@ -140,9 +145,8 @@ public void execute() { /** * Reads ClusterConfig from minimesosFile. * - * @throws MinimesosException if minimesosFile is not found or malformed - * * @return configuration of the cluster from the minimesosFile + * @throws MinimesosException if minimesosFile is not found or malformed */ public ClusterConfig readClusterConfigFromMinimesosFile() { InputStream clusterConfigFile = MesosCluster.getInputStream(getClusterConfigPath()); diff --git a/minimesos/src/main/java/com/containersol/minimesos/mesos/ClusterArchitecture.java b/minimesos/src/main/java/com/containersol/minimesos/mesos/ClusterArchitecture.java index 1af0be74..0c3f2911 100644 --- a/minimesos/src/main/java/com/containersol/minimesos/mesos/ClusterArchitecture.java +++ b/minimesos/src/main/java/com/containersol/minimesos/mesos/ClusterArchitecture.java @@ -1,7 +1,19 @@ package com.containersol.minimesos.mesos; -import com.containersol.minimesos.cluster.*; -import com.containersol.minimesos.config.*; +import com.containersol.minimesos.cluster.ClusterProcess; +import com.containersol.minimesos.cluster.Consul; +import com.containersol.minimesos.cluster.Filter; +import com.containersol.minimesos.cluster.Marathon; +import com.containersol.minimesos.cluster.MesosAgent; +import com.containersol.minimesos.cluster.MesosMaster; +import com.containersol.minimesos.cluster.Registrator; +import com.containersol.minimesos.cluster.ZooKeeper; +import com.containersol.minimesos.config.AgentResourcesConfig; +import com.containersol.minimesos.config.ClusterConfig; +import com.containersol.minimesos.config.ConsulConfig; +import com.containersol.minimesos.config.MesosAgentConfig; +import com.containersol.minimesos.config.RegistratorConfig; +import com.containersol.minimesos.config.ZooKeeperConfig; import com.containersol.minimesos.container.AbstractContainer; import com.containersol.minimesos.marathon.MarathonContainer; import org.slf4j.Logger; diff --git a/minimesos/src/main/java/com/containersol/minimesos/mesos/ClusterContainers.java b/minimesos/src/main/java/com/containersol/minimesos/mesos/ClusterContainers.java index 3c8c5f1e..cf58ab95 100644 --- a/minimesos/src/main/java/com/containersol/minimesos/mesos/ClusterContainers.java +++ b/minimesos/src/main/java/com/containersol/minimesos/mesos/ClusterContainers.java @@ -1,6 +1,6 @@ package com.containersol.minimesos.mesos; -import com.containersol.minimesos.cluster.*; +import com.containersol.minimesos.cluster.ClusterProcess; import java.util.ArrayList; import java.util.List; @@ -23,6 +23,7 @@ public ClusterContainers() { /** * Create a container List from another List + * * @param containers another List of {@link ClusterProcess} */ public ClusterContainers(List containers) { @@ -31,6 +32,7 @@ public ClusterContainers(List containers) { /** * Add a container to the list of containers. + * * @param container of type {@link ClusterProcess} * @return this, for fluent adding. */ @@ -48,7 +50,7 @@ public List getContainers() { * If it doesn't find that type, the optional is empty so the cast doesn't need to be performed. * * @param filter A predicate that is true when an {@link ClusterProcess} in the list is of type T - * @param A container of type T that extends {@link ClusterProcess} + * @param A container of type T that extends {@link ClusterProcess} * @return the first container it comes across. */ @SuppressWarnings("unchecked") @@ -58,6 +60,7 @@ public Optional getOne(Predicate f /** * Checks to see whether a container exists + * * @param filter A predicate that is true when an {@link ClusterProcess} in the list is of type T * @return true if it exists */ diff --git a/minimesos/src/main/java/com/containersol/minimesos/mesos/MesosClusterContainersFactory.java b/minimesos/src/main/java/com/containersol/minimesos/mesos/MesosClusterContainersFactory.java index d3196eca..acc35b9a 100644 --- a/minimesos/src/main/java/com/containersol/minimesos/mesos/MesosClusterContainersFactory.java +++ b/minimesos/src/main/java/com/containersol/minimesos/mesos/MesosClusterContainersFactory.java @@ -1,7 +1,15 @@ package com.containersol.minimesos.mesos; import com.containersol.minimesos.MinimesosException; -import com.containersol.minimesos.cluster.*; +import com.containersol.minimesos.cluster.ClusterProcess; +import com.containersol.minimesos.cluster.Consul; +import com.containersol.minimesos.cluster.Marathon; +import com.containersol.minimesos.cluster.MesosAgent; +import com.containersol.minimesos.cluster.MesosCluster; +import com.containersol.minimesos.cluster.MesosClusterFactory; +import com.containersol.minimesos.cluster.MesosMaster; +import com.containersol.minimesos.cluster.Registrator; +import com.containersol.minimesos.cluster.ZooKeeper; import com.containersol.minimesos.config.ClusterConfig; import com.containersol.minimesos.config.ConfigParser; import com.containersol.minimesos.config.MesosMasterConfig; diff --git a/minimesos/src/main/java/com/containersol/minimesos/mesos/ZooKeeperContainer.java b/minimesos/src/main/java/com/containersol/minimesos/mesos/ZooKeeperContainer.java index eeaae25e..7cb1061d 100644 --- a/minimesos/src/main/java/com/containersol/minimesos/mesos/ZooKeeperContainer.java +++ b/minimesos/src/main/java/com/containersol/minimesos/mesos/ZooKeeperContainer.java @@ -27,6 +27,7 @@ protected ZooKeeperContainer() { public ZooKeeperContainer(MesosCluster cluster, String uuid, String containerId) { this(cluster, uuid, containerId, new ZooKeeperConfig()); } + public ZooKeeperContainer(MesosCluster cluster, String uuid, String containerId, ZooKeeperConfig config) { super(cluster, uuid, containerId, config); this.config = config; diff --git a/minimesos/src/main/java/com/containersol/minimesos/util/CollectionsUtils.java b/minimesos/src/main/java/com/containersol/minimesos/util/CollectionsUtils.java index e1126089..e3768900 100644 --- a/minimesos/src/main/java/com/containersol/minimesos/util/CollectionsUtils.java +++ b/minimesos/src/main/java/com/containersol/minimesos/util/CollectionsUtils.java @@ -16,13 +16,13 @@ private CollectionsUtils() { public static List typedList(List original, Class clazz) { - ArrayList typed = new ArrayList<>( original.size() ); + ArrayList typed = new ArrayList<>(original.size()); - for( Object obj : original ) { - if( (obj == null ) || clazz.isAssignableFrom(obj.getClass() ) ) { - typed.add( clazz.cast(obj) ); + for (Object obj : original) { + if ((obj == null) || clazz.isAssignableFrom(obj.getClass())) { + typed.add(clazz.cast(obj)); } else { - throw new MinimesosException( "Not possible to cast " + obj + " to " + clazz.getCanonicalName() ); + throw new MinimesosException("Not possible to cast " + obj + " to " + clazz.getCanonicalName()); } } diff --git a/minimesos/src/main/java/com/containersol/minimesos/util/ResourceUtil.java b/minimesos/src/main/java/com/containersol/minimesos/util/ResourceUtil.java index eb04ee32..f1f56304 100644 --- a/minimesos/src/main/java/com/containersol/minimesos/util/ResourceUtil.java +++ b/minimesos/src/main/java/com/containersol/minimesos/util/ResourceUtil.java @@ -16,13 +16,11 @@ private ResourceUtil() { /** * Turns a Mesos resource string into a List of ports. - * + *

* Example: 'ports(*):[31000-32000],;cpus(*):0.2; mem(*):256; disk(*):200' returns [31000, 32000] * * @param mesosResourceString Mesos resource string - * * @return list of ports if any - * * @throws MinimesosException if resource string is incorrect */ public static ArrayList parsePorts(String mesosResourceString) { diff --git a/minimesos/src/main/resources/logback.xml b/minimesos/src/main/resources/logback.xml index 48a626a8..81f808de 100644 --- a/minimesos/src/main/resources/logback.xml +++ b/minimesos/src/main/resources/logback.xml @@ -1,24 +1,24 @@ - - System.out - - %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n - - + + System.out + + %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n + + - - - %msg%n - - + + + %msg%n + + - - - + + + - - - + + + - \ No newline at end of file + diff --git a/minimesos/src/main/resources/marathon/elasticsearch.json b/minimesos/src/main/resources/marathon/elasticsearch.json index 1ff03ec2..a4e52f12 100644 --- a/minimesos/src/main/resources/marathon/elasticsearch.json +++ b/minimesos/src/main/resources/marathon/elasticsearch.json @@ -1,16 +1,21 @@ { "id": "elasticsearch-mesos-scheduler", "container": { - "docker": { - "image": "mesos/elasticsearch-scheduler", - "network": "BRIDGE" - } + "docker": { + "image": "mesos/elasticsearch-scheduler", + "network": "BRIDGE" + } }, - "args": ["--zookeeperMesosUrl", "{{MINIMESOS_ZOOKEEPER}}", "--useIpAddress", "true"], + "args": [ + "--zookeeperMesosUrl", + "{{MINIMESOS_ZOOKEEPER}}", + "--useIpAddress", + "true" + ], "cpus": 0.2, "mem": 512.0, "env": { - "JAVA_OPTS": "-Xms128m -Xmx256m" + "JAVA_OPTS": "-Xms128m -Xmx256m" }, "instances": 1 -} \ No newline at end of file +} diff --git a/minimesos/src/main/resources/marathon/mesos-consul.json b/minimesos/src/main/resources/marathon/mesos-consul.json index 7a70fc9b..6aa3ea0b 100644 --- a/minimesos/src/main/resources/marathon/mesos-consul.json +++ b/minimesos/src/main/resources/marathon/mesos-consul.json @@ -1,18 +1,18 @@ { "args": [ - "--zk={{MINIMESOS_ZOOKEEPER}}", - "--consul=1", - "--consul-ip={{MINIMESOS_CONSUL_IP}}" + "--zk={{MINIMESOS_ZOOKEEPER}}", + "--consul=1", + "--consul-ip={{MINIMESOS_CONSUL_IP}}" ], "container": { - "type": "DOCKER", - "docker": { - "network": "BRIDGE", - "image": "containersol/mesos-consul:latest" - } + "type": "DOCKER", + "docker": { + "network": "BRIDGE", + "image": "containersol/mesos-consul:latest" + } }, "id": "mesos-consul", "instances": 1, "cpus": 0.1, "mem": 256 -} \ No newline at end of file +} diff --git a/minimesos/src/test/groovy/com/containersol/minimesos/config/AgentResourcesConfigTest.groovy b/minimesos/src/test/groovy/com/containersol/minimesos/config/AgentResourcesConfigTest.groovy index ca44f27a..d8088121 100644 --- a/minimesos/src/test/groovy/com/containersol/minimesos/config/AgentResourcesConfigTest.groovy +++ b/minimesos/src/test/groovy/com/containersol/minimesos/config/AgentResourcesConfigTest.groovy @@ -1,8 +1,8 @@ -package com.containersol.minimesos.config; +package com.containersol.minimesos.config -import org.junit.Test; +import org.junit.Test -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; public class AgentResourcesConfigTest { @@ -61,11 +61,11 @@ public class AgentResourcesConfigTest { assertEquals("one role is expected for mem", 1, resourcesConfig.mems.size()) assertEquals("one role is expected for disk", 1, resourcesConfig.disks.size()) - assertEquals( "[9200-9200,9300-9300]", resourcesConfig.ports["testRole"].value) - assertEquals( 0.2, resourcesConfig.cpus["testRole"].value, 0.0001) - assertEquals( 256, resourcesConfig.mems["testRole"].value, 0.0001) - assertEquals( 200, resourcesConfig.disks["testRole"].value, 0.0001) + assertEquals("[9200-9200,9300-9300]", resourcesConfig.ports["testRole"].value) + assertEquals(0.2, resourcesConfig.cpus["testRole"].value, 0.0001) + assertEquals(256, resourcesConfig.mems["testRole"].value, 0.0001) + assertEquals(200, resourcesConfig.disks["testRole"].value, 0.0001) } -} \ No newline at end of file +} diff --git a/minimesos/src/test/groovy/com/containersol/minimesos/config/ConfigParserTest.groovy b/minimesos/src/test/groovy/com/containersol/minimesos/config/ConfigParserTest.groovy index 32a55ee1..1a6d629e 100644 --- a/minimesos/src/test/groovy/com/containersol/minimesos/config/ConfigParserTest.groovy +++ b/minimesos/src/test/groovy/com/containersol/minimesos/config/ConfigParserTest.groovy @@ -1,12 +1,10 @@ package com.containersol.minimesos.config import com.containersol.minimesos.MinimesosException -import org.junit.Before; -import org.junit.Test; +import org.junit.Before +import org.junit.Test -import static org.junit.Assert.assertEquals -import static org.junit.Assert.assertNotNull -import static org.junit.Assert.assertNull; +import static org.junit.Assert.* public class ConfigParserTest { @@ -121,7 +119,7 @@ public class ConfigParserTest { @Test public void testLoadTwoAgents() { - String config = """ + String config = """ minimesos { agent { } @@ -207,7 +205,7 @@ public class ConfigParserTest { ClusterConfig dsl = parser.parse(config) assertNotNull(dsl.master) assertEquals("containersol/mesos-master", dsl.master.imageName) - assertEquals( MesosContainerConfig.MESOS_IMAGE_TAG, dsl.master.imageTag) + assertEquals(MesosContainerConfig.MESOS_IMAGE_TAG, dsl.master.imageTag) } @Test diff --git a/minimesos/src/test/groovy/com/containersol/minimesos/config/ConfigWriterTest.groovy b/minimesos/src/test/groovy/com/containersol/minimesos/config/ConfigWriterTest.groovy index 4935ecf7..bc155a4e 100644 --- a/minimesos/src/test/groovy/com/containersol/minimesos/config/ConfigWriterTest.groovy +++ b/minimesos/src/test/groovy/com/containersol/minimesos/config/ConfigWriterTest.groovy @@ -3,9 +3,7 @@ package com.containersol.minimesos.config import org.junit.Before import org.junit.Test -import static org.junit.Assert.assertEquals -import static org.junit.Assert.assertNotNull -import static org.junit.Assert.fail +import static org.junit.Assert.* public class ConfigWriterTest { diff --git a/minimesos/src/test/java/com/containersol/minimesos/ConsulRegistrationTest.java b/minimesos/src/test/java/com/containersol/minimesos/ConsulRegistrationTest.java index 094fb630..45837218 100644 --- a/minimesos/src/test/java/com/containersol/minimesos/ConsulRegistrationTest.java +++ b/minimesos/src/test/java/com/containersol/minimesos/ConsulRegistrationTest.java @@ -37,7 +37,7 @@ public void testRegisterServiceWithConsul() { String ipAddress = DockerContainersUtil.getIpAddress(CLUSTER.getConsul().getContainerId()); String url = String.format("http://%s:%d/v1/catalog/service/%s", - ipAddress, ConsulConfig.CONSUL_HTTP_PORT, HelloWorldContainer.SERVICE_NAME); + ipAddress, ConsulConfig.CONSUL_HTTP_PORT, HelloWorldContainer.SERVICE_NAME); final JSONArray[] body = new JSONArray[1]; diff --git a/minimesos/src/test/java/com/containersol/minimesos/DefaultMinimumClusterTest.java b/minimesos/src/test/java/com/containersol/minimesos/DefaultMinimumClusterTest.java index 73d3bb76..90669f9a 100644 --- a/minimesos/src/test/java/com/containersol/minimesos/DefaultMinimumClusterTest.java +++ b/minimesos/src/test/java/com/containersol/minimesos/DefaultMinimumClusterTest.java @@ -3,9 +3,9 @@ import com.containersol.minimesos.cluster.MesosAgent; import com.containersol.minimesos.cluster.MesosCluster; import com.containersol.minimesos.config.AgentResourcesConfig; +import com.containersol.minimesos.docker.DockerClientFactory; import com.containersol.minimesos.docker.DockerContainersUtil; import com.containersol.minimesos.junit.MesosClusterTestRule; -import com.containersol.minimesos.docker.DockerClientFactory; import com.containersol.minimesos.util.ResourceUtil; import com.github.dockerjava.api.command.InspectContainerResponse; import com.github.dockerjava.api.model.ExposedPort; @@ -18,7 +18,6 @@ import org.junit.ClassRule; import org.junit.Test; -import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.Map; diff --git a/minimesos/src/test/java/com/containersol/minimesos/ExposedPortsTest.java b/minimesos/src/test/java/com/containersol/minimesos/ExposedPortsTest.java index a93ce9ae..c72eb39b 100644 --- a/minimesos/src/test/java/com/containersol/minimesos/ExposedPortsTest.java +++ b/minimesos/src/test/java/com/containersol/minimesos/ExposedPortsTest.java @@ -21,6 +21,6 @@ public void testLoadCluster() { MesosCluster cluster = MesosCluster.loadCluster(clusterId, new MesosClusterContainersFactory()); assertTrue("Deserialize cluster is expected to remember exposed ports setting", cluster.isExposedHostPorts()); - } + } } diff --git a/minimesos/src/test/java/com/containersol/minimesos/HelloWorldContainer.java b/minimesos/src/test/java/com/containersol/minimesos/HelloWorldContainer.java index 77c72914..6ee00dd7 100644 --- a/minimesos/src/test/java/com/containersol/minimesos/HelloWorldContainer.java +++ b/minimesos/src/test/java/com/containersol/minimesos/HelloWorldContainer.java @@ -16,7 +16,7 @@ class HelloWorldContainer extends AbstractContainer { public static final String CONTAINER_NAME_PATTERN = "^helloworld-[0-9a-f\\-]*$"; public HelloWorldContainer() { - super( new ContainerConfigBlock(HELLO_WORLD_IMAGE, "latest")); + super(new ContainerConfigBlock(HELLO_WORLD_IMAGE, "latest")); } @Override diff --git a/minimesos/src/test/java/com/containersol/minimesos/MesosClusterTest.java b/minimesos/src/test/java/com/containersol/minimesos/MesosClusterTest.java index 90a6a438..f589dc13 100644 --- a/minimesos/src/test/java/com/containersol/minimesos/MesosClusterTest.java +++ b/minimesos/src/test/java/com/containersol/minimesos/MesosClusterTest.java @@ -27,7 +27,9 @@ import java.util.List; import java.util.Map; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; public class MesosClusterTest { diff --git a/minimesos/src/test/java/com/containersol/minimesos/ParseStateJSONTest.java b/minimesos/src/test/java/com/containersol/minimesos/ParseStateJSONTest.java index abcaaf88..18f2d877 100644 --- a/minimesos/src/test/java/com/containersol/minimesos/ParseStateJSONTest.java +++ b/minimesos/src/test/java/com/containersol/minimesos/ParseStateJSONTest.java @@ -1,28 +1,29 @@ package com.containersol.minimesos; -import com.fasterxml.jackson.core.JsonParseException; -import com.fasterxml.jackson.databind.JsonMappingException; import com.containersol.minimesos.state.Framework; import com.containersol.minimesos.state.State; +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.databind.JsonMappingException; import org.junit.Test; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; public class ParseStateJSONTest { public final String EXAMPLE_STATE_JSON = "{" + - "\"activated_slaves\": 3," + - "\"build_date\": \"2015-05-05 06:15:50\"," + - "\"build_time\": 1430806550," + - "\"build_user\": \"root\"," + - "\"completed_frameworks\": [" + + "\"activated_slaves\": 3," + + "\"build_date\": \"2015-05-05 06:15:50\"," + + "\"build_time\": 1430806550," + + "\"build_user\": \"root\"," + + "\"completed_frameworks\": [" + "" + - "]," + - "\"deactivated_slaves\": 0," + - "\"elected_time\": 1441628978.271," + - "\"failed_tasks\": 0," + - "\"finished_tasks\": 0," + - "\"flags\": {" + + "]," + + "\"deactivated_slaves\": 0," + + "\"elected_time\": 1441628978.271," + + "\"failed_tasks\": 0," + + "\"finished_tasks\": 0," + + "\"flags\": {" + "\"allocation_interval\": \"1secs\"," + "\"authenticate\": \"false\"," + "\"authenticate_slaves\": \"false\"," + @@ -51,243 +52,243 @@ public class ParseStateJSONTest { "\"work_dir\": \"\\/var\\/lib\\/mesos\"," + "\"zk\": \"zk:\\/\\/localhost:2181\\/mesos\"," + "\"zk_session_timeout\": \"10secs\"" + - "}," + - "\"frameworks\": [" + + "}," + + "\"frameworks\": [" + + "{" + + "\"active\": true," + + "\"checkpoint\": true," + + "\"completed_tasks\": [" + + "" + + "]," + + "\"failover_timeout\": 2592000," + + "\"hostname\": \"0f43d2f7606a\"," + + "\"id\": \"20150907-122934-3858764204-5050-23-0000\"," + + "\"name\": \"elasticsearch\"," + + "\"offered_resources\": {" + + "\"cpus\": 0," + + "\"disk\": 0," + + "\"mem\": 0" + + "}," + + "\"offers\": [" + + "" + + "]," + + "\"registered_time\": 1441629007.9145," + + "\"resources\": {" + + "\"cpus\": 3," + + "\"disk\": 3072," + + "\"mem\": 768," + + "\"ports\": \"[9200-9202, 9300-9302]\"" + + "}," + + "\"role\": \"*\"," + + "\"tasks\": [" + + "{" + + "\"discovery\": {" + + "\"ports\": {" + + "\"ports\": [" + + "{" + + "\"name\": \"CLIENT_PORT\"," + + "\"number\": 9200" + + "}," + + "{" + + "\"name\": \"TRANSPORT_PORT\"," + + "\"number\": 9300" + + "}" + + "]" + + "}," + + "\"visibility\": \"EXTERNAL\"" + + "}," + + "\"executor_id\": \"29deeca9-0f28-4df7-af1d-14ae790044f6\"," + + "\"framework_id\": \"20150907-122934-3858764204-5050-23-0000\"," + + "\"id\": \"elasticsearch_slave1_20150907T123008.379Z\"," + + "\"labels\": [" + + "" + + "]," + + "\"name\": \"esdemo\"," + + "\"resources\": {" + + "\"cpus\": 1," + + "\"disk\": 1024," + + "\"mem\": 256," + + "\"ports\": \"[9200-9200, 9300-9300]\"" + + "}," + + "\"slave_id\": \"20150907-122934-3858764204-5050-23-S1\"," + + "\"state\": \"TASK_RUNNING\"," + + "\"statuses\": [" + + "{" + + "\"state\": \"TASK_STARTING\"," + + "\"timestamp\": 1441629015.6595" + + "}," + + "{" + + "\"state\": \"TASK_RUNNING\"," + + "\"timestamp\": 1441629278.4553" + + "}" + + "]" + + "}," + + "{" + + "\"discovery\": {" + + "\"ports\": {" + + "\"ports\": [" + + "{" + + "\"name\": \"CLIENT_PORT\"," + + "\"number\": 9202" + + "}," + + "{" + + "\"name\": \"TRANSPORT_PORT\"," + + "\"number\": 9302" + + "}" + + "]" + + "}," + + "\"visibility\": \"EXTERNAL\"" + + "}," + + "\"executor_id\": \"ec8dee06-4176-4d7e-b5e1-9e6f1f8b5fdf\"," + + "\"framework_id\": \"20150907-122934-3858764204-5050-23-0000\"," + + "\"id\": \"elasticsearch_slave3_20150907T123008.294Z\"," + + "\"labels\": [" + + "" + + "]," + + "\"name\": \"esdemo\"," + + "\"resources\": {" + + "\"cpus\": 1," + + "\"disk\": 1024," + + "\"mem\": 256," + + "\"ports\": \"[9202-9202, 9302-9302]\"" + + "}," + + "\"slave_id\": \"20150907-122934-3858764204-5050-23-S0\"," + + "\"state\": \"TASK_RUNNING\"," + + "\"statuses\": [" + + "{" + + "\"state\": \"TASK_STARTING\"," + + "\"timestamp\": 1441629015.3181" + + "}," + + "{" + + "\"state\": \"TASK_RUNNING\"," + + "\"timestamp\": 1441629278.3756" + + "}" + + "]" + + "}," + + "{" + + "\"discovery\": {" + + "\"ports\": {" + + "\"ports\": [" + "{" + - "\"active\": true," + - "\"checkpoint\": true," + - "\"completed_tasks\": [" + - "" + - "]," + - "\"failover_timeout\": 2592000," + - "\"hostname\": \"0f43d2f7606a\"," + - "\"id\": \"20150907-122934-3858764204-5050-23-0000\"," + - "\"name\": \"elasticsearch\"," + - "\"offered_resources\": {" + - "\"cpus\": 0," + - "\"disk\": 0," + - "\"mem\": 0" + - "}," + - "\"offers\": [" + - "" + - "]," + - "\"registered_time\": 1441629007.9145," + - "\"resources\": {" + - "\"cpus\": 3," + - "\"disk\": 3072," + - "\"mem\": 768," + - "\"ports\": \"[9200-9202, 9300-9302]\"" + - "}," + - "\"role\": \"*\"," + - "\"tasks\": [" + - "{" + - "\"discovery\": {" + - "\"ports\": {" + - "\"ports\": [" + - "{" + - "\"name\": \"CLIENT_PORT\"," + - "\"number\": 9200" + - "}," + - "{" + - "\"name\": \"TRANSPORT_PORT\"," + - "\"number\": 9300" + - "}" + - "]" + - "}," + - "\"visibility\": \"EXTERNAL\"" + - "}," + - "\"executor_id\": \"29deeca9-0f28-4df7-af1d-14ae790044f6\"," + - "\"framework_id\": \"20150907-122934-3858764204-5050-23-0000\"," + - "\"id\": \"elasticsearch_slave1_20150907T123008.379Z\"," + - "\"labels\": [" + - "" + - "]," + - "\"name\": \"esdemo\"," + - "\"resources\": {" + - "\"cpus\": 1," + - "\"disk\": 1024," + - "\"mem\": 256," + - "\"ports\": \"[9200-9200, 9300-9300]\"" + - "}," + - "\"slave_id\": \"20150907-122934-3858764204-5050-23-S1\"," + - "\"state\": \"TASK_RUNNING\"," + - "\"statuses\": [" + - "{" + - "\"state\": \"TASK_STARTING\"," + - "\"timestamp\": 1441629015.6595" + - "}," + - "{" + - "\"state\": \"TASK_RUNNING\"," + - "\"timestamp\": 1441629278.4553" + - "}" + - "]" + - "}," + - "{" + - "\"discovery\": {" + - "\"ports\": {" + - "\"ports\": [" + - "{" + - "\"name\": \"CLIENT_PORT\"," + - "\"number\": 9202" + - "}," + - "{" + - "\"name\": \"TRANSPORT_PORT\"," + - "\"number\": 9302" + - "}" + - "]" + - "}," + - "\"visibility\": \"EXTERNAL\"" + - "}," + - "\"executor_id\": \"ec8dee06-4176-4d7e-b5e1-9e6f1f8b5fdf\"," + - "\"framework_id\": \"20150907-122934-3858764204-5050-23-0000\"," + - "\"id\": \"elasticsearch_slave3_20150907T123008.294Z\"," + - "\"labels\": [" + - "" + - "]," + - "\"name\": \"esdemo\"," + - "\"resources\": {" + - "\"cpus\": 1," + - "\"disk\": 1024," + - "\"mem\": 256," + - "\"ports\": \"[9202-9202, 9302-9302]\"" + - "}," + - "\"slave_id\": \"20150907-122934-3858764204-5050-23-S0\"," + - "\"state\": \"TASK_RUNNING\"," + - "\"statuses\": [" + - "{" + - "\"state\": \"TASK_STARTING\"," + - "\"timestamp\": 1441629015.3181" + - "}," + - "{" + - "\"state\": \"TASK_RUNNING\"," + - "\"timestamp\": 1441629278.3756" + - "}" + - "]" + - "}," + - "{" + - "\"discovery\": {" + - "\"ports\": {" + - "\"ports\": [" + - "{" + - "\"name\": \"CLIENT_PORT\"," + - "\"number\": 9201" + - "}," + - "{" + - "\"name\": \"TRANSPORT_PORT\"," + - "\"number\": 9301" + - "}" + - "]" + - "}," + - "\"visibility\": \"EXTERNAL\"" + - "}," + - "\"executor_id\": \"5aa2fc1d-6ad5-4710-9f47-1f9ddcf01ecb\"," + - "\"framework_id\": \"20150907-122934-3858764204-5050-23-0000\"," + - "\"id\": \"elasticsearch_slave2_20150907T123008.041Z\"," + - "\"labels\": [" + - "" + - "]," + - "\"name\": \"esdemo\"," + - "\"resources\": {" + - "\"cpus\": 1," + - "\"disk\": 1024," + - "\"mem\": 256," + - "\"ports\": \"[9201-9201, 9301-9301]\"" + - "}," + - "\"slave_id\": \"20150907-122934-3858764204-5050-23-S2\"," + - "\"state\": \"TASK_RUNNING\"," + - "\"statuses\": [" + - "{" + - "\"state\": \"TASK_STARTING\"," + - "\"timestamp\": 1441629015.8581" + - "}," + - "{" + - "\"state\": \"TASK_RUNNING\"," + - "\"timestamp\": 1441629278.2919" + - "}" + - "]" + - "}" + - "]," + - "\"unregistered_time\": 0," + - "\"used_resources\": {" + - "\"cpus\": 3," + - "\"disk\": 3072," + - "\"mem\": 768," + - "\"ports\": \"[9200-9202, 9300-9302]\"" + - "}," + - "\"user\": \"root\"," + - "\"webui_url\": \"http:\\/\\/0f43d2f7606a:31100\"" + + "\"name\": \"CLIENT_PORT\"," + + "\"number\": 9201" + + "}," + + "{" + + "\"name\": \"TRANSPORT_PORT\"," + + "\"number\": 9301" + "}" + - "]," + - "\"git_sha\": \"d6309f92a7f9af3ab61a878403e3d9c284ea87e0\"," + - "\"git_tag\": \"0.22.1\"," + - "\"hostname\": \"d3666e54bf39\"," + - "\"id\": \"20150907-122934-3858764204-5050-23\"," + - "\"killed_tasks\": 0," + - "\"leader\": \"master@172.17.0.230:5050\"," + - "\"log_dir\": \"\\/var\\/log\"," + - "\"lost_tasks\": 0," + - "\"orphan_tasks\": [" + + "]" + + "}," + + "\"visibility\": \"EXTERNAL\"" + + "}," + + "\"executor_id\": \"5aa2fc1d-6ad5-4710-9f47-1f9ddcf01ecb\"," + + "\"framework_id\": \"20150907-122934-3858764204-5050-23-0000\"," + + "\"id\": \"elasticsearch_slave2_20150907T123008.041Z\"," + + "\"labels\": [" + "" + - "]," + - "\"pid\": \"master@172.17.0.230:5050\"," + - "\"slaves\": [" + + "]," + + "\"name\": \"esdemo\"," + + "\"resources\": {" + + "\"cpus\": 1," + + "\"disk\": 1024," + + "\"mem\": 256," + + "\"ports\": \"[9201-9201, 9301-9301]\"" + + "}," + + "\"slave_id\": \"20150907-122934-3858764204-5050-23-S2\"," + + "\"state\": \"TASK_RUNNING\"," + + "\"statuses\": [" + "{" + - "\"active\": true," + - "\"attributes\": {" + - "" + - "}," + - "\"hostname\": \"slave2\"," + - "\"id\": \"20150907-122934-3858764204-5050-23-S2\"," + - "\"pid\": \"slave(1)@172.17.0.230:5052\"," + - "\"registered_time\": 1441628979.0617," + - "\"resources\": {" + - "\"cpus\": 3," + - "\"disk\": 13483," + - "\"mem\": 4936," + - "\"ports\": \"[9201-9201, 9301-9301]\"" + - "}" + + "\"state\": \"TASK_STARTING\"," + + "\"timestamp\": 1441629015.8581" + "}," + "{" + - "\"active\": true," + - "\"attributes\": {" + - "" + - "}," + - "\"hostname\": \"slave1\"," + - "\"id\": \"20150907-122934-3858764204-5050-23-S1\"," + - "\"pid\": \"slave(1)@172.17.0.230:5051\"," + - "\"registered_time\": 1441628978.5892," + - "\"resources\": {" + - "\"cpus\": 3," + - "\"disk\": 13483," + - "\"mem\": 4936," + - "\"ports\": \"[9200-9200, 9300-9300]\"" + - "}" + + "\"state\": \"TASK_RUNNING\"," + + "\"timestamp\": 1441629278.2919" + + "}" + + "]" + + "}" + + "]," + + "\"unregistered_time\": 0," + + "\"used_resources\": {" + + "\"cpus\": 3," + + "\"disk\": 3072," + + "\"mem\": 768," + + "\"ports\": \"[9200-9202, 9300-9302]\"" + + "}," + + "\"user\": \"root\"," + + "\"webui_url\": \"http:\\/\\/0f43d2f7606a:31100\"" + + "}" + + "]," + + "\"git_sha\": \"d6309f92a7f9af3ab61a878403e3d9c284ea87e0\"," + + "\"git_tag\": \"0.22.1\"," + + "\"hostname\": \"d3666e54bf39\"," + + "\"id\": \"20150907-122934-3858764204-5050-23\"," + + "\"killed_tasks\": 0," + + "\"leader\": \"master@172.17.0.230:5050\"," + + "\"log_dir\": \"\\/var\\/log\"," + + "\"lost_tasks\": 0," + + "\"orphan_tasks\": [" + + "" + + "]," + + "\"pid\": \"master@172.17.0.230:5050\"," + + "\"slaves\": [" + + "{" + + "\"active\": true," + + "\"attributes\": {" + + "" + + "}," + + "\"hostname\": \"slave2\"," + + "\"id\": \"20150907-122934-3858764204-5050-23-S2\"," + + "\"pid\": \"slave(1)@172.17.0.230:5052\"," + + "\"registered_time\": 1441628979.0617," + + "\"resources\": {" + + "\"cpus\": 3," + + "\"disk\": 13483," + + "\"mem\": 4936," + + "\"ports\": \"[9201-9201, 9301-9301]\"" + + "}" + "}," + "{" + - "\"active\": true," + - "\"attributes\": {" + - "" + - "}," + - "\"hostname\": \"slave3\"," + - "\"id\": \"20150907-122934-3858764204-5050-23-S0\"," + - "\"pid\": \"slave(1)@172.17.0.230:5053\"," + - "\"registered_time\": 1441628978.5096," + - "\"resources\": {" + - "\"cpus\": 3," + - "\"disk\": 13483," + - "\"mem\": 4936," + - "\"ports\": \"[9202-9202, 9302-9302]\"" + - "}" + + "\"active\": true," + + "\"attributes\": {" + + "" + + "}," + + "\"hostname\": \"slave1\"," + + "\"id\": \"20150907-122934-3858764204-5050-23-S1\"," + + "\"pid\": \"slave(1)@172.17.0.230:5051\"," + + "\"registered_time\": 1441628978.5892," + + "\"resources\": {" + + "\"cpus\": 3," + + "\"disk\": 13483," + + "\"mem\": 4936," + + "\"ports\": \"[9200-9200, 9300-9300]\"" + + "}" + + "}," + + "{" + + "\"active\": true," + + "\"attributes\": {" + + "" + + "}," + + "\"hostname\": \"slave3\"," + + "\"id\": \"20150907-122934-3858764204-5050-23-S0\"," + + "\"pid\": \"slave(1)@172.17.0.230:5053\"," + + "\"registered_time\": 1441628978.5096," + + "\"resources\": {" + + "\"cpus\": 3," + + "\"disk\": 13483," + + "\"mem\": 4936," + + "\"ports\": \"[9202-9202, 9302-9302]\"" + + "}" + "}" + - "]," + - "\"staged_tasks\": 3," + - "\"start_time\": 1441628974.9045," + - "\"started_tasks\": 3," + - "\"unregistered_frameworks\": [" + + "]," + + "\"staged_tasks\": 3," + + "\"start_time\": 1441628974.9045," + + "\"started_tasks\": 3," + + "\"unregistered_frameworks\": [" + "" + - "]," + - "\"version\": \"0.22.1\"" + - "}"; + "]," + + "\"version\": \"0.22.1\"" + + "}"; @Test public void exampleStateJSONIsParsedCorrectly() throws JsonParseException, JsonMappingException { diff --git a/minimesos/src/test/java/com/containersol/minimesos/RunTaskTest.java b/minimesos/src/test/java/com/containersol/minimesos/RunTaskTest.java index c3853d30..98c36dde 100644 --- a/minimesos/src/test/java/com/containersol/minimesos/RunTaskTest.java +++ b/minimesos/src/test/java/com/containersol/minimesos/RunTaskTest.java @@ -6,8 +6,8 @@ import com.containersol.minimesos.config.MesosAgentConfig; import com.containersol.minimesos.config.MesosContainerConfig; import com.containersol.minimesos.container.AbstractContainer; -import com.containersol.minimesos.junit.MesosClusterTestRule; import com.containersol.minimesos.docker.DockerClientFactory; +import com.containersol.minimesos.junit.MesosClusterTestRule; import com.github.dockerjava.api.command.CreateContainerCmd; import com.github.dockerjava.api.model.Frame; import com.github.dockerjava.core.command.LogContainerResultCallback; @@ -52,7 +52,7 @@ public String getRole() { @Override protected CreateContainerCmd dockerCommand() { return DockerClientFactory.build().createContainerCmd(String.format("%s:%s", MesosAgentConfig.MESOS_AGENT_IMAGE, MesosContainerConfig.MESOS_IMAGE_TAGS.get("0.25"))) - .withName( getName() ) + .withName(getName()) .withEntrypoint( "mesos-execute", "--master=" + CLUSTER.getMaster().getIpAddress() + ":5050", diff --git a/minimesos/src/test/java/com/containersol/minimesos/container/ContainerNameTest.java b/minimesos/src/test/java/com/containersol/minimesos/container/ContainerNameTest.java index d037cb98..7ccab14a 100644 --- a/minimesos/src/test/java/com/containersol/minimesos/container/ContainerNameTest.java +++ b/minimesos/src/test/java/com/containersol/minimesos/container/ContainerNameTest.java @@ -6,7 +6,9 @@ import org.junit.Before; import org.junit.Test; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; public class ContainerNameTest { private MesosCluster cluster; diff --git a/minimesos/src/test/java/com/containersol/minimesos/jdepend/JDependCyclesTest.java b/minimesos/src/test/java/com/containersol/minimesos/jdepend/JDependCyclesTest.java index 2563f0de..5ad31c1a 100644 --- a/minimesos/src/test/java/com/containersol/minimesos/jdepend/JDependCyclesTest.java +++ b/minimesos/src/test/java/com/containersol/minimesos/jdepend/JDependCyclesTest.java @@ -33,7 +33,7 @@ public void before() throws IOException { public void testAllPackages() { jdepend.analyze(); - assertTrue("Something is wrong with JDepend setup", jdepend.getPackages().size() > 0 ); + assertTrue("Something is wrong with JDepend setup", jdepend.getPackages().size() > 0); assertNotNull("Package " + EXPECTED_PACKAGE + " is not found. Please, check", jdepend.getPackage(EXPECTED_PACKAGE)); assertEquals("Dependency Cycles are introduced", false, jdepend.containsCycles()); diff --git a/minimesos/src/test/java/com/containersol/minimesos/main/CommandInitTest.java b/minimesos/src/test/java/com/containersol/minimesos/main/CommandInitTest.java index 25092492..08e51a35 100644 --- a/minimesos/src/test/java/com/containersol/minimesos/main/CommandInitTest.java +++ b/minimesos/src/test/java/com/containersol/minimesos/main/CommandInitTest.java @@ -4,7 +4,6 @@ import com.containersol.minimesos.cluster.MesosCluster; import com.containersol.minimesos.config.ClusterConfig; import org.apache.commons.io.FileUtils; - import org.junit.Before; import org.junit.Test; diff --git a/minimesos/src/test/java/com/containersol/minimesos/main/CommandUpTest.java b/minimesos/src/test/java/com/containersol/minimesos/main/CommandUpTest.java index e6cc901c..809586b4 100644 --- a/minimesos/src/test/java/com/containersol/minimesos/main/CommandUpTest.java +++ b/minimesos/src/test/java/com/containersol/minimesos/main/CommandUpTest.java @@ -10,8 +10,8 @@ import java.io.IOException; -import static org.junit.Assert.*; - +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; diff --git a/minimesos/src/test/java/com/containersol/minimesos/main/MainTest.java b/minimesos/src/test/java/com/containersol/minimesos/main/MainTest.java index 74beff1e..5654184b 100644 --- a/minimesos/src/test/java/com/containersol/minimesos/main/MainTest.java +++ b/minimesos/src/test/java/com/containersol/minimesos/main/MainTest.java @@ -8,7 +8,9 @@ import java.io.PrintStream; import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.*; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.verify; public class MainTest { @@ -101,7 +103,7 @@ public void testMinusMinusHelp() throws IOException { public void testInstallNoParameters() throws IOException { main.run(new String[]{"install"}); String output = outputStream.toString(); - assertTrue( output.contains("Usage: install [options]") ); + assertTrue(output.contains("Usage: install [options]")); } @Test @@ -112,12 +114,12 @@ public void testHelp() throws IOException { } private static void assertUsageText(String output) { - assertTrue( output.contains("Usage: minimesos [options] [command] [command options]") ); - assertTrue( output.contains("Options:") ); - assertTrue( output.contains("Commands:") ); - assertTrue( output.contains("Usage: up [options]") ); - assertTrue( output.contains("Usage: install [options]") ); - assertTrue( output.contains("Usage: state [options]") ); + assertTrue(output.contains("Usage: minimesos [options] [command] [command options]")); + assertTrue(output.contains("Options:")); + assertTrue(output.contains("Commands:")); + assertTrue(output.contains("Usage: up [options]")); + assertTrue(output.contains("Usage: install [options]")); + assertTrue(output.contains("Usage: state [options]")); } } diff --git a/minimesos/src/test/java/com/containersol/minimesos/mesos/ClusterArchitectureTest.java b/minimesos/src/test/java/com/containersol/minimesos/mesos/ClusterArchitectureTest.java index a2860270..ea4967aa 100644 --- a/minimesos/src/test/java/com/containersol/minimesos/mesos/ClusterArchitectureTest.java +++ b/minimesos/src/test/java/com/containersol/minimesos/mesos/ClusterArchitectureTest.java @@ -1,6 +1,10 @@ package com.containersol.minimesos.mesos; -import com.containersol.minimesos.cluster.*; +import com.containersol.minimesos.cluster.ClusterProcess; +import com.containersol.minimesos.cluster.Filter; +import com.containersol.minimesos.cluster.MesosAgent; +import com.containersol.minimesos.cluster.MesosMaster; +import com.containersol.minimesos.cluster.ZooKeeper; import org.junit.Test; import static org.junit.Assert.assertEquals; @@ -21,12 +25,12 @@ public void shouldAllowDefaultArchitecture() { assertTrue(clusterArchitecture.getClusterContainers().getContainers().stream().filter(Filter.mesosAgent()).findFirst().isPresent()); } - @Test( expected = ClusterArchitecture.MesosArchitectureException.class) + @Test(expected = ClusterArchitecture.MesosArchitectureException.class) public void shouldErrorIfNoZooKeeperIsPresentAndMasterAdded() { new ClusterArchitecture.Builder().withMaster(); } - @Test( expected = ClusterArchitecture.MesosArchitectureException.class) + @Test(expected = ClusterArchitecture.MesosArchitectureException.class) public void shouldErrorIfNoZooKeeperIsPresentAndAgentAdded() { new ClusterArchitecture.Builder().withAgent(); } @@ -79,4 +83,4 @@ public void plainContainerOrderingShouldNotMatter() { private int minimumViableClusterSize() { return new ClusterArchitecture.Builder().build().getClusterContainers().getContainers().size(); } -} \ No newline at end of file +} diff --git a/minimesos/src/test/java/com/containersol/minimesos/mesos/ClusterContainersTest.java b/minimesos/src/test/java/com/containersol/minimesos/mesos/ClusterContainersTest.java index 89e9c8eb..46c2125a 100644 --- a/minimesos/src/test/java/com/containersol/minimesos/mesos/ClusterContainersTest.java +++ b/minimesos/src/test/java/com/containersol/minimesos/mesos/ClusterContainersTest.java @@ -1,6 +1,10 @@ package com.containersol.minimesos.mesos; -import com.containersol.minimesos.cluster.*; +import com.containersol.minimesos.cluster.ClusterProcess; +import com.containersol.minimesos.cluster.Filter; +import com.containersol.minimesos.cluster.MesosAgent; +import com.containersol.minimesos.cluster.MesosMaster; +import com.containersol.minimesos.cluster.ZooKeeper; import org.junit.Test; import java.util.ArrayList; @@ -54,4 +58,4 @@ public void shouldFilterMesosAgent() { assertTrue(clusterContainers.isPresent(Filter.mesosAgent())); } -} \ No newline at end of file +} diff --git a/minimesos/src/test/java/com/containersol/minimesos/mesos/ClusterUtilTest.java b/minimesos/src/test/java/com/containersol/minimesos/mesos/ClusterUtilTest.java index 49c9b792..4b2a4996 100644 --- a/minimesos/src/test/java/com/containersol/minimesos/mesos/ClusterUtilTest.java +++ b/minimesos/src/test/java/com/containersol/minimesos/mesos/ClusterUtilTest.java @@ -3,7 +3,7 @@ import com.containersol.minimesos.cluster.MesosAgent; import org.junit.Test; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.mock; /** @@ -22,4 +22,4 @@ public void shouldBeAbleToAddCustomAgents() { ClusterArchitecture.Builder builder = ClusterUtil.withAgent(3, zk -> mock); assertEquals(3 + 1 + 1, builder.build().getClusterContainers().getContainers().size()); } -} \ No newline at end of file +} diff --git a/minimesos/src/test/java/com/containersol/minimesos/mesos/MesosAgentTest.java b/minimesos/src/test/java/com/containersol/minimesos/mesos/MesosAgentTest.java index cfd07243..f48c8a97 100644 --- a/minimesos/src/test/java/com/containersol/minimesos/mesos/MesosAgentTest.java +++ b/minimesos/src/test/java/com/containersol/minimesos/mesos/MesosAgentTest.java @@ -1,7 +1,6 @@ package com.containersol.minimesos.mesos; import com.containersol.minimesos.MinimesosException; -import com.containersol.minimesos.cluster.MesosAgent; import com.containersol.minimesos.cluster.ZooKeeper; import com.containersol.minimesos.config.MesosAgentConfig; import org.junit.Test; diff --git a/minimesos/src/test/resources/clusterconfig/two-agents.groovy b/minimesos/src/test/resources/clusterconfig/two-agents.groovy index 4124ecb5..154d42a2 100644 --- a/minimesos/src/test/resources/clusterconfig/two-agents.groovy +++ b/minimesos/src/test/resources/clusterconfig/two-agents.groovy @@ -4,11 +4,11 @@ minimesos { agent { resources { cpu { - role = "*" + role = "*" value = 2 } mem { - role = "*" + role = "*" value = 1024 } disk { @@ -19,4 +19,4 @@ minimesos { } agent { } -} \ No newline at end of file +}