ecFlow's documentation is now on readthedocs!

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Job generation involves the following processes:

  • Locating the '.ecf' files
  • Locating the includes files specified in the '.ecf' file
  • Removing comment and manual pre-processor statements
  • Variable substitution
  • Creating the job file on disk

This process can be checked on the client side, with the python API. Since this API is used for checking, the jobs are all generated with the extension '.job0'. The following example checks job generation for all tasks.
defs = ecflow.Defs('my.def') # load file 'my.def' into memory
job_ctrl = ecflow.JobGenCtrl()
defs.check_job_generation(job_ctrl) # job files generated to ECF_JOB
print job_ctrl.get_error_msg() # report any errors in job generation
For brevity the following examples do not show how the 'defs' object. This can be read in from disk as shown above or created directly in python. This example shows checking of job generation for all tasks under '/suite/to_check'
job_ctrl = ecflow.JobGenCtrl()
job_ctrl.set_node_path('/suite/to_check') # hierarchical job generation under /suite/to_check
defs.check_job_generation(job_ctrl) # do the check
print job_ctrl.get_error_msg() # report any errors in job generation
This example shows checking of job generation for all tasks, but where the jobs are generated to a user specified directory. i.e. '/tmp/ECF_NAME.job0
job_ctrl = ecflow.JobGenCtrl()
job_ctrl.set_dir_for_job_generation("/tmp") # generate jobs file under this directory
defs.check_job_generation(job_ctrl)
print job_ctrl.get_error_msg()
This example show job checking to an automatically generated temporary directory $TMPDIR/ecf_check_job_generation/ECF_NAME.job0
job_ctrl = ecflow.JobGenCtrl()
job_ctrl.generate_temp_dir()
defs.check_job_generation(job_ctrl)
print job_ctrl.get_error_msg()

  • No labels