26
26
from cumulus .tasks .job import submit_job , _monitor_jobs
27
27
from cumulus .tasks .job import download_job_input_folders
28
28
from cumulus .tasks .job import upload_job_output_to_folder , job_directory
29
+ from cumulus .tasks .job import _put_script
29
30
from cumulus .transport import get_connection
30
31
31
32
from hpccloud .taskflow .utility import *
@@ -84,6 +85,17 @@ def create_geometry_symlink(task, job, cluster, fileName):
84
85
with get_connection (task .taskflow .girder_token , cluster ) as conn :
85
86
conn .execute ('ln -s %s %s' % (filePath , linkPath ))
86
87
88
+ def create_json_output (task , job , cluster ):
89
+ job_dir = job_directory (cluster , job )
90
+ cmds = ['cd %s' % job_dir ]
91
+ outFile = '%s-%s.o%s' % (job ['name' ], os .path .basename (job_dir ), job ['queueJobId' ])
92
+ nwchem_cmd = 'python /opt/NWChemOutputToJson/NWChemJsonConversion.py %s\n ' % outFile
93
+ cmds .append (nwchem_cmd )
94
+
95
+ with get_connection (task .taskflow .girder_token , cluster ) as conn :
96
+ cmd = _put_script (conn , '\n ' .join (cmds ))
97
+ conn .execute (cmd )
98
+
87
99
@cumulus .taskflow .task
88
100
def setup_input (task , * args , ** kwargs ):
89
101
input_folder_id = kwargs ['input' ]['folder' ]['id' ]
@@ -131,7 +143,6 @@ def create_job(task, upstream_result):
131
143
task .taskflow .logger .info ('Create NWChem job.' )
132
144
input_folder_id = upstream_result ['input' ]['folder' ]['id' ]
133
145
134
- # TODO: setup command to run with mpi
135
146
body = {
136
147
'name' : 'nwchem_run' ,
137
148
'commands' : [
@@ -210,7 +221,6 @@ def monitor_nwchem_job(task, upstream_result):
210
221
task .throws = (Retry ,),
211
222
212
223
job = upstream_result ['job' ]
213
- # TODO - We are currently reaching in and used a 'private' function
214
224
_monitor_jobs (task , cluster , [job ], girder_token = girder_token , monitor_interval = 30 )
215
225
216
226
return upstream_result
@@ -222,6 +232,8 @@ def upload_output(task, upstream_result):
222
232
cluster = upstream_result ['cluster' ]
223
233
job = upstream_result ['job' ]
224
234
235
+ create_json_output (task , job , cluster )
236
+
225
237
client = create_girder_client (
226
238
task .taskflow .girder_api_url , task .taskflow .girder_token )
227
239
0 commit comments