...
Ecf script
We will create family f5 with nine tasks.
Create new ecf script s in $HOME/course/test/f5/ directory, each one containing:
Code Block |
---|
%include <head.h> echo "I will now sleep for %SLEEP% seconds" sleep %SLEEP% %include <tail.h> |
Text
Let us modify our suite definition file:
# Definition of the suite test.
suite test
edit ECF_INCLUDE "$HOME/course"
edit ECF_HOME "$HOME/course"
limit l1 2
family f5
inlimit l1
edit SLEEP 20
task t1
task t2
task t3
task t4
task t5
task t6
task t7
task t8
task t9
endfamily
endsuite
Python
#!/usr/bin/env python2.7
import os
import ecflow
def create_family_f5() :
f5 = ecflow.Family("f5")
f5.add_inlimit("l1")
f5.add_variable("SLEEP", 20)
for i in range(1, 10):
f5.add_task( "t" + str(i) )
return f5
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_limit("l1", 2)
suite.add_family( create_family_f5() )
print defs
print "Checking job creation: .ecf -> .job0"
print defs.check_job_creation()
print "Check in limit references"
print defs.check()
print "Saving definition to file 'test.def'"
defs.save_as_defs("test.def")
What to do
:- Edit the changes
- Replace the suite definition
- In ecflowview, observe the triggers of the limit l1
- Open the Info panel for l1
- Change the value of the limit
- Open the Why? panel for one of the queued tasks of /test/f5
...