Skip to content

Commit cf24e7c

Browse files
committed
Added method to call json conversion script.
Added method to the NWChem workflow that calls the json conversion script. Currently calling it from the update_output method.
1 parent bce7bf3 commit cf24e7c

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

server/taskflows/hpccloud/taskflow/nwchem/__init__.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
from cumulus.tasks.job import submit_job, _monitor_jobs
2727
from cumulus.tasks.job import download_job_input_folders
2828
from cumulus.tasks.job import upload_job_output_to_folder, job_directory
29+
from cumulus.tasks.job import _put_script
2930
from cumulus.transport import get_connection
3031

3132
from 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
88100
def 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

Comments
 (0)