Skip to content

Commit 4eec467

Browse files
committed
Improve logic related to identifying cluster submit script
1 parent 4f2f635 commit 4eec467

File tree

1 file changed

+30
-11
lines changed

1 file changed

+30
-11
lines changed

cluster/src/org/labkey/cluster/ClusterServiceImpl.java

Lines changed: 30 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import org.labkey.api.cluster.ClusterService;
55
import org.labkey.api.data.Container;
66
import org.labkey.api.pipeline.PipelineJob;
7+
import org.labkey.api.pipeline.PipelineJobService;
78
import org.labkey.api.pipeline.PipelineValidationException;
89
import org.labkey.api.pipeline.RemoteExecutionEngine;
910
import org.labkey.api.pipeline.TaskId;
@@ -86,22 +87,40 @@ public File getSerializedJobFile(File jobLogFile)
8687
@Override
8788
public File getExpectedSubmitScript(PipelineJob job)
8889
{
89-
if (job.getActiveTaskFactory() != null)
90+
if (job.isActiveTaskLocal())
91+
{
92+
//nothing to do:
93+
return null;
94+
}
95+
else if (job.getActiveTaskFactory() != null)
9096
{
9197
String location = job.getActiveTaskFactory().getExecutionLocation();
92-
if (SlurmExecutionEngine.TYPE.equals(location))
93-
{
94-
return SlurmExecutionEngine.getExpectedSubmitScript(job);
95-
}
96-
else if (HTCondorExecutionEngine.TYPE.equals(location))
98+
for (RemoteExecutionEngine<?> engine : PipelineJobService.get().getRemoteExecutionEngines())
9799
{
98-
return HTCondorExecutionEngine.getExpectedSubmitScript(job);
100+
if (location.equals(engine.getConfig().getLocation()))
101+
{
102+
if (SlurmExecutionEngine.TYPE.equals(engine.getType()))
103+
{
104+
return SlurmExecutionEngine.getExpectedSubmitScript(job);
105+
}
106+
else if (HTCondorExecutionEngine.TYPE.equals(engine.getType()))
107+
{
108+
return HTCondorExecutionEngine.getExpectedSubmitScript(job);
109+
}
110+
111+
job.getLogger().error("Unknown execution engine type: " + engine.getType());
112+
return null;
113+
}
99114
}
100-
}
101-
102-
job.getLogger().error("Unable to find appropriate remote execution engine for job: " + job.getJobGUID() + ", with active task factory: " + (job.getActiveTaskFactory() != null ? job.getActiveTaskFactory().getId() : " null"));
103115

104-
return null;
116+
job.getLogger().error("Unable to find remote execution engine for location: " + location);
117+
return null;
118+
}
119+
else
120+
{
121+
job.getLogger().error("TaskFactory is null, cannot identify submit script");
122+
return null;
123+
}
105124
}
106125

107126
@Override

0 commit comments

Comments
 (0)