Skip to content

Commit

Permalink
release 0.1.0.beta.1.7 (#101)
Browse files Browse the repository at this point in the history
*  continuous integration serves #59

* JobProxy Local implemented close #63

* add maven enforcer plugin close #69

* remove consumes annotation close #57

* logger level added #70

*  fix for local java docker close #87

* add batch

* fix circle configuration

* fix tests

* remove jar packaging in DRMAA

* try not to run mvn go-offline

* remove jobproxy commit

* fix(JobProxyLocal): states endpoint

*  continuous integration service #59

* JobProxy Local implemented close #63

* add maven enforcer plugin close #69

* remove consumes annotation close #57

* fix developer section for importing artifacts close #79

* test logging with logback

* feat(development): add reference to bibiserv development guide (#99)

* Fix/versioning (#100)

* feat(development): add reference to bibiserv development guide

* fix(versioning): release number fixed

* docs(versioning):  mvn version plugin usage
  • Loading branch information
pbelmann authored Jan 11, 2017
1 parent dddb503 commit e46802c
Show file tree
Hide file tree
Showing 18 changed files with 291 additions and 86 deletions.
11 changes: 11 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,14 @@ target/
target/
/.target
dependency-reduced-pom.xml
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties

# Exclude maven wrapper
!/.mvn/wrapper/maven-wrapper.jar
4 changes: 2 additions & 2 deletions JobProxyChronos/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<artifactId>JobProxy</artifactId>
<groupId>de.unibi.cebitec.bibiserv</groupId>
<version>beta.1.2.release</version>
<version>0.1.0.beta.1.7</version>
</parent>
<modelVersion>4.0.0</modelVersion>

Expand All @@ -14,7 +14,7 @@
<dependency>
<groupId>de.unibi.cebitec.bibiserv</groupId>
<artifactId>JobProxyModel</artifactId>
<version>beta.1.2.release</version>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
Expand Down
5 changes: 2 additions & 3 deletions JobProxyDRMAA/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,9 @@
<parent>
<groupId>de.unibi.cebitec.bibiserv</groupId>
<artifactId>JobProxy</artifactId>
<version>beta.1.2.release</version>
<version>0.1.0.beta.1.7</version>
</parent>
<artifactId>JobProxyDRMAA</artifactId>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
Expand All @@ -20,4 +19,4 @@
<version>6.2u5</version>
</dependency>
</dependencies>
</project>
</project>
11 changes: 3 additions & 8 deletions JobProxyJavaDocker/pom.xml → JobProxyLocal/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,20 @@
<parent>
<artifactId>JobProxy</artifactId>
<groupId>de.unibi.cebitec.bibiserv</groupId>
<version>beta.1.2.release</version>
<version>0.1.0.beta.1.7</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>JobProxyJavaDocker</artifactId>
<artifactId>JobProxyLocal</artifactId>
<dependencies>
<dependency>
<groupId>de.unibi.cebitec.bibiserv</groupId>
<artifactId>JobProxyModel</artifactId>
<version>beta.1.2.release</version>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.spotify</groupId>
<artifactId>docker-client</artifactId>
<version>5.0.2</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>19.0</version>
</dependency>
</dependencies>
</project>
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package de.unibi.cebitec.bibiserv.jobproxy.javadocker;
package de.unibi.cebitec.bibiserv.jobproxy.local;

import com.spotify.docker.client.DefaultDockerClient;
import com.spotify.docker.client.DockerClient;
import com.spotify.docker.client.exceptions.DockerException;
import com.spotify.docker.client.messages.*;
import de.unibi.cebitec.bibiserv.jobproxy.model.JobProxyInterface;
Expand All @@ -12,24 +13,22 @@
import de.unibi.cebitec.bibiserv.jobproxy.model.task.Task;


import java.util.Arrays;
import java.io.IOException;
import java.util.List;
import java.util.Properties;
import java.util.stream.Collectors;


public class JavaDocker extends JobProxyInterface {
public class Local extends JobProxyInterface {

private final DefaultDockerClient dockerClient;

public JavaDocker(Properties properties) {
public Local(Properties properties) {
super(properties);
dockerClient = new DefaultDockerClient("unix:///var/run/docker.sock");
}

@Override
public String addTask(Task task) throws FrameworkException {

private String handleDockerTask(Task task){
HostConfig.Builder hostConfigBuilder = HostConfig.builder();

task.getContainer().getMounts().forEach(mounts -> {
Expand Down Expand Up @@ -82,6 +81,27 @@ public String addTask(Task task) throws FrameworkException {
return id;
}

private String handleLocalCommand(Task task) throws FrameworkException {
try {
Runtime.getRuntime().exec(task.getCmd());
} catch (IOException e) {
e.printStackTrace();
throw new FrameworkException(e.getMessage());
}
return "";
}

@Override
public String addTask(Task task) throws FrameworkException {

if (task.getContainer() == null) {
return handleLocalCommand(task);
} else {
return handleDockerTask(task);
}
}


@Override
public Task getTask(String id) throws FrameworkException {

Expand Down Expand Up @@ -128,7 +148,6 @@ public Task getTask(String id) throws FrameworkException {
tmounts.setMount(mount);
container.getMounts().add(tmounts);
});

task.setContainer(container);

return task;
Expand All @@ -150,9 +169,9 @@ public void delTask(String id) throws FrameworkException {

@Override
public State getState(String id) throws FrameworkException {
ExecState inspect;
ContainerInfo container;
try {
inspect = dockerClient.execInspect(id);
container = dockerClient.inspectContainer(id);
} catch (DockerException e) {
e.printStackTrace();
throw new FrameworkException(e.getMessage());
Expand All @@ -161,24 +180,27 @@ public State getState(String id) throws FrameworkException {
throw new FrameworkException(e.getMessage());
}
State state = new State();
state.setId(inspect.container().id());
if (!inspect.running()) {
state.setCode(String.valueOf(inspect.exitCode()));
state.setId(container.id());
state.setDescription(container.name());

if (!container.state().running()) {
state.setCode(String.valueOf(container.state().exitCode()));
}
state.setDescription(inspect.container().name());
state.setDescription(container.name());
return state;
}

@Override
public States getState() throws FrameworkException {
States states = new States();
try {
List<Container> containers = dockerClient.listContainers();
List<Container> containers = dockerClient.listContainers(DockerClient.ListContainersParam.allContainers());
for (Container container : containers) {
states.getState().add(getState(container.id()));
}
} catch (FrameworkException e) {

e.printStackTrace();
throw new FrameworkException(e.getMessage());
} catch (DockerException e) {
e.printStackTrace();
throw new FrameworkException(e.getMessage());
Expand All @@ -191,12 +213,15 @@ public States getState() throws FrameworkException {

@Override
public String getName() {
return "JavaDocker";
return "JobProxyLocal";
}

@Override
public String help() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
return "Simple Jobproxy implementation for executing commands and docker container on the local system.\n" +
"Note!: \n " +
"Ressources for system native commands can not be restricted! This means that fields like mem,cpu and cputime are ignored\n" +
"Executed native commands are not reported by using the 'state' or 'states' endpoint.";
}
}

8 changes: 7 additions & 1 deletion JobProxyModel/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<artifactId>JobProxy</artifactId>
<groupId>de.unibi.cebitec.bibiserv</groupId>
<version>beta.1.2.release</version>
<version>0.1.0.beta.1.7</version>
</parent>
<modelVersion>4.0.0</modelVersion>

Expand All @@ -32,6 +32,12 @@
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</artifactId>
<version>2.23.1</version>
<exclusions>
<exclusion>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.ext</groupId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,10 @@
import java.util.Map;
import java.util.Properties;
import java.util.Set;

import org.reflections.Reflections;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
* Provides a list of all FRAMEWORKS found within the classpath
Expand All @@ -18,6 +21,7 @@
public class JobProxyFactory {

private static final Map<String, Class<? extends de.unibi.cebitec.bibiserv.jobproxy.model.JobProxyInterface>> FRAMEWORKS = new HashMap<>();
private static final Logger LOGGER = LoggerFactory.getLogger(JobProxyFactory.class);

static {
Reflections reflections = new Reflections("de.unibi.cebitec.bibiserv.jobproxy");
Expand Down Expand Up @@ -71,17 +75,17 @@ public static JobProxyInterface getFramework(String name, Properties properties)
framework = FRAMEWORKS.get(name).getConstructor(Properties.class).newInstance(properties);
return framework;
}
throw new FrameworkException("Unknown framework '"+name+"'!");
throw new FrameworkException("Unknown framework '"+name+"'!");
} catch (NoSuchMethodException | InstantiationException | IllegalAccessException e) {
throw new FrameworkException("Error instantiating framework '"+name+"'!",e);
} catch (InvocationTargetException e) {
throw new FrameworkException("InvocationTargetException while instantiating framework '"+name+"'!");
}
}

/**
/**
* Return a set of found FRAMEWORKS.
* @return
* @return
*/
public static Set<String> list() {
return FRAMEWORKS.keySet();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,6 @@ public class Delete {

@DELETE
@Path("/{id}")
@Consumes({MediaType.TEXT_PLAIN})
public void delete(@PathParam("id")String id){
try {
JobProxyFactory.getFramework().delTask(id);
Expand Down
24 changes: 17 additions & 7 deletions JobProxyServer/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>de.unibi.cebitec.bibiserv</groupId>
<artifactId>JobProxy</artifactId>
<version>beta.1.2.release</version>
<version>0.1.0.beta.1.7</version>
</parent>
<modelVersion>4.0.0</modelVersion>

Expand All @@ -14,29 +14,39 @@
<dependency>
<groupId>de.unibi.cebitec.bibiserv</groupId>
<artifactId>JobProxyModel</artifactId>
<version>beta.1.2.release</version>
<version>${project.version}</version>
<exclusions>
<exclusion>
<artifactId>jackson-core</artifactId>
<groupId>com.fasterxml.jackson.core</groupId>
</exclusion>
<exclusion>
<artifactId>guava</artifactId>
<groupId>com.fasterxml.jackson.core</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>de.unibi.cebitec.bibiserv</groupId>
<artifactId>JobProxyModel</artifactId>
<version>beta.1.2.release</version>
<version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>de.unibi.cebitec.bibiserv</groupId>
<artifactId>JobProxyDRMAA</artifactId>
<version>beta.1.2.release</version>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>de.unibi.cebitec.bibiserv</groupId>
<artifactId>JobProxyChronos</artifactId>
<version>beta.1.2.release</version>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>de.unibi.cebitec.bibiserv</groupId>
<artifactId>JobProxyJavaDocker</artifactId>
<version>beta.1.2.release</version>
<artifactId>JobProxyLocal</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package de.unibi.cebitec.bibiserv.jobproxy.model;
package de.unibi.cebitec.bibiserv.jobproxy.server;

/*
* Copyright 2016 Jan Krueger.
Expand All @@ -16,6 +16,8 @@
* limitations under the License.
*/
import com.sun.net.httpserver.HttpServer;
import de.unibi.cebitec.bibiserv.jobproxy.model.JobProxyFactory;
import de.unibi.cebitec.bibiserv.jobproxy.model.JobProxyInterface;
import de.unibi.cebitec.bibiserv.jobproxy.model.exceptions.FrameworkException;
import de.unibi.cebitec.bibiserv.jobproxy.model.rest.Delete;
import de.unibi.cebitec.bibiserv.jobproxy.model.rest.Ping;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package de.unibi.cebitec.bibiserv.jobproxy.model;
package de.unibi.cebitec.bibiserv.jobproxy.server;

import de.unibi.cebitec.bibiserv.jobproxy.DummyFramework;
import de.unibi.cebitec.bibiserv.jobproxy.model.exceptions.FrameworkException;
Expand Down
Loading

0 comments on commit e46802c

Please sign in to comment.