Page History
...
Horizontal Navigation Bar | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
In this exercise, we will use one of the command-line features of ecflow.
We will use query command, to determine the state of a node, event, meter. An alternative to the query command would be to use the python apiAPI.
The general format is:
Code Block | ||||
---|---|---|---|---|
| ||||
ecflow_client --query arg1 arg2 arg3 |
...
- state=$(ecflow_client --query state /path/to/node) # return node state
- dstate=$(ecflow_client --query dstate /path/to/node) # state that can includes suspended
value=$(ecflow_client --query repeat /path/to/node ) # return the current value as a string
value=$(ecflow_client --query repeat /path/to/node prev prev ) # # return the previous value as a string, does not modify real repeat
value=$(ecflow_client --query repeat /path/to/node next) # return the next value as a string, does not modify real repeat
- event=$(ecflow_client --query event /path/to/task/with/event:event_name) # return set | clear to standard out
- meter=$(ecflow_client --query meter /path/to/task/with/meter:meter_name) # returns the current value of the meter
- value=$(ecflow_client --query variable /path/to/task/with/var:var_name ) # returns the variable value
limit_value=$(ecflow_client --query limit /path/to/task/with/limit:limit_name) # returns the current value of the limit
limit_max=$(ecflow_client --query limit_max /path/to/task/with/limit:limit_name) # returns the max value of the limit
- label_value=$(ecflow_client --query label %ECF_NAME%:label_name) # returns the current value of the label
- value=$(ecflow_client --query trigger /path/to/node/with/trigger \"/suite/task == complete\") # return true if expression evaluates false otherwise
...
What to do
- Go back to the previous excercise exercise where we finished adding a meter.
- Edit the definition file or python to add the modifications. You should only need to add a task query.
- create file query.ecf to call ecflow_client –query
- Replace the suite
python: python3 test.py ; python3 client.py
text: ecflow_client --suspend=/test ; ecflow_client --replace=/test test.def - Observe the tasks in ecflow_ui
Modify query.ecf, to use ecflow_client --query variable, and show this variable in the query label.
Note Although a variable is accessible in the script by using %VAR%, ecflow_client --query variable might be more useful in a an interactive shell or a different server
Horizontal Navigation Bar | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...