# Definition of the suite test
suite test
edit ECF_HOME "$HOME/course"
task t1
task t2
endsuite
Then you must load the file again:
> ecflow_client --load test.def
Warning
This will fail because the suite is already loaded
Because the suite is already defined, you need to delete and reload it first:
> ecflow_client --delete=_all_
> ecflow_client --load=test.def
Then restart the suite:
> ecflow_client --begin=test
If you are using the ecFlow Python Api:
#!/usr/bin/env python2.5
import os
import ecflow
defs = ecflow.Defs()
suite = defs.add_suite("test")
suite.add_variable("ECF_HOME",os.getenv("HOME") + "/course")
suite.add_task("t1")
suite.add_task("t2")
# delete the definition in the server, load a new definition
ci = ecflow.Client();
ci.set_host_port("localhost","3141")
try:
ci.delete_all() # clear out the server
ci.load(defs) # load the definition into the server
ci.begin_suite("test")
except RuntimeError, e:
print "failed: " + str(e)
> ecflow_client --replace /test test.def
or to replace part of the suite:
> ecflow_client --replace /test/t2 test.def
In python this would be:
#!/usr/bin/env python2.5
import os
import ecflow
defs = ecflow.Defs()
suite = defs.add_suite("test")
suite.add_variable("ECF_HOME",os.getenv("HOME") + "/course")
suite.add_task("t1")
suite.add_task("t2")
# replace suite /test in the server, with the definition provided in defs
ci = ecflow.Client();
try:
ci.replace("/test",defs)
except RuntimeError, e:
print "failed: " + str(e)
Note
For brevity the following examples, will not show the loading of the suite.
What to do:
- Create the new task
- Create t2.ecf by copying from t1.ecf
- Begin the suite
- In ecflowview, watch the two task running. They should run at the same time