Skip to content
Snippets Groups Projects
Commit 9c715737 authored by Jan Kožusznik's avatar Jan Kožusznik
Browse files

edn time and start time info

parent ba9a586f
No related branches found
No related tags found
No related merge requests found
...@@ -6,6 +6,7 @@ import java.io.OutputStream; ...@@ -6,6 +6,7 @@ import java.io.OutputStream;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.Path; import java.nio.file.Path;
import java.nio.file.StandardOpenOption; import java.nio.file.StandardOpenOption;
import java.util.Calendar;
import java.util.Collection; import java.util.Collection;
import java.util.Collections; import java.util.Collections;
import java.util.EnumSet; import java.util.EnumSet;
...@@ -13,6 +14,7 @@ import java.util.Properties; ...@@ -13,6 +14,7 @@ import java.util.Properties;
import java.util.function.Supplier; import java.util.function.Supplier;
import cz.it4i.fiji.haas_java_client.HaaSClient; import cz.it4i.fiji.haas_java_client.HaaSClient;
import cz.it4i.fiji.haas_java_client.JobInfo;
import cz.it4i.fiji.haas_java_client.JobState; import cz.it4i.fiji.haas_java_client.JobState;
public class Job { public class Job {
...@@ -41,6 +43,8 @@ public class Job { ...@@ -41,6 +43,8 @@ public class Job {
private Long jobId; private Long jobId;
private JobInfo jobInfo;
public Job(Path path, Collection<Path> files, Supplier<HaaSClient> haasClientSupplier) public Job(Path path, Collection<Path> files, Supplier<HaaSClient> haasClientSupplier)
throws IOException { throws IOException {
this(haasClientSupplier); this(haasClientSupplier);
...@@ -48,7 +52,7 @@ public class Job { ...@@ -48,7 +52,7 @@ public class Job {
long id = client.start(files, "TestOutRedirect", Collections.emptyList()); long id = client.start(files, "TestOutRedirect", Collections.emptyList());
jobDir = path.resolve("" + id); jobDir = path.resolve("" + id);
Files.createDirectory(jobDir); Files.createDirectory(jobDir);
state = client.obtainJobInfo(id).getState(); state = updateJobInfo().getState();
saveJobinfo(); saveJobinfo();
} }
...@@ -76,7 +80,7 @@ public class Job { ...@@ -76,7 +80,7 @@ public class Job {
synchronized public void updateState() throws IOException { synchronized public void updateState() throws IOException {
long jobId = getJobId(); long jobId = getJobId();
JobState actualState = haasClientSupplier.get().obtainJobInfo(jobId).getState(); JobState actualState = updateJobInfo().getState();
if (EnumSet.of(JobState.Failed, JobState.Finished, JobState.Canceled).contains(actualState) if (EnumSet.of(JobState.Failed, JobState.Finished, JobState.Canceled).contains(actualState)
&& state != actualState) { && state != actualState) {
needsDownload = true; needsDownload = true;
...@@ -84,6 +88,10 @@ public class Job { ...@@ -84,6 +88,10 @@ public class Job {
saveJobinfo(); saveJobinfo();
} }
} }
private JobInfo updateJobInfo() {
return jobInfo = haasClientSupplier.get().obtainJobInfo(getJobId());
}
synchronized public void download() { synchronized public void download() {
if(!needsDownload()) { if(!needsDownload()) {
throw new IllegalStateException("Job: " + getJobId() + " dosn't need download"); throw new IllegalStateException("Job: " + getJobId() + " dosn't need download");
...@@ -95,6 +103,8 @@ public class Job { ...@@ -95,6 +103,8 @@ public class Job {
public JobState getState() { public JobState getState() {
return state; return state;
} }
private synchronized void saveJobinfo() throws IOException { private synchronized void saveJobinfo() throws IOException {
try (OutputStream ow = Files.newOutputStream(jobDir.resolve(JOB_INFO_FILE), try (OutputStream ow = Files.newOutputStream(jobDir.resolve(JOB_INFO_FILE),
...@@ -135,4 +145,11 @@ public class Job { ...@@ -135,4 +145,11 @@ public class Job {
return Long.parseLong(path.getFileName().toString()); return Long.parseLong(path.getFileName().toString());
} }
public Calendar getStartTime() {
return jobInfo.getStartTime();
}
public Calendar getEndTime() {
return jobInfo.getEndTime();
}
} }
...@@ -3,6 +3,7 @@ package cz.it4i.fiji.haas; ...@@ -3,6 +3,7 @@ package cz.it4i.fiji.haas;
import java.io.IOException; import java.io.IOException;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.Path; import java.nio.file.Path;
import java.util.Calendar;
import java.util.Collection; import java.util.Collection;
import java.util.Iterator; import java.util.Iterator;
import java.util.LinkedList; import java.util.LinkedList;
...@@ -93,5 +94,13 @@ public class JobManager { ...@@ -93,5 +94,13 @@ public class JobManager {
public boolean needsDownload() { public boolean needsDownload() {
return job.needsDownload(); return job.needsDownload();
} }
public String getStartTime() {
return job.getStartTime().getTime().toString();
}
public String getEndTime() {
return job.getEndTime().getTime().toString();
}
} }
} }
...@@ -4,13 +4,14 @@ ...@@ -4,13 +4,14 @@
<?import javafx.scene.control.TableView?> <?import javafx.scene.control.TableView?>
<?import javafx.scene.layout.BorderPane?> <?import javafx.scene.layout.BorderPane?>
<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="730.0" xmlns="http://javafx.com/javafx/8.0.65" xmlns:fx="http://javafx.com/fxml/1" fx:controller="cz.it4i.fiji.haas.ui.CheckStatusOfHaaSController">
<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.65" xmlns:fx="http://javafx.com/fxml/1" fx:controller="cz.it4i.fiji.haas.ui.CheckStatusOfHaaSController">
<center> <center>
<TableView fx:id="jobs" prefHeight="200.0" prefWidth="200.0" BorderPane.alignment="CENTER"> <TableView fx:id="jobs" prefHeight="445.0" prefWidth="623.0" BorderPane.alignment="CENTER">
<columns> <columns>
<TableColumn prefWidth="75.0" text="Job Id" /> <TableColumn prefWidth="75.0" text="Job Id" />
<TableColumn prefWidth="145.0" text="Status" /> <TableColumn prefWidth="192.0" text="Status" />
<TableColumn prefWidth="227.0" text="Start time" />
<TableColumn prefWidth="235.0" text="End Time" />
</columns> </columns>
</TableView> </TableView>
</center> </center>
......
...@@ -44,6 +44,8 @@ public class CheckStatusOfHaaSController { ...@@ -44,6 +44,8 @@ public class CheckStatusOfHaaSController {
cm.getItems().add(download); cm.getItems().add(download);
((TableColumn<JobInfo, String>)jobs.getColumns().get(0)).setCellValueFactory(new PropertyValueFactory<JobInfo,String>("id")); ((TableColumn<JobInfo, String>)jobs.getColumns().get(0)).setCellValueFactory(new PropertyValueFactory<JobInfo,String>("id"));
((TableColumn<JobInfo, String>)jobs.getColumns().get(1)).setCellValueFactory(new P_Factory()); ((TableColumn<JobInfo, String>)jobs.getColumns().get(1)).setCellValueFactory(new P_Factory());
((TableColumn<JobInfo, String>)jobs.getColumns().get(2)).setCellValueFactory(new PropertyValueFactory<JobInfo,String>("startTime"));
((TableColumn<JobInfo, String>)jobs.getColumns().get(3)).setCellValueFactory(new PropertyValueFactory<JobInfo,String>("endTime"));
jobs.setContextMenu(cm); jobs.setContextMenu(cm);
jobs.setOnContextMenuRequested(new EventHandler<ContextMenuEvent>() { jobs.setOnContextMenuRequested(new EventHandler<ContextMenuEvent>() {
......
/Constants.java
package cz.it4i.fiji.haas_java_client;
interface Constants {
String USER_NAME = "";
String PASSWORD = "";
String EMAIL = "";
String PHONE = "";
}
\ No newline at end of file
...@@ -73,13 +73,6 @@ public class HaaSClient { ...@@ -73,13 +73,6 @@ public class HaaSClient {
} }
} }
private interface Constants {
String USER_NAME = "testuser";
String PASSWORD = "testpass";
String EMAIL = "jan.kozusznik@vsb.cz";
String PHONE = "999111000";
}
private String sessionID; private String sessionID;
private UserAndLimitationManagementWsSoap userAndLimitationManagement; private UserAndLimitationManagementWsSoap userAndLimitationManagement;
...@@ -167,6 +160,14 @@ public class HaaSClient { ...@@ -167,6 +160,14 @@ public class HaaSClient {
public JobState getState() { public JobState getState() {
return WS_STATE2STATE.get(info.getState()); return WS_STATE2STATE.get(info.getState());
} }
public java.util.Calendar getStartTime() {
return info.getStartTime();
};
public java.util.Calendar getEndTime() {
return info.getEndTime();
};
}; };
} catch (RemoteException | ServiceException e) { } catch (RemoteException | ServiceException e) {
throw new HaaSClientException(e); throw new HaaSClientException(e);
......
package cz.it4i.fiji.haas_java_client; package cz.it4i.fiji.haas_java_client;
import java.util.Calendar;
import java.util.Collection; import java.util.Collection;
public interface JobInfo { public interface JobInfo {
...@@ -8,4 +9,8 @@ public interface JobInfo { ...@@ -8,4 +9,8 @@ public interface JobInfo {
Collection<Long> getTasks(); Collection<Long> getTasks();
JobState getState(); JobState getState();
Calendar getStartTime();
Calendar getEndTime();
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment