complete expression evaluation takes precedence over the trigger.
Completes can be between tasks, between families, or both.
# 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 # task t2 will only start when task t1 is complete event a # task t2 will set an event a event b # task t2 will set an event b task t3 trigger t2:a # task t2 will start when event a is set in task t2 task t4 trigger t2 eq complete # task t4 will start when task t2 is complete complete t2:b # task t4 will complete if event b is set is task t2 endfamily endsuite |
#!/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")
t2 = f1.add_task("t2")
t2.add_trigger("t1 eq complete")
t2.add_event("a")
t2.add_event("b")
f1.add_task("t3").add_trigger("t2:a")
t4 = f1.add_task("t4")
t4.add_trigger("t2 eq complete")
t4.add_complete("t2:b")
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")
|