Horizontal Navigation Bar | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
In the previous exercise we saw that the two tasks were running simultaneously.
We would like now to make sure that t2 only runs once t1 is complete.
For this we have to define a trigger
...
Text
Code Block | ||
---|---|---|
| ||
# Definition of the suite test. suite test edit ECF_INCLUDE "$HOME/course" # replace '$HOME' with the path to your home directory edit ECF_HOME "$HOME/course" family f1 edit SLEEP 20 task t1 task t2 trigger t1 eq complete endfamily endsuite |
Python
Code Block | ||||
---|---|---|---|---|
| ||||
#!/usr/bin/env python2.7
import os
from ecflow import Defs,Suite,Family,Task,Edit
def create_family_f1():
return Family("f1",
Edit(SLEEP=20),
Task("t1"),
Task("t2",Trigger("t1 == complete")))
print("Creating suite definition")
home = os.path.join(os.getenv("HOME"), "course")
defs = Defs(
Suite("test",
Edit(ECF_INCLUDE=home,ECF_HOME=home),
create_family_f1()))
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") |
#!/usr/bin/env python2.7
import os
import ecflow
def create_family_f1():
f1 = ecflow.Family("f1" )
f1.add_variable("SLEEP", 20)
f1.add_task("t1")
f1.add_task("t2").add_trigger("t1 == complete")
return f1
print "Creating suite definition"
defs = ecflow.Defs()
suite = defs.add_suite("test")
suite.add_variable("ECF_INCLUDE", os.path.join(os.getenv("HOME"), "course"))
suite.add_variable("ECF_HOME", os.path.join(os.getenv("HOME"), "course"))
suite.add_family( create_family_f1() )
print defs
print "Checking job creation: .ecf -> .job0"
print defs.check_job_creation()
print "Checking trigger expressions"
print defs.check()
print "Saving definition to file 'test.def'"
defs.save_as_defs("test.def")
What to do
- Edit the suite definition file to add the trigger.
- Replace the suite
python: python test.py ; python client.py
text: ecflow_client --suspend=/test ; ecflow_client --replace=/test test.def - Observe the tasks in ecflow_ui .
- See the triggers by selecting t1 or t2.
- See the trigger relation by clicking on the trigger tab.
- Search any reference to t1 by using the search menu.
...