Let’s add another task named t2.
You will need to modify the suite definition file and add a new script.
First modify the suite definition
# Definition of the suite test suite test edit ECF_HOME "$HOME/course" task t1 task t2 endsuite
As before replace $HOME with the real path to your home directory.
You must also create a file t2.ecf in $HOME/course/test.
Simply copy t1.ecf.
Then you must load the file again:
> ecf_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:
> ecf_client --delete=_all_ > ecf_client --load=test.def
Then restart the suite:
> ecf_client --begin=test
If you are using the ecFlow Python Api:
#!/usr/bin/env python2.5 import os import ecflow defs = ecflow.Defs("test.def") 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)
Rather than deleting, loading and beginning the suite every time you can replace
all or part of the suite for example to replace whole suite.
> ecf_client --replace /test test.def
or to replace part of the suite:
> ecf_client --replace /test/t2 test.def
In python this would be:
#!/usr/bin/env python2.5 import os import ecflow defs = ecflow.Defs("test.def") 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)
It is good practice to suspend your suite before you reload any part of it.
In ecFlowview right click on the suite and select “Suspend”.
Once you made your change you can right click on the suite and “Resume” it.
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