ParsedLocalEventKey

Purpose/Function

URI which identifies the event's subject. This class is also used by the NCSA services as a global identifier for workflows or parts of workflows. The URI is generally understood to contain the following parts:

  • BASE SUBJECT URI: very often the URL of the originating service, or the URI of the container (e.g., httpg://otfrid.ncsa.uiuc.edu/broker/services/Broker or elf://localhost).
  • PROPERTIES: expressed as URL query parts

Some standard properties used throughout our infrastructure:

  • user
  • groupId
  • workflow
  • node
  • nodeIndex
  • script
  • task
  • level (for debugging)
  • metadataTo (publish metadata using this service or agent type)

These properties are arbitrarily extensible (see the ELF example below).

The wrapper object ncsa.tools.events.types.ParsedLocalEventKey can be constructed from a URI, URI-string or another wrapper. It breaks up the key into its constituent parts (the properties from the query are stored in a map); calling .toString() on it regenerates the original URI string; the query parts are sorted lexicographically when this occurs. This object, however, is not normally exposed in Ogrescript, so it is sufficient to understand the structure of the string itself. Caution should be taken with the query parts if the string is actually generated in the script, because this object is often used in string-equality matches, so if the parts are out of order, the match may fail.

Examples

The first example designates the WPS_REAL node of the TriggeredWRF-RunTest.12.1188393979238 workflow.
The second example designates the WRITE_OUT_WRF_DATA-BOTH task running in the ELF container which corresponds to that node. Notice the extra query parts (bootstrap, container, containerModule) added by the ELF container.

"httpg://tb1.ncsa.uiuc.edu:8043/broker/services/Broker?groupId=TriggeredWRF-18km1grid&level=DEBUG&node=WPS_REAL_WRF&nodeIndex=0&user=bjewett&workflow=TriggeredWRF-RunTest.12.1188393979238"
"httpg://tb1.ncsa.uiuc.edu:8043/broker/services/Broker?bootstrap=elf&container=elf-container&containerModule=SerialScripts&groupId=TriggeredWRF-18km1grid&level=DEBUG&node=WPS_REAL_WRF&nodeIndex=0 \&script=WPS_REAL_WRF&task=WRITE_OUT_WRF_DATA-BOTH&user=bjewett&workflow=TriggeredWRF-RunTest.12.1188393979238"

  • No labels