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.
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_