<style type="text/css">
.highlight .hll
.highlight
.highlight .c
/* Comment */
.highlight .err
/* Error */
.highlight .k
/* Keyword */
.highlight .o
/* Operator */
.highlight .cm
/* Comment.Multiline */
.highlight .cp
/* Comment.Preproc */
.highlight .c1
/* Comment.Single */
.highlight .cs
/* Comment.Special */
.highlight .gd
/* Generic.Deleted */
.highlight .ge
/* Generic.Emph */
.highlight .gr
/* Generic.Error */
.highlight .gh
/* Generic.Heading */
.highlight .gi
/* Generic.Inserted */
.highlight .go
/* Generic.Output */
.highlight .gp
/* Generic.Prompt */
.highlight .gs
/* Generic.Strong */
.highlight .gu
/* Generic.Subheading */
.highlight .gt
/* Generic.Traceback */
.highlight .kc
/* Keyword.Constant */
.highlight .kd
/* Keyword.Declaration */
.highlight .kn
/* Keyword.Namespace */
.highlight .kp
/* Keyword.Pseudo */
.highlight .kr
/* Keyword.Reserved */
.highlight .kt
/* Keyword.Type */
.highlight .m
/* Literal.Number */
.highlight .s
/* Literal.String */
.highlight .na
/* Name.Attribute */
.highlight .nb
/* Name.Builtin */
.highlight .nc
/* Name.Class */
.highlight .no
/* Name.Constant */
.highlight .nd
/* Name.Decorator */
.highlight .ni
/* Name.Entity */
.highlight .ne
/* Name.Exception */
.highlight .nf
/* Name.Function */
.highlight .nl
/* Name.Label */
.highlight .nn
/* Name.Namespace */
.highlight .nt
/* Name.Tag */
.highlight .nv
/* Name.Variable */
.highlight .ow
/* Operator.Word */
.highlight .w
/* Text.Whitespace */
.highlight .mf
/* Literal.Number.Float */
.highlight .mh
/* Literal.Number.Hex */
.highlight .mi
/* Literal.Number.Integer */
.highlight .mo
/* Literal.Number.Oct */
.highlight .sb
/* Literal.String.Backtick */
.highlight .sc
/* Literal.String.Char */
.highlight .sd
/* Literal.String.Doc */
.highlight .s2
/* Literal.String.Double */
.highlight .se
/* Literal.String.Escape */
.highlight .sh
/* Literal.String.Heredoc */
.highlight .si
/* Literal.String.Interpol */
.highlight .sx
/* Literal.String.Other */
.highlight .sr
/* Literal.String.Regex */
.highlight .s1
/* Literal.String.Single */
.highlight .ss
/* Literal.String.Symbol */
.highlight .bp
/* Name.Builtin.Pseudo */
.highlight .vc
/* Name.Variable.Class */
.highlight .vg
/* Name.Variable.Global */
.highlight .vi
/* Name.Variable.Instance */
.highlight .il
/* Literal.Number.Integer.Long */
</style>
# Definition of the suite test
suite test
edit ECF_HOME "$HOME/course"
task t1
task t2
endsuite
Then you must load the file again:
> ecflow_client --load test.def
Warning
This will fail because the suite is already loaded
Because the suite is already defined, you need to delete and reload it first:
> ecflow_client --delete=_all_
> ecflow_client --load=test.def
Then restart the suite:
> ecflow_client --begin=test
If you are using the ecFlow Python Api:
#!/usr/bin/env python2.5
import os
import ecflow
defs = ecflow.Defs()
suite = defs.add_suite("test")
suite.add_variable("ECF_HOME",os.getenv("HOME") + "/course")
suite.add_task("t1")
suite.add_task("t2")
# delete the definition in the server, load a new definition
ci = ecflow.Client();
ci.set_host_port("localhost","3141")
try:
ci.delete_all() # clear out the server
ci.load(defs) # load the definition into the server
ci.begin_suite("test")
except RuntimeError, e:
print "failed: " + str(e)
> ecflow_client --replace /test test.def
or to replace part of the suite:
> ecflow_client --replace /test/t2 test.def
In python this would be:
#!/usr/bin/env python2.5
import os
import ecflow
defs = ecflow.Defs()
suite = defs.add_suite("test")
suite.add_variable("ECF_HOME",os.getenv("HOME") + "/course")
suite.add_task("t1")
suite.add_task("t2")
# replace suite /test in the server, with the definition provided in defs
ci = ecflow.Client();
try:
ci.replace("/test",defs)
except RuntimeError, e:
print "failed: " + str(e)
Note
For brevity the following examples, will not show the loading of the suite.
What to do:
- Create the new task
- Create t2.ecf by copying from t1.ecf
- Begin the suite
- In ecflowview, watch the two task running. They should run at the same time