diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/CheckStatusOfHaaS.java b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/CheckStatusOfHaaS.java index 884d52fe953062315cf2382de1d2dadd1464b923..b4c6a2367e5c428b26b6e237dbc0097a8c14b70e 100644 --- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/CheckStatusOfHaaS.java +++ b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/CheckStatusOfHaaS.java @@ -17,21 +17,27 @@ import net.imagej.ImageJ; * */ @Plugin(type = Command.class, headless = true, menuPath = "Plugins>Check status of HaaS") -public class CheckStatusOfHaaS implements Command { +public class CheckStatusOfHaaS extends CommandBase implements Command { @Parameter private LogService log; + @Parameter(label="Work directory",persist=true) private File workDirectory; + @Parameter(label="Work directory",persist=true,required = false) + private File workDirectory2; + @SuppressWarnings("unused") private JobManager jobManager; + + @Override public void run() { try { - jobManager = new JobManager(getWorkingDirectoryPath()); + jobManager = new JobManager(getWorkingDirectoryPath(), getGate()); } catch (IOException e) { log.error(e); } @@ -47,7 +53,8 @@ public class CheckStatusOfHaaS implements Command { final ImageJ ij = new ImageJ(); ij.launch(args); - ij.command().run(CheckStatusOfHaaS.class, true); + //ij.command().run(CheckStatusOfHaaS.class, true); } + } diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/CommandBase.java b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/CommandBase.java new file mode 100644 index 0000000000000000000000000000000000000000..835b0ff55d0dec94d00faef60602bd7985998a17 --- /dev/null +++ b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/CommandBase.java @@ -0,0 +1,21 @@ +package cz.it4i.fiji.haas; + +import org.scijava.log.LogService; +import org.scijava.plugin.Parameter; + +class CommandBase { + @Parameter + private LogService _log; + + protected ImageJGate getGate() { + return gate; + } + + private ImageJGate gate = new ImageJGate() { + + @Override + public LogService getLog() { + return _log; + } + }; +} diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ImageJGate.java b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ImageJGate.java new file mode 100644 index 0000000000000000000000000000000000000000..1a5ce21a124b8d04d075aadc4fdbdf573f4a2bb7 --- /dev/null +++ b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ImageJGate.java @@ -0,0 +1,8 @@ +package cz.it4i.fiji.haas; + +import org.scijava.log.LogService; + +interface ImageJGate { + + LogService getLog(); +} 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 e8ed48e62526c1d549ebd5aee8979d9f7f1e8557..b85264eef33c79d6d2acf96aecd9019cb9e8a683 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 @@ -17,6 +17,8 @@ import cz.it4i.fiji.haas_java_client.JobState; public class Job { + + private static final String JOB_ID_PROPERTY = "job.id"; private static final String JOB_STATE_PROPERTY = "job.state"; @@ -32,9 +34,11 @@ public class Job { private Supplier<HaaSClient> haasClientSupplier; private JobState state; + + private ImageJGate gate; - public Job(Path path, Collection<Path> files, Supplier<HaaSClient> haasClientSupplier) throws IOException { - this(haasClientSupplier); + public Job(Path path, Collection<Path> files, Supplier<HaaSClient> haasClientSupplier, ImageJGate gate) throws IOException { + this(haasClientSupplier,gate); HaaSClient client = this.haasClientSupplier.get(); long id = client.start(files, "TestOutRedirect", Collections.emptyList()); @@ -46,8 +50,8 @@ public class Job { - public Job(Path p, Supplier<HaaSClient> haasClientSupplier) throws IOException { - this(haasClientSupplier); + public Job(Path p, Supplier<HaaSClient> haasClientSupplier, ImageJGate gate) throws IOException { + this(haasClientSupplier,gate); jobDir = p; loadJobInfo(); checkStateForDownload(); @@ -56,7 +60,9 @@ public class Job { private synchronized void checkStateForDownload() throws IOException { long jobId = getJobId(); JobState actualState = haasClientSupplier.get().obtainJobInfo(jobId).getState(); + gate.getLog().info("Job: " + jobId + " is " + actualState); if(EnumSet.of(JobState.Failed, JobState.Finished, JobState.Canceled).contains(actualState) && state != actualState) { + gate.getLog().info("Downloading data."); haasClientSupplier.get().download(jobId, jobDir); state = actualState; saveJobinfo(); @@ -65,8 +71,9 @@ public class Job { - private Job(Supplier<HaaSClient> haasClientSupplier) { + private Job(Supplier<HaaSClient> haasClientSupplier, ImageJGate gate) { this.haasClientSupplier = haasClientSupplier; + this.gate = gate; } private synchronized void saveJobinfo() throws IOException { 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 733d9322970c9fb8fabcb06019f6be9ae4cd53c4..d3da7e99a10d812fe843ec8adc5cb989f945be05 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 @@ -16,13 +16,16 @@ public class JobManager { private HaaSClient haasClient; - public JobManager(Path workDirectory) throws IOException { + private ImageJGate gate; + + public JobManager(Path workDirectory, ImageJGate gate) throws IOException { super(); + this.gate = gate; this.workDirectory = workDirectory; Files.list(this.workDirectory).filter(p -> Files.isDirectory(p) && Job.isJobPath(p)) .forEach(p -> { try { - jobs.add(new Job(p,this::getHaasClient)); + jobs.add(new Job(p,this::getHaasClient, gate)); } catch (IOException e) { e.printStackTrace(); } @@ -31,7 +34,7 @@ public class JobManager { } public void startJob(Path path, Collection<Path> files) throws IOException { - jobs.add(new Job(path, files,this::getHaasClient)); + jobs.add(new Job(path, files,this::getHaasClient,gate)); } private HaaSClient getHaasClient() { diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/RunWithHaaS.java b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/RunWithHaaS.java index 4dfec903b38b5c95cb6262871d2557fe4b906868..b120487c72a1c9256b70f250df37f5cd87b515f1 100644 --- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/RunWithHaaS.java +++ b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/RunWithHaaS.java @@ -20,7 +20,7 @@ import net.imagej.ImageJ; * */ @Plugin(type = Command.class, headless = true, menuPath = "Plugins>Run with HaaS") -public class RunWithHaaS implements Command { +public class RunWithHaaS extends CommandBase implements Command { @Parameter private LogService log; @@ -36,7 +36,7 @@ public class RunWithHaaS implements Command { @Override public void run() { try { - jobManager = new JobManager(getWorkingDirectoryPath()); + jobManager = new JobManager(getWorkingDirectoryPath(), getGate()); jobManager.startJob(getWorkingDirectoryPath(),getContent(dataDirectory)); } catch (IOException e) { log.error(e);