Skip to content

Commit 76d1194

Browse files
committed
Add functionality for capturing error for later use
1 parent 3d6f61a commit 76d1194

File tree

3 files changed

+32
-7
lines changed

3 files changed

+32
-7
lines changed

jobrunner/api/_commands.py

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ def setup(dirlist, verbose=False, exit_on_failure=False):
2121
# set variable to determine console separator
2222
separator = False
2323

24+
# create an empty list for output
25+
output = []
26+
2427
# loop over dirlist
2528
for workdir in dirlist:
2629

@@ -51,14 +54,21 @@ def setup(dirlist, verbose=False, exit_on_failure=False):
5154
print(f'{" "*4}- {value.replace(basedir,"<ROOT>")}')
5255

5356
# run a bash process
54-
lib.BashProcess(basedir, workdir, "job.setup", verbose, exit_on_failure)
57+
process = lib.BashProcess(
58+
basedir, workdir, "job.setup", verbose, exit_on_failure
59+
)
60+
61+
# append process to output
62+
output.append(process)
5563

5664
# set separator value
5765
separator = True
5866

5967
# Return to base directory
6068
os.chdir(basedir)
6169

70+
return output
71+
6272

6373
def submit(dirlist, verbose=False, exit_on_failure=False):
6474
"""
@@ -70,6 +80,9 @@ def submit(dirlist, verbose=False, exit_on_failure=False):
7080
# set variable to determine console separator
7181
separator = False
7282

83+
# create an empty list for output
84+
output = []
85+
7386
# loop over dirlist
7487
for workdir in dirlist:
7588

@@ -116,19 +129,26 @@ def submit(dirlist, verbose=False, exit_on_failure=False):
116129

117130
# Submit job
118131
if config.schedular.command == "bash":
119-
lib.BashProcess(basedir, workdir, "job.submit", verbose, exit_on_failure)
132+
process = lib.BashProcess(
133+
basedir, workdir, "job.submit", verbose, exit_on_failure
134+
)
120135

121136
else:
122-
lib.SchedularProcess(
137+
process = lib.SchedularProcess(
123138
basedir, workdir, config.schedular.command, "job.submit"
124139
)
125140

141+
# append process to output
142+
output.append(process)
143+
126144
# set separator value
127145
separator = True
128146

129147
# Return to base directory
130148
os.chdir(basedir)
131149

150+
return output
151+
132152

133153
def clean(dirlist):
134154
"""

jobrunner/lib/_console.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ def SchedularProcess(basedir, workdir, command, script):
3939
check=True,
4040
)
4141

42+
return process
43+
4244

4345
def BashProcess(basedir, workdir, script, verbose=False, exit_on_failure=False):
4446
"""
@@ -73,11 +75,11 @@ def BashProcess(basedir, workdir, script, verbose=False, exit_on_failure=False):
7375
# output.write(line)
7476

7577
else:
76-
with open("job.output", "w") as output:
78+
with open("job.output", "w") as output, open("job.error", "w") as error:
7779
process = subprocess.Popen(
7880
f"bash {script}".split(),
7981
stdout=output,
80-
stderr=subprocess.STDOUT,
82+
stderr=error,
8183
text=True,
8284
)
8385

@@ -87,8 +89,8 @@ def BashProcess(basedir, workdir, script, verbose=False, exit_on_failure=False):
8789

8890
if process.returncode != 0:
8991
if not verbose:
90-
with open("job.output", "r") as output:
91-
print("".join(output.readlines()[-8:]))
92+
with open("job.error", "r") as error:
93+
print("".join(error.readlines()[-8:]))
9294

9395
if exit_on_failure:
9496
raise ValueError(f"{lib.Color.red}FAILURE {lib.Color.end}")
@@ -101,3 +103,5 @@ def BashProcess(basedir, workdir, script, verbose=False, exit_on_failure=False):
101103
print(
102104
f'\n{lib.Color.purple}OUTPUT:{lib.Color.end} {workdir.replace(basedir,"<ROOT>")}/job.output'
103105
)
106+
107+
return process

jobrunner/lib/_filetools.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,7 @@ def RemoveNodeFiles(config, nodedir):
232232
nodedir + os.sep + "job.submit",
233233
nodedir + os.sep + "job.target",
234234
nodedir + os.sep + "job.output",
235+
nodedir + os.sep + "job.error",
235236
]
236237

237238
# loop over list of files in nodedir and append to

0 commit comments

Comments
 (0)