Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Triggers can be very complex, and ecFlow supports all kinds of conditions
(not, and, or, ...), in addition they can also reference Node attributes like
event, meter, variable, repeat and generated variables.

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

  1. Edit the suite definition file to add the trigger.
  2. Replace the suite.
  3. Observe the tasks in ecflowview.
  4. See the triggers by selecting t1 or t2 and clicking on the triggers icon.
  5. See the trigger relation by clicking on the arrow.
  6. See the triggers in the tree, using the Show drop down menu.
  7. Search any reference to t1 by using the search icon

...