2626from cumulus .tasks .job import submit_job , _monitor_jobs
2727from cumulus .tasks .job import download_job_input_folders
2828from cumulus .tasks .job import upload_job_output_to_folder , job_directory
29+ from cumulus .tasks .job import _put_script
2930from cumulus .transport import get_connection
3031
3132from hpccloud .taskflow .utility import *
@@ -84,6 +85,17 @@ def create_geometry_symlink(task, job, cluster, fileName):
8485 with get_connection (task .taskflow .girder_token , cluster ) as conn :
8586 conn .execute ('ln -s %s %s' % (filePath , linkPath ))
8687
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+
8799@cumulus .taskflow .task
88100def setup_input (task , * args , ** kwargs ):
89101 input_folder_id = kwargs ['input' ]['folder' ]['id' ]
@@ -131,7 +143,6 @@ def create_job(task, upstream_result):
131143 task .taskflow .logger .info ('Create NWChem job.' )
132144 input_folder_id = upstream_result ['input' ]['folder' ]['id' ]
133145
134- # TODO: setup command to run with mpi
135146 body = {
136147 'name' : 'nwchem_run' ,
137148 'commands' : [
@@ -210,7 +221,6 @@ def monitor_nwchem_job(task, upstream_result):
210221 task .throws = (Retry ,),
211222
212223 job = upstream_result ['job' ]
213- # TODO - We are currently reaching in and used a 'private' function
214224 _monitor_jobs (task , cluster , [job ], girder_token = girder_token , monitor_interval = 30 )
215225
216226 return upstream_result
@@ -222,6 +232,8 @@ def upload_output(task, upstream_result):
222232 cluster = upstream_result ['cluster' ]
223233 job = upstream_result ['job' ]
224234
235+ create_json_output (task , job , cluster )
236+
225237 client = create_girder_client (
226238 task .taskflow .girder_api_url , task .taskflow .girder_token )
227239
0 commit comments