Versions Compared

Key

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

...

Python

Code Block
languagepy
title$HOME/course/test.py
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: python3 test.py ; python3 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 progressImage Removed then progress icon then with the right mouse button, choose Edit...
  8. Modify the value of the meter.
       

...