Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Currently, the ecflow python api API provides quite extensive functionality.

However sometimes we just want to query simple state on the command line, and using the full-blown python apiAPI, can seem like an overkill.

Query can be used in these simple cases

...

  • state    return   [unknown | complete | queued  |  aborted | submitted | active] to standard out
  • dstate   return [unknown | complete | queued  |  aborted | submitted | active | suspended] to standard out
  •  repeat   returns current value as a string to standard out, can also retrieve the next and previous value of the repeat. See examples below
    The next/prev will always stay within repeat bounds. hence calling 'next' on the last value of the repeat, will return last value.
    Likewise calling 'prev' on a repeat that has not started, will return the first/start value.
  • event   event         return 'set' | 'clear' to standard out
  • meter   meter          return  return value of the meter to standard out
  • limit              limit           return the current value of the limit
  • limit_max  return the maximum value of the limit
  • label             return label          return new value otherwise the old value
  • variable      variable     return value of the variable, repeat or generated variable to standard out, will search up the node tree
  • trigger          returns 'true' if the expression is true, otherwise 'false'

...

 The command will fail if the node path to the attribute does not exist in the definition and if:

  • repeat The                The repeat is not found
  • event    The event                  The event is not found
  • meter    meter                 The meter is not found
  • limit/limit_max         The limit is not found
  • label                   The label is not found
  • variable No              No user or generated variable or repeat of that name found on node, or any of its parents
  • trigger  Trigger trigger                Trigger does not parse, or reference to nodes/attributes in the expression are not valid\n"

  Arguments:

  • arg1 = [ state | event | meter | label | variable | trigger | limit | limit_max ]
  • arg2 = <path> | <path>:name where name is name of a event, meter,limit or variable
  • arg3 = trigger expression (optional)  | prev | next    # prev,next only used when arg1 is repeat

...

  • state=$(ecflow_client --query state /path/to/node)                                                          # return node state to standard out
  • 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  )                                           # 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 to standard out
  • value=$(ecflow_client --query variable /path/to/task/with/var:var_name )               #                  # returns the variable value to standard out
  • limit_value=$(ecflow_client --query limit  /path/to/task/with/limit:limit_name)               #  # returns the current value of the limit to standard out

  • limit_max=$(ecflow_client --query limit_max /path/to/task/with/limit:limit_name)      # returns the max value of the limit to standard out

  • label_value=$(ecflow_client --query label %ECF_NAME%:label_name)              #                        # returns the current value of the label to standard out
  • value=$(ecflow_client --query trigger /path/to/node/with/trigger \"/suite/task == complete\")   # return true if expression evaluates false otherwise

...