From 9c7157379cfda3a80ac42effcaf9f885fd41435a Mon Sep 17 00:00:00 2001 From: Jan Kozusznik <jan@kozusznik.cz> Date: Thu, 16 Nov 2017 14:52:16 +0100 Subject: [PATCH] edn time and start time info --- .../src/main/java/cz/it4i/fiji/haas/Job.java | 21 +++++++++++++++++-- .../java/cz/it4i/fiji/haas/JobManager.java | 9 ++++++++ .../it4i/fiji/haas/ui/CheckStatusOfHaaS.fxml | 9 ++++---- .../haas/ui/CheckStatusOfHaaSController.java | 2 ++ .../cz/it4i/fiji/haas_java_client/.gitignore | 1 + .../haas_java_client/Constants.java.templ | 8 +++++++ .../fiji/haas_java_client/HaaSClient.java | 15 ++++++------- .../it4i/fiji/haas_java_client/JobInfo.java | 5 +++++ 8 files changed, 57 insertions(+), 13 deletions(-) create mode 100644 haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/.gitignore create mode 100644 haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/Constants.java.templ diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/Job.java b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/Job.java index f5eff4f2..895a73ed 100644 --- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/Job.java +++ b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/Job.java @@ -6,6 +6,7 @@ import java.io.OutputStream; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.StandardOpenOption; +import java.util.Calendar; import java.util.Collection; import java.util.Collections; import java.util.EnumSet; @@ -13,6 +14,7 @@ import java.util.Properties; import java.util.function.Supplier; import cz.it4i.fiji.haas_java_client.HaaSClient; +import cz.it4i.fiji.haas_java_client.JobInfo; import cz.it4i.fiji.haas_java_client.JobState; public class Job { @@ -41,6 +43,8 @@ public class Job { private Long jobId; + private JobInfo jobInfo; + public Job(Path path, Collection<Path> files, Supplier<HaaSClient> haasClientSupplier) throws IOException { this(haasClientSupplier); @@ -48,7 +52,7 @@ public class Job { long id = client.start(files, "TestOutRedirect", Collections.emptyList()); jobDir = path.resolve("" + id); Files.createDirectory(jobDir); - state = client.obtainJobInfo(id).getState(); + state = updateJobInfo().getState(); saveJobinfo(); } @@ -76,7 +80,7 @@ public class Job { synchronized public void updateState() throws IOException { 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) && state != actualState) { needsDownload = true; @@ -84,6 +88,10 @@ public class Job { saveJobinfo(); } } + + private JobInfo updateJobInfo() { + return jobInfo = haasClientSupplier.get().obtainJobInfo(getJobId()); + } synchronized public void download() { if(!needsDownload()) { throw new IllegalStateException("Job: " + getJobId() + " dosn't need download"); @@ -95,6 +103,8 @@ public class Job { public JobState getState() { return state; } + + private synchronized void saveJobinfo() throws IOException { try (OutputStream ow = Files.newOutputStream(jobDir.resolve(JOB_INFO_FILE), @@ -135,4 +145,11 @@ public class Job { return Long.parseLong(path.getFileName().toString()); } + public Calendar getStartTime() { + return jobInfo.getStartTime(); + } + + public Calendar getEndTime() { + return jobInfo.getEndTime(); + } } diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/JobManager.java b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/JobManager.java index 278df42d..e5c81b4b 100644 --- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/JobManager.java +++ b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/JobManager.java @@ -3,6 +3,7 @@ package cz.it4i.fiji.haas; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; +import java.util.Calendar; import java.util.Collection; import java.util.Iterator; import java.util.LinkedList; @@ -93,5 +94,13 @@ public class JobManager { public boolean needsDownload() { return job.needsDownload(); } + + public String getStartTime() { + return job.getStartTime().getTime().toString(); + } + + public String getEndTime() { + return job.getEndTime().getTime().toString(); + } } } diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/CheckStatusOfHaaS.fxml b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/CheckStatusOfHaaS.fxml index 7596f26b..ae249c9d 100644 --- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/CheckStatusOfHaaS.fxml +++ b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/CheckStatusOfHaaS.fxml @@ -4,13 +4,14 @@ <?import javafx.scene.control.TableView?> <?import javafx.scene.layout.BorderPane?> - -<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"> +<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"> <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> <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> </TableView> </center> diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/CheckStatusOfHaaSController.java b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/CheckStatusOfHaaSController.java index 73428a1f..48c4bdea 100644 --- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/CheckStatusOfHaaSController.java +++ b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/CheckStatusOfHaaSController.java @@ -44,6 +44,8 @@ public class CheckStatusOfHaaSController { cm.getItems().add(download); ((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(2)).setCellValueFactory(new PropertyValueFactory<JobInfo,String>("startTime")); + ((TableColumn<JobInfo, String>)jobs.getColumns().get(3)).setCellValueFactory(new PropertyValueFactory<JobInfo,String>("endTime")); jobs.setContextMenu(cm); jobs.setOnContextMenuRequested(new EventHandler<ContextMenuEvent>() { diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/.gitignore b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/.gitignore new file mode 100644 index 00000000..702c8b4d --- /dev/null +++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/.gitignore @@ -0,0 +1 @@ +/Constants.java diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/Constants.java.templ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/Constants.java.templ new file mode 100644 index 00000000..e2d5e13f --- /dev/null +++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/Constants.java.templ @@ -0,0 +1,8 @@ +package cz.it4i.fiji.haas_java_client; + +interface Constants { + String USER_NAME = ""; + String PASSWORD = ""; + String EMAIL = ""; + String PHONE = ""; +} \ No newline at end of file diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/HaaSClient.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/HaaSClient.java index d672f4f9..6f29d30e 100644 --- a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/HaaSClient.java +++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/HaaSClient.java @@ -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 UserAndLimitationManagementWsSoap userAndLimitationManagement; @@ -167,6 +160,14 @@ public class HaaSClient { public JobState 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) { throw new HaaSClientException(e); diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/JobInfo.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/JobInfo.java index ee51dea2..53231a2f 100644 --- a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/JobInfo.java +++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/JobInfo.java @@ -1,5 +1,6 @@ package cz.it4i.fiji.haas_java_client; +import java.util.Calendar; import java.util.Collection; public interface JobInfo { @@ -8,4 +9,8 @@ public interface JobInfo { Collection<Long> getTasks(); JobState getState(); + + Calendar getStartTime(); + + Calendar getEndTime(); } -- GitLab