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

def create_family_f1():
    return Family("f1",
            Edit(SLEEP=20),
                Task("t1"),
                Task("t2"))
             
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")
#!/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")
    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 "Saving definition to file 'test.def'"
defs.save_as_defs("test.def") 

 

Quiz

Let us have a quiz. Consider the following suite:

Code Block
suite test
   edit SLEEP 100
   family f1
      edit SLEEP 80
      task t1
      task t2
         edit SLEEP 9
      family g1
          edit SLEEP 89
          task x1
              edit SLEEP 10
          task x2
      endfamily
   endfamily
   family f2
     task t1
     task t2
         edit SLEEP 77
     family g2
          task x1
              edit SLEEP 12
          task x2
      endfamily
   endfamily
endsuite

Here is the value for SLEEP for the above suite. Make sure you understand this.


SLEEP
/test/f1/t180
/test/f1/t29
/test/f1/g1/x110
/test/f1/g1/x289
/test/f2/t1100
/test/f2/t277
/test/f2/g2/x112
/test/f2/g2/x2100


What to do

  1. Do the modifications
  2. Replace the suite
    python: python test.py
                 python client.py
    text:      ecflow_client --suspend=/test; ecflow_client --replace=/test test.def
  3. Watch in ecflow_ui .

...