Sometime it is very useful to see task specific information in ecflowview.
and that can be updated using the child command ecflow_client –label
# Definition of the suite test. suite test edit ECF_INCLUDE "$HOME/course" edit ECF_HOME "$HOME/course" family f1 edit SLEEP 20 task t1 meter progress 1 100 90 task t2 trigger t1 eq complete event a event b task t3 trigger t2:a task t4 trigger t2 eq 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 endfamily family f2 edit SLEEP 20 task t1 time 00:30 23:30 00:30 task t2 day sunday task t3 date 01.*.* time 12:00 task t4 time +00:02 task t5 time 00:02 endfamily family f3 task t1 label info "" endfamily endsuite
The following section shows how to add a ecflow.Label in python:
#!/usr/bin/env python2.5 import os import ecflow def create_family_f3(): f3 = ecflow.Family("f3") t1 = f3.add_task("t1") t1.add_label("info",""); return f3 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_f3() )
We now need to edit the ecf script file $HOME/course/test/f3/t1.ecf:
%include <head.h> n=1 while [[ $n -le 5 ]] # Loop 5 times do msg="The date is now $(date)" ecflow_client --label=info "$msg" # Set the label sleep 60 # Wait a one minute (( n = $n + 1 )) done ecflow_client --label info "I have now finished my work." %include <tail.h>
What to do:
- Modify the suite definition file or python script
- Edit the new ecf script
- Load the suite definition file and begin the suite
- Watch in ecflowview