Skip to content

Commit e46802c

Browse files
authored
release 0.1.0.beta.1.7 (#101)
* 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
1 parent dddb503 commit e46802c

18 files changed

Lines changed: 291 additions & 86 deletions

File tree

.gitignore

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,14 @@ target/
55
target/
66
/.target
77
dependency-reduced-pom.xml
8+
pom.xml.tag
9+
pom.xml.releaseBackup
10+
pom.xml.versionsBackup
11+
pom.xml.next
12+
release.properties
13+
dependency-reduced-pom.xml
14+
buildNumber.properties
15+
.mvn/timing.properties
16+
17+
# Exclude maven wrapper
18+
!/.mvn/wrapper/maven-wrapper.jar

JobProxyChronos/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<artifactId>JobProxy</artifactId>
77
<groupId>de.unibi.cebitec.bibiserv</groupId>
8-
<version>beta.1.2.release</version>
8+
<version>0.1.0.beta.1.7</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
1111

@@ -14,7 +14,7 @@
1414
<dependency>
1515
<groupId>de.unibi.cebitec.bibiserv</groupId>
1616
<artifactId>JobProxyModel</artifactId>
17-
<version>beta.1.2.release</version>
17+
<version>${project.version}</version>
1818
</dependency>
1919
<dependency>
2020
<groupId>com.fasterxml.jackson.dataformat</groupId>

JobProxyDRMAA/pom.xml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,9 @@
44
<parent>
55
<groupId>de.unibi.cebitec.bibiserv</groupId>
66
<artifactId>JobProxy</artifactId>
7-
<version>beta.1.2.release</version>
7+
<version>0.1.0.beta.1.7</version>
88
</parent>
99
<artifactId>JobProxyDRMAA</artifactId>
10-
<packaging>jar</packaging>
1110
<dependencies>
1211
<dependency>
1312
<groupId>${project.groupId}</groupId>
@@ -20,4 +19,4 @@
2019
<version>6.2u5</version>
2120
</dependency>
2221
</dependencies>
23-
</project>
22+
</project>
Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,25 +5,20 @@
55
<parent>
66
<artifactId>JobProxy</artifactId>
77
<groupId>de.unibi.cebitec.bibiserv</groupId>
8-
<version>beta.1.2.release</version>
8+
<version>0.1.0.beta.1.7</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
11-
<artifactId>JobProxyJavaDocker</artifactId>
11+
<artifactId>JobProxyLocal</artifactId>
1212
<dependencies>
1313
<dependency>
1414
<groupId>de.unibi.cebitec.bibiserv</groupId>
1515
<artifactId>JobProxyModel</artifactId>
16-
<version>beta.1.2.release</version>
16+
<version>${project.version}</version>
1717
</dependency>
1818
<dependency>
1919
<groupId>com.spotify</groupId>
2020
<artifactId>docker-client</artifactId>
2121
<version>5.0.2</version>
2222
</dependency>
23-
<dependency>
24-
<groupId>com.google.guava</groupId>
25-
<artifactId>guava</artifactId>
26-
<version>19.0</version>
27-
</dependency>
2823
</dependencies>
2924
</project>

JobProxyJavaDocker/src/main/java/de/unibi/cebitec/bibiserv/jobproxy/javadocker/JavaDocker.java renamed to JobProxyLocal/src/main/java/de/unibi/cebitec/bibiserv/jobproxy/local/Local.java

Lines changed: 43 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
package de.unibi.cebitec.bibiserv.jobproxy.javadocker;
1+
package de.unibi.cebitec.bibiserv.jobproxy.local;
22

33
import com.spotify.docker.client.DefaultDockerClient;
4+
import com.spotify.docker.client.DockerClient;
45
import com.spotify.docker.client.exceptions.DockerException;
56
import com.spotify.docker.client.messages.*;
67
import de.unibi.cebitec.bibiserv.jobproxy.model.JobProxyInterface;
@@ -12,24 +13,22 @@
1213
import de.unibi.cebitec.bibiserv.jobproxy.model.task.Task;
1314

1415

15-
import java.util.Arrays;
16+
import java.io.IOException;
1617
import java.util.List;
1718
import java.util.Properties;
1819
import java.util.stream.Collectors;
1920

2021

21-
public class JavaDocker extends JobProxyInterface {
22+
public class Local extends JobProxyInterface {
2223

2324
private final DefaultDockerClient dockerClient;
2425

25-
public JavaDocker(Properties properties) {
26+
public Local(Properties properties) {
2627
super(properties);
2728
dockerClient = new DefaultDockerClient("unix:///var/run/docker.sock");
2829
}
2930

30-
@Override
31-
public String addTask(Task task) throws FrameworkException {
32-
31+
private String handleDockerTask(Task task){
3332
HostConfig.Builder hostConfigBuilder = HostConfig.builder();
3433

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

84+
private String handleLocalCommand(Task task) throws FrameworkException {
85+
try {
86+
Runtime.getRuntime().exec(task.getCmd());
87+
} catch (IOException e) {
88+
e.printStackTrace();
89+
throw new FrameworkException(e.getMessage());
90+
}
91+
return "";
92+
}
93+
94+
@Override
95+
public String addTask(Task task) throws FrameworkException {
96+
97+
if (task.getContainer() == null) {
98+
return handleLocalCommand(task);
99+
} else {
100+
return handleDockerTask(task);
101+
}
102+
}
103+
104+
85105
@Override
86106
public Task getTask(String id) throws FrameworkException {
87107

@@ -128,7 +148,6 @@ public Task getTask(String id) throws FrameworkException {
128148
tmounts.setMount(mount);
129149
container.getMounts().add(tmounts);
130150
});
131-
132151
task.setContainer(container);
133152

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

151170
@Override
152171
public State getState(String id) throws FrameworkException {
153-
ExecState inspect;
172+
ContainerInfo container;
154173
try {
155-
inspect = dockerClient.execInspect(id);
174+
container = dockerClient.inspectContainer(id);
156175
} catch (DockerException e) {
157176
e.printStackTrace();
158177
throw new FrameworkException(e.getMessage());
@@ -161,24 +180,27 @@ public State getState(String id) throws FrameworkException {
161180
throw new FrameworkException(e.getMessage());
162181
}
163182
State state = new State();
164-
state.setId(inspect.container().id());
165-
if (!inspect.running()) {
166-
state.setCode(String.valueOf(inspect.exitCode()));
183+
state.setId(container.id());
184+
state.setDescription(container.name());
185+
186+
if (!container.state().running()) {
187+
state.setCode(String.valueOf(container.state().exitCode()));
167188
}
168-
state.setDescription(inspect.container().name());
189+
state.setDescription(container.name());
169190
return state;
170191
}
171192

172193
@Override
173194
public States getState() throws FrameworkException {
174195
States states = new States();
175196
try {
176-
List<Container> containers = dockerClient.listContainers();
197+
List<Container> containers = dockerClient.listContainers(DockerClient.ListContainersParam.allContainers());
177198
for (Container container : containers) {
178199
states.getState().add(getState(container.id()));
179200
}
180201
} catch (FrameworkException e) {
181-
202+
e.printStackTrace();
203+
throw new FrameworkException(e.getMessage());
182204
} catch (DockerException e) {
183205
e.printStackTrace();
184206
throw new FrameworkException(e.getMessage());
@@ -191,12 +213,15 @@ public States getState() throws FrameworkException {
191213

192214
@Override
193215
public String getName() {
194-
return "JavaDocker";
216+
return "JobProxyLocal";
195217
}
196218

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

JobProxyModel/pom.xml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<artifactId>JobProxy</artifactId>
77
<groupId>de.unibi.cebitec.bibiserv</groupId>
8-
<version>beta.1.2.release</version>
8+
<version>0.1.0.beta.1.7</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
1111

@@ -32,6 +32,12 @@
3232
<groupId>org.glassfish.jersey.core</groupId>
3333
<artifactId>jersey-client</artifactId>
3434
<version>2.23.1</version>
35+
<exclusions>
36+
<exclusion>
37+
<groupId>org.javassist</groupId>
38+
<artifactId>javassist</artifactId>
39+
</exclusion>
40+
</exclusions>
3541
</dependency>
3642
<dependency>
3743
<groupId>org.glassfish.jersey.ext</groupId>

JobProxyModel/src/main/java/de/unibi/cebitec/bibiserv/jobproxy/model/JobProxyFactory.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,10 @@
66
import java.util.Map;
77
import java.util.Properties;
88
import java.util.Set;
9+
910
import org.reflections.Reflections;
11+
import org.slf4j.Logger;
12+
import org.slf4j.LoggerFactory;
1013

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

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

2226
static {
2327
Reflections reflections = new Reflections("de.unibi.cebitec.bibiserv.jobproxy");
@@ -71,17 +75,17 @@ public static JobProxyInterface getFramework(String name, Properties properties)
7175
framework = FRAMEWORKS.get(name).getConstructor(Properties.class).newInstance(properties);
7276
return framework;
7377
}
74-
throw new FrameworkException("Unknown framework '"+name+"'!");
78+
throw new FrameworkException("Unknown framework '"+name+"'!");
7579
} catch (NoSuchMethodException | InstantiationException | IllegalAccessException e) {
7680
throw new FrameworkException("Error instantiating framework '"+name+"'!",e);
7781
} catch (InvocationTargetException e) {
7882
throw new FrameworkException("InvocationTargetException while instantiating framework '"+name+"'!");
7983
}
8084
}
8185

82-
/**
86+
/**
8387
* Return a set of found FRAMEWORKS.
84-
* @return
88+
* @return
8589
*/
8690
public static Set<String> list() {
8791
return FRAMEWORKS.keySet();

JobProxyModel/src/main/java/de/unibi/cebitec/bibiserv/jobproxy/model/rest/Delete.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ public class Delete {
4646

4747
@DELETE
4848
@Path("/{id}")
49-
@Consumes({MediaType.TEXT_PLAIN})
5049
public void delete(@PathParam("id")String id){
5150
try {
5251
JobProxyFactory.getFramework().delTask(id);

JobProxyServer/pom.xml

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>de.unibi.cebitec.bibiserv</groupId>
77
<artifactId>JobProxy</artifactId>
8-
<version>beta.1.2.release</version>
8+
<version>0.1.0.beta.1.7</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
1111

@@ -14,29 +14,39 @@
1414
<dependency>
1515
<groupId>de.unibi.cebitec.bibiserv</groupId>
1616
<artifactId>JobProxyModel</artifactId>
17-
<version>beta.1.2.release</version>
17+
<version>${project.version}</version>
18+
<exclusions>
19+
<exclusion>
20+
<artifactId>jackson-core</artifactId>
21+
<groupId>com.fasterxml.jackson.core</groupId>
22+
</exclusion>
23+
<exclusion>
24+
<artifactId>guava</artifactId>
25+
<groupId>com.fasterxml.jackson.core</groupId>
26+
</exclusion>
27+
</exclusions>
1828
</dependency>
1929
<dependency>
2030
<groupId>de.unibi.cebitec.bibiserv</groupId>
2131
<artifactId>JobProxyModel</artifactId>
22-
<version>beta.1.2.release</version>
32+
<version>${project.version}</version>
2333
<type>test-jar</type>
2434
<scope>test</scope>
2535
</dependency>
2636
<dependency>
2737
<groupId>de.unibi.cebitec.bibiserv</groupId>
2838
<artifactId>JobProxyDRMAA</artifactId>
29-
<version>beta.1.2.release</version>
39+
<version>${project.version}</version>
3040
</dependency>
3141
<dependency>
3242
<groupId>de.unibi.cebitec.bibiserv</groupId>
3343
<artifactId>JobProxyChronos</artifactId>
34-
<version>beta.1.2.release</version>
44+
<version>${project.version}</version>
3545
</dependency>
3646
<dependency>
3747
<groupId>de.unibi.cebitec.bibiserv</groupId>
38-
<artifactId>JobProxyJavaDocker</artifactId>
39-
<version>beta.1.2.release</version>
48+
<artifactId>JobProxyLocal</artifactId>
49+
<version>${project.version}</version>
4050
</dependency>
4151
<dependency>
4252
<groupId>junit</groupId>

JobProxyServer/src/main/java/de/unibi/cebitec/bibiserv/jobproxy/server/JobProxyServer.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package de.unibi.cebitec.bibiserv.jobproxy.model;
1+
package de.unibi.cebitec.bibiserv.jobproxy.server;
22

33
/*
44
* Copyright 2016 Jan Krueger.
@@ -16,6 +16,8 @@
1616
* limitations under the License.
1717
*/
1818
import com.sun.net.httpserver.HttpServer;
19+
import de.unibi.cebitec.bibiserv.jobproxy.model.JobProxyFactory;
20+
import de.unibi.cebitec.bibiserv.jobproxy.model.JobProxyInterface;
1921
import de.unibi.cebitec.bibiserv.jobproxy.model.exceptions.FrameworkException;
2022
import de.unibi.cebitec.bibiserv.jobproxy.model.rest.Delete;
2123
import de.unibi.cebitec.bibiserv.jobproxy.model.rest.Ping;

0 commit comments

Comments
 (0)