Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • 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 is what the ecflow_server does when submitting your task/job.

This process can be checked on the client side, with BEFORE loading the suite to the server, by using 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.

Code Block
languagepy
titleDefault
 defs = ecflow.Defs('my.def')                # load file 'my.def' into

...

 memory, not needed if the defs was created in python
 msg = defs.check_job_

...

creation()             # job files generated to ECF_JOB
 print msg                                   # report any errors in job generation


For brevity, 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 was created. This can be read in from disk as shown above or created directly in python. This example shows

Code Block
languagepy
titlechecking 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 the checking of job generation for all tasks, but where the jobs are generated to a user-specified directory. i.e. '/tmp/ECF_NAME.job0

Code Block
languagepy
titleGenerated jobs to a user specfied directory
 job_ctrl = ecflow.JobGenCtrl()

...

 
 job_ctrl.set_dir_for_job_generation("/tmp")   # generate jobs file under this directory

...


 defs.check_job_generation(job_ctrl)

...

           # do the check
 print job_ctrl.get_error_msg()                # report any errors in job generation

This example show job checking to an automatically generated temporary directory $TMPDIR/ecf_check_job_generation/ECF_NAME.job0

Code Block
languagepy
titleGenerate temporary directory
 job_ctrl = ecflow.JobGenCtrl()

...

 
 job_ctrl.generate_temp_dir()

...

 
 defs.check_job_generation(job_ctrl)

...


 print job_ctrl.get_error_msg()