...
Triggers can be very complex, and ecFlow supports all kinds of conditions
(not, and, or, ...), in addition they can also reference Node attributes like
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
#!/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 eq complete")
return f1
print "Creating suite definition"
defs = ecflow.Defs()
suite = defs.add_suite("test")
suite.add_variable("ECF_INCLUDE", os.getenv("HOME") + "/course")
suite.add_variable("ECF_HOME", 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.
- Observe the tasks in ecflowview.
- See the triggers by selecting t1 or t2 and clicking on the icon.
- See the trigger relation by clicking on the arrow.
- See the triggers in the tree, using the Show drop down menu.
- Search any reference to t1 by using the icon
...