The next step is to let ecflow_server know about your suite or to “load” the suite definition file.
This checks the file test.def and describes the suite to the ecflow_server.
This can be done in several ways, depending on how the suite was created.
Note
Choose between the two methods below, to avoid errors associated with loading suite definition twice.
Text¶
From within the course directory do the following from the unix shell:
> ecflow_client --load=test.def
You will have already seen ecflow_client being used in head.h and tail.h include files.
Python¶
#!/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()
print "Saving definition to file 'test.def'"
defs.save_as_defs("test.def")
# To restore the definition from file 'test.def' we can use:
# restored_defs = ecflow.Defs("test.def")
If you called “defs.save_as_defs()” the file test.def will be written.
This can be loaded in the server as described earlier. (See Text)
try:
print "Load the in memory definition(defs) into the server"
ci = ecflow.Client();
ci.load(defs)
except RuntimeError, e:
print "Failed: " + str(e);
#!/usr/bin/env python2.7
import ecflow
try:
print "Loading definition in 'test.def' into the server"
ci = ecflow.Client();
ci.load("test.def") # read definition from disk and load into the server
except RuntimeError, e:
print "Failed: " + str(e);
If everything is OK, you should have defined a suite in the server.
Have a look in the window running the ecflow_server, and look at the log file
What to do:
- Load the definition file. Choose between loading as a text file, or using python api.
- If using python examine test.def and create the file client.py.
- Check the log file
> ecflow_client –delete=_all_
> ecflow_client –help replace