Horizontal Navigation Bar |
---|
Button Group |
---|
Button Hyperlink |
---|
title | Previous |
---|
type | standard |
---|
url | https://confluence.ecmwf.int/display/ECFLOW/Add+Manual |
---|
|
Button Hyperlink |
---|
title | Up |
---|
type | standard |
---|
url | https://confluence.ecmwf.int/display/ECFLOW/Going+Further |
---|
|
Button Hyperlink |
---|
title | Next |
---|
type | standard |
---|
url | https://confluence.ecmwf.int/display/ECFLOW/Variable+inheritance |
---|
|
|
|
We already saw that ecFlow has some
variable‘s, like ECF_HOME.
There are three kinds of variables:
...
Ecf Script
In the previous example, we have copied the file t1.ecf to the file t2.ecf.
Edit those two files so they call the
unix UNIX sleep command with a
user variable called SLEEP as a parameter.
Code Block |
---|
language | bash |
---|
title | $HOME/course/f1/t1.ecf |
---|
|
%include <head.h>
echo "I will now sleep for %SLEEP% seconds"
sleep %SLEEP%
%include <tail.h> |
Text
Then add the variable to the suite definition:
Code Block |
---|
# Definition of the suite test.
suite test
edit ECF_INCLUDE "$HOME/course" # replace '$HOME' with the path to your home directory
edit ECF_HOME "$HOME/course"
family f1
task t1
edit SLEEP 20
task t2
edit SLEEP 20
endfamily
endsuite |
Python
#!/usr/bin/env python2.7
Code Block |
---|
language | py |
---|
title | $HOME/course/test.py |
---|
|
import os
|
importfrom ecflow import Defs,Suite,Family,Task,Edit
def create_family_f1():
|
f1 =ecflow.)f1.add_task("t1").add_variable("SLEEP", 20)
f1.add_taskt2").add_variable("SLEEP", 20)returnf1
Task("t2",Edit(SLEEP=20)))
print |
("Creating suite definition" |
defs = ecflow.Defs(suitedefs.add_suite("test")
suite.add_variable("ECF_INCLUDE", os.path.join(os.getenv("HOME") |
+/suite.add_variable("ECF_HOMEdefs = Defs(
Suite("test",
|
os.getenv("HOME") + "/course")
suite.add_family( Edit(ECF_INCLUDE=home,ECF_HOME=home),
create_family_f1())) |
)defs ("Checking job creation: .ecf -> .job0" |
(defs.check_job_creation())
print |
("Saving definition to file 'test.def'")
defs.save_as_defs("test.def") |
What to do
- Do the modifications
- Replace the suite
python: python3 test.py
python3 client.py
text: ecflow_client --suspend=/test ; ecflow_client --replace=/test test.def - Watch in ecflowview ecflow_ui . You should see the tasks with a status active for 20 seconds
Horizontal Navigation Bar |
---|
Button Group |
---|
Button Hyperlink |
---|
title | Previous |
---|
type | standard |
---|
url | https://confluence.ecmwf.int/display/ECFLOW/Add+Manual |
---|
|
Button Hyperlink |
---|
title | Up |
---|
type | standard |
---|
url | https://confluence.ecmwf.int/display/ECFLOW/Going+Further |
---|
|
Button Hyperlink |
---|
title | Next |
---|
type | standard |
---|
url | https://confluence.ecmwf.int/display/ECFLOW/Variable+inheritance |
---|
|
|
|
...