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

« Previous Version 25 Next »

In the previous section we have implemented our first task (the t1.ecf file).

The t1.ecf script needs to be preprocessed to generate the job file.

This pre-processing is done automatically by ecflow_server the when the task is about to run.

However it is possible to check the job creation before the suite definition is loaded into the ecflow_server.

Text

Automated job creation checking is only available with Python.

If the ecflow_server can’t locate the ecf script, please see ecf file location algorithm

Python

The process of job creation can be checked before the suite definition
is loaded into the ecflow_server. The following checks are done:
When the suite definition is large and has many ecf script this
checking can save a lot of time.

The following point’s should be noted about about job creation checking:

  • It is independent of the ecflow_server.
    Hence ECF_PORT and ECF_NODE in the job file will have default values.
  • Job files have a .job0 extension, whereas the server will always generate
    jobs with a extension .job<1-n>, i.e t1.job1, t1.job2.
    The numbers correspond to ECF_TRYNO which is never zero.
  • By default the job file is created in the same directory
    as the ecf script. See ECF_JOB

Checking is done using ecflow.Defs.check_job_creation

#!/usr/bin/env python2.7
import os
import ecflow 
   
print "Creating suite definition"   
defs = ecflow.Defs()
suite = defs.add_suite("test")
suite.add_variable("ECF_HOME", os.getenv("HOME") + "/course")
suite.add_task("t1")
print defs

print "Checking job creation: .ecf -> .job0"   
print defs.check_job_creation()

# We can assert, so that we only progress, once all job creation works
# assert len(defs.check_job_creation()) == 0, "Job generation failed"

Note

It is highly advisable that job creation checking is enabled for all subsequent examples.

What to do:

  1. Add job creation checking.
  2. Examine the job file $HOME/course/test/t1.job0
  • No labels