Skip to content

Commit 641b832

Browse files
committed
Support use of lustre/gscratch pilot space
1 parent b4b1f56 commit 641b832

File tree

3 files changed

+24
-0
lines changed

3 files changed

+24
-0
lines changed

cluster/api-src/org/labkey/api/cluster/ClusterResourceAllocator.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@
66
import org.labkey.api.pipeline.RemoteExecutionEngine;
77
import org.labkey.api.pipeline.TaskId;
88

9+
import java.util.Collections;
910
import java.util.List;
11+
import java.util.Map;
1012

1113
/**
1214
* CluterResourceAllocator typically serves two functions. First, it allows code to be written to automatically adjust job resource settings
@@ -59,4 +61,10 @@ default void processJavaOpts(PipelineJob job, RemoteExecutionEngine engine, @Not
5961
{
6062

6163
}
64+
65+
@NotNull
66+
default Map<String, Object> getEnvironmentVars(PipelineJob job, RemoteExecutionEngine engine)
67+
{
68+
return Collections.emptyMap();
69+
}
6270
}

cluster/src/org/labkey/cluster/pipeline/HTCondorExecutionEngine.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import java.io.FileWriter;
1818
import java.io.IOException;
1919
import java.util.ArrayList;
20+
import java.util.HashMap;
2021
import java.util.HashSet;
2122
import java.util.List;
2223
import java.util.Map;
@@ -181,6 +182,7 @@ private File createSubmitScript(PipelineJob job) throws PipelineJobException
181182
Integer maxCpus = null;
182183
Integer maxRam = null;
183184
List<String> extraLines = new ArrayList<>(getConfig().getExtraSubmitLines());
185+
Map<String, Object> extraEnvironmentVars = new HashMap<>();
184186

185187
if (job.getActiveTaskId() != null)
186188
{
@@ -204,6 +206,8 @@ private File createSubmitScript(PipelineJob job) throws PipelineJobException
204206
}
205207

206208
allocator.addExtraSubmitScriptLines(job, this, extraLines);
209+
210+
extraEnvironmentVars.putAll(allocator.getEnvironmentVars(job, this));
207211
}
208212
}
209213

@@ -245,6 +249,10 @@ private File createSubmitScript(PipelineJob job) throws PipelineJobException
245249
environment.addAll(getConfig().getEnvironmentVars());
246250
}
247251

252+
extraEnvironmentVars.forEach((name, val) -> {
253+
environment.add(name + "=" + val);
254+
});
255+
248256
if (!environment.isEmpty())
249257
{
250258
writer.write("environment = \"" + StringUtils.join(environment, " ") + "\"\n");

cluster/src/org/labkey/cluster/pipeline/SlurmExecutionEngine.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import java.io.IOException;
2020
import java.util.ArrayList;
2121
import java.util.Arrays;
22+
import java.util.HashMap;
2223
import java.util.HashSet;
2324
import java.util.LinkedHashSet;
2425
import java.util.List;
@@ -308,6 +309,7 @@ private File createSubmitScript(PipelineJob job) throws PipelineJobException
308309
Integer maxCpus = null;
309310
Integer maxRam = null;
310311
List<String> extraLines = new ArrayList<>(getConfig().getExtraSubmitLines());
312+
Map<String, Object> extraEnvironmentVars = new HashMap<>();
311313

312314
if (job.getActiveTaskId() != null)
313315
{
@@ -332,6 +334,8 @@ private File createSubmitScript(PipelineJob job) throws PipelineJobException
332334
}
333335

334336
allocator.addExtraSubmitScriptLines(job, this, extraLines);
337+
338+
extraEnvironmentVars.putAll(allocator.getEnvironmentVars(job, this));
335339
}
336340
}
337341

@@ -375,6 +379,10 @@ private File createSubmitScript(PipelineJob job) throws PipelineJobException
375379
environment.addAll(getConfig().getEnvironmentVars());
376380
}
377381

382+
extraEnvironmentVars.forEach((name, val) -> {
383+
environment.add(name + "=" + val);
384+
});
385+
378386
if (!environment.isEmpty())
379387
{
380388
writer.write("#SBATCH --export=" + StringUtils.join(environment, ",") + "\n");

0 commit comments

Comments
 (0)