Skip to content

Commit ad644bb

Browse files
committed
Optional specification per tasks
1 parent f59122c commit ad644bb

File tree

1 file changed

+27
-14
lines changed

1 file changed

+27
-14
lines changed

winhpcjs.js

+27-14
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
var hpc = require("../hpc_exec_wrapper/exec.js");
2+
var spawnOpts = {
3+
timeout : 10000
4+
};
25
var fs = require("fs");
36
var os = require("os");
47
var path = require("path");
@@ -251,7 +254,7 @@ modules.clusrun = function(win_config, cmd, opts, callback){
251254
// Insert custom command
252255
remote_cmd.push(cmd);
253256

254-
var output = hpc.spawn(remote_cmd,"shell",null,win_config);
257+
var output = hpc.spawn(remote_cmd,"shell",null, win_config, spawnOpts);
255258
// Transmit the error if any
256259
if (output.error){
257260
if(output.error.code === 'ETIMEDOUT' && output.stdout.startsWith('Enter the password for')){
@@ -316,7 +319,7 @@ modules.wincreds = function(win_config, password, callback){
316319
// Password
317320
remote_cmd.push("/password:" + password);
318321

319-
var output = hpc.spawn(remote_cmd,"shell",null,win_config);
322+
var output = hpc.spawn(remote_cmd,"shell",null, win_config, spawnOpts);
320323
// Transmit the error if any
321324
if (output.error){
322325
return callback(output.error);
@@ -380,7 +383,7 @@ winFn.nodes = function(ps, win_config, controlCmd, nodeName, callback){
380383
remote_cmd = cmdBuilder(win_config.binariesDir, cmdDict[node_prefix + "nodes"]);
381384
}
382385

383-
var output = hpc.spawn(remote_cmd,"shell",null,win_config);
386+
var output = hpc.spawn(remote_cmd,"shell",null, win_config, spawnOpts);
384387

385388
// Transmit the error if any
386389
if (output.error){
@@ -440,7 +443,7 @@ modules.psmetric = function(win_config, metricName, callback){
440443
remote_cmd = cmdBuilder(win_config.binariesDir, cmdDict.metrics);
441444
}
442445

443-
var output = hpc.spawn(remote_cmd,"shell",null,win_config);
446+
var output = hpc.spawn(remote_cmd,"shell",null, win_config, spawnOpts);
444447

445448
// Transmit the error if any
446449
if (output.error){
@@ -490,7 +493,7 @@ winFn.jobs = function(ps, win_config, jobId, callback){
490493
}else{
491494
remote_cmd = cmdBuilder(win_config.binariesDir, cmdDict[node_prefix + "jobs"]);
492495
}
493-
var output = hpc.spawn(remote_cmd,"shell",null,win_config);
496+
var output = hpc.spawn(remote_cmd,"shell",null, win_config, spawnOpts);
494497

495498
// Transmit the error if any
496499
if (output.error){
@@ -532,7 +535,7 @@ winFn.tasks = function(ps, win_config, jobId, callback){
532535

533536
remote_cmd = cmdBuilder(win_config.binariesDir, cmdDict[node_prefix + "task"], jobId);
534537

535-
var output = hpc.spawn(remote_cmd,"shell",null,win_config);
538+
var output = hpc.spawn(remote_cmd,"shell",null, win_config, spawnOpts);
536539

537540
// Transmit the error if any
538541
if (output.error){
@@ -690,11 +693,21 @@ modules.winscript = function(jobArgs, localPath, callback){
690693
toWrite += '\t\t<Task';
691694
// Resources
692695
toWrite += jobArgs.resources;
693-
toWrite += ' Name="' + jobArgs.taskName[task] + '"';
696+
if(jobArgs.taskName[task] !== null){
697+
toWrite += ' Name="' + jobArgs.taskName[task] + '"';
698+
}
694699
// Workdir
695-
toWrite += ' WorkDirectory="' + jobArgs.workdir[task] + '"';
700+
if(jobArgs.workdir[task] !== null){
701+
toWrite += ' WorkDirectory="' + jobArgs.workdir[task] + '"';
702+
}
696703
//Stdout and err
697-
toWrite += ' StdOutFilePath="' + jobArgs.stdout[task] + '" StdErrFilePath="' + jobArgs.stderr[task] + '"';
704+
if(jobArgs.stdout[task] !== null){
705+
toWrite += ' StdOutFilePath="' + jobArgs.stdout[task] + '"';
706+
}
707+
if(jobArgs.stderr[task] !== null){
708+
toWrite += ' StdErrFilePath="' + jobArgs.stderr[task] + '"';
709+
}
710+
698711
//Command
699712
toWrite += ' CommandLine="' + jobArgs.commands[task] + '"';
700713
//End
@@ -747,7 +760,7 @@ modules.winmodify = function(win_config, jobId, jobSettings, callback){
747760
}
748761

749762
// Submit
750-
var output = hpc.spawn(remote_cmd,"shell",null,win_config);
763+
var output = hpc.spawn(remote_cmd,"shell",null, win_config, spawnOpts);
751764

752765
// Transmit the error if any
753766
if (output.error){
@@ -777,7 +790,7 @@ modules.submit = function(win_config, jobArgs, jobWorkingDir, callback){
777790
for (var i = 0; i < jobArgs.length; i++){
778791
// Copy only different files
779792
if(path.normalize(jobArgs[i]) !== path.join(jobWorkingDir, path.basename(jobArgs[i]))){
780-
var copyCmd = hpc.spawn([jobArgs[i],jobWorkingDir],"copy", null, win_config);
793+
var copyCmd = hpc.spawn([jobArgs[i],jobWorkingDir],"copy", null, win_config, spawnOpts);
781794
if (copyCmd.error){
782795
return callback(new Error(copyCmd.error));
783796
}
@@ -832,7 +845,7 @@ modules.psgroups = function(win_config, groupName, callback){
832845
}else{
833846
remote_cmd = cmdBuilder(win_config.binariesDir, cmdDict.groups);
834847
}
835-
var output = hpc.spawn(remote_cmd,"shell",null,win_config);
848+
var output = hpc.spawn(remote_cmd,"shell",null, win_config, spawnOpts);
836849

837850
// Transmit the error if any
838851
if (output.error){
@@ -880,7 +893,7 @@ winFn.cancel = function(ps, win_config, jobId, callback){
880893
remote_cmd = cmdBuilder(win_config.binariesDir, cmdDict[node_prefix + "cancel"], jobId);
881894
}
882895

883-
var output = hpc.spawn(remote_cmd,"shell",null,win_config);
896+
var output = hpc.spawn(remote_cmd,"shell",null, win_config, spawnOpts);
884897

885898
// Transmit the error if any
886899
if (output.error){
@@ -905,7 +918,7 @@ modules.windir = function(win_config, jobId, callback){
905918
}
906919
// TOOD: put in config file
907920
var remote_cmd = ["dir", "/s", jobWorkingDir];
908-
var output = hpc.spawn(remote_cmd,"shell",null,win_config,{shell : true});
921+
var output = hpc.spawn(remote_cmd,"shell",null,win_config,{shell : true, timeout: spawnOpts.timeout});
909922

910923
// Transmit the error if any
911924
if (output.error){

0 commit comments

Comments
 (0)