Versions Compared

Key

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

...

Python

Code Block
languagepy
title$HOME/course/test.py
#!/usr/bin/env python2.7
import os
from ecflow import Defs,Suite,Family,Task,Edit,Trigger,Complete,Event,Meter

def create_family_f1():
    return Family("f1",
                Edit(SLEEP=20),
                Task("t1", Meter("progress", 1, 100, 90)),
                Task("t2", Trigger("t1 == complete"), Event("a"), Event("b")),
                Task("t3", Trigger("t2:a")),
                Task("t4", Trigger("t2 == complete"), Complete("t2:b")),
                Task("t5", Trigger("t1:progress ge 30")),
                Task("t6", Trigger("t1:progress ge 60")),
                Task("t7", Trigger("t1:progress ge 90")))  
        
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")

What to do

  1. Edit the definition file or python to add the modifications.
  2. Edit t1.ecf to call ecflow_client –meter
  3. Copy t4.ecf to t5.ecf, t6.ecf and t7.ecf
  4. Replace the suite
    python: python test.py ; python client.py
    text:      ecflow_client --suspend=/test   ; ecflow_client --replace=/test  test.def
  5. Observe the tasks in ecflow_ui
  6. See the triggers by selecting progress and clicking on the Triggers icon.
  7. Move the mouse pointer over progress then with the right mouse button, choose Edit...
  8. Modify the value of the meter.
       

...