Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "PTP/designs/resource manager xsd"
Line 1: | Line 1: | ||
− | + | <code lang="xml"> | |
+ | <?xml version="1.0" encoding="UTF-8"?> | ||
+ | <resource-manager-builder xmlns="http://org.eclipse.ptp/rm" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
+ | xsi:schemaLocation="resource_manager_type.xsd" name="test-parsers"> | ||
+ | <control-data> | ||
+ | <!-- EXAMPLE 1: output is a list of line-separated queue names to be assigned | ||
+ | to the known property "available-queues" --> | ||
+ | <start-up-command name="test01ParseQstat"> | ||
+ | <arg>qstat</arg> | ||
+ | <arg>-Q</arg> | ||
+ | <arg>-f</arg> | ||
+ | <stdout-parser delim="\n"> | ||
+ | <target ref="queues"> | ||
+ | <match> | ||
+ | <expression>Queue: ([\w\d]+)</expression> | ||
+ | <add field="value"> | ||
+ | <entry valueGroup="1"/> | ||
+ | </add> | ||
+ | </match> | ||
+ | </target> | ||
+ | </stdout-parser> | ||
+ | </start-up-command> | ||
+ | <!-- EXAMPLE 2: output is to be searched for its final line which should | ||
+ | contain a job id of the form "[digits].[chars]" --> | ||
+ | <start-up-command name="test02JobId" waitForId="true"> | ||
+ | <arg/> | ||
+ | <stdout-parser delim="\n" all="true" save="1"> | ||
+ | <target ref="@jobId"> | ||
+ | <match> | ||
+ | <expression>([\d]+)([.])(.+)[\s]+.*</expression> | ||
+ | <append field="name"> | ||
+ | <entry valueGroup="1"/> | ||
+ | <entry valueGroup="2"/> | ||
+ | <entry valueGroup="3"/> | ||
+ | </append> | ||
+ | <set field="default"> | ||
+ | <entry valueGroup="1"/> | ||
+ | </set> | ||
+ | <set field="value"> | ||
+ | <entry value="SUBMITTED"/> | ||
+ | </set> | ||
+ | </match> | ||
+ | <match> | ||
+ | <expression>([\d]+)[.].+</expression> | ||
+ | <set field="name"> | ||
+ | <entry valueGroup="0"/> | ||
+ | </set> | ||
+ | <set field="default"> | ||
+ | <entry valueGroup="1"/> | ||
+ | </set> | ||
+ | <set field="value"> | ||
+ | <entry value="SUBMITTED"/> | ||
+ | </set> | ||
+ | </match> | ||
+ | </target> | ||
+ | <target ref="@jobId"> | ||
+ | <match> | ||
+ | <expression flags="DOTALL">.*Job not submitted.*</expression> | ||
+ | <set field="value"> | ||
+ | <entry value="FAILED"/> | ||
+ | </set> | ||
+ | </match> | ||
+ | </target> | ||
+ | </stdout-parser> | ||
+ | <stderr-parser delim="\n"> | ||
+ | <target ref="@jobId"> | ||
+ | <match> | ||
+ | <expression>.*Job not submitted.*</expression> | ||
+ | <throw message="Job Submit Failed"/> | ||
+ | </match> | ||
+ | </target> | ||
+ | </stderr-parser> | ||
+ | </start-up-command> | ||
+ | <!-- EXAMPLE 3: indeterminate number and order of lines containing parts | ||
+ | of attribute definitions, but each line bearing a distinct | ||
+ | id (e.g., openMPI attribute discovery) --> | ||
+ | <start-up-command name="test03OpenMPI"> | ||
+ | <arg/> | ||
+ | <stdout-parser delim="\n"> | ||
+ | <target type="attribute"> | ||
+ | <match> | ||
+ | <expression>mca:.*:param:([^:]*):value:(.*)</expression> | ||
+ | <set field="name"> | ||
+ | <entry valueGroup="1"/> | ||
+ | </set> | ||
+ | <set field="visible"> | ||
+ | <entry value="true"/> | ||
+ | </set> | ||
+ | <set field="value"> | ||
+ | <entry valueGroup="2"/> | ||
+ | </set> | ||
+ | </match> | ||
+ | <match> | ||
+ | <expression>mca:.*:param:([^:]*):status:(.*)</expression> | ||
+ | <set field="status"> | ||
+ | <entry valueGroup="2"/> | ||
+ | </set> | ||
+ | </match> | ||
+ | <match> | ||
+ | <expression>mca:.*:param:([^:]*):help:(.*)</expression> | ||
+ | <set field="tooltip"> | ||
+ | <entry valueGroup="2"/> | ||
+ | </set> | ||
+ | </match> | ||
+ | <test op="EQ"> | ||
+ | <value>#status</value> | ||
+ | <value>read-only</value> | ||
+ | <set field="readOnly"> | ||
+ | <entry value="true"/> | ||
+ | </set> | ||
+ | <else> | ||
+ | <set field="readOnly"> | ||
+ | <entry value="false"/> | ||
+ | </set> | ||
+ | </else> | ||
+ | </test> | ||
+ | </target> | ||
+ | <target type="attribute"> | ||
+ | <match> | ||
+ | <expression>(.*):([^:]*)</expression> | ||
+ | <set field="name"> | ||
+ | <entry valueGroup="1"/> | ||
+ | </set> | ||
+ | <set field="value"> | ||
+ | <entry valueGroup="2"/> | ||
+ | </set> | ||
+ | <set field="visible"> | ||
+ | <entry value="false"/> | ||
+ | </set> | ||
+ | <set field="readOnly"> | ||
+ | <entry value="true"/> | ||
+ | </set> | ||
+ | </match> | ||
+ | </target> | ||
+ | </stdout-parser> | ||
+ | </start-up-command> | ||
+ | <!-- EXAMPLE 4: indeterminate number of definitions, but grouped | ||
+ | by caption; use of moveToTop to promote the target to the top of the list | ||
+ | when the caption appears --> | ||
+ | <start-up-command name="test04ImplicitWithTags"> | ||
+ | <arg/> | ||
+ | <stdout-parser delim="\n"> | ||
+ | <target type="property"> | ||
+ | <match moveToTop="true"> | ||
+ | <expression>PROPERTY</expression> | ||
+ | </match> | ||
+ | <match> | ||
+ | <expression>name:(.*)</expression> | ||
+ | <set field="name"> | ||
+ | <entry valueGroup="1"/> | ||
+ | </set> | ||
+ | </match> | ||
+ | <match> | ||
+ | <expression>value:(.*)</expression> | ||
+ | <set field="value"> | ||
+ | <entry valueGroup="1"/> | ||
+ | </set> | ||
+ | </match> | ||
+ | </target> | ||
+ | <target type="attribute"> | ||
+ | <match moveToTop="true"> | ||
+ | <expression>ATTRIBUTE</expression> | ||
+ | </match> | ||
+ | <match> | ||
+ | <expression>name:(.*)</expression> | ||
+ | <set field="name"> | ||
+ | <entry valueGroup="1"/> | ||
+ | </set> | ||
+ | </match> | ||
+ | <match> | ||
+ | <expression>value:(.*)</expression> | ||
+ | <set field="value"> | ||
+ | <entry valueGroup="1"/> | ||
+ | </set> | ||
+ | </match> | ||
+ | </target> | ||
+ | </stdout-parser> | ||
+ | </start-up-command> | ||
+ | <!-- EXAMPLE 5: similar to 4, but without delimiter (implicit ordering) --> | ||
+ | <start-up-command name="test05ImplicitOrdering"> | ||
+ | <arg/> | ||
+ | <stdout-parser delim="\n"> | ||
+ | <target type="attribute" matchAll="true"> | ||
+ | <match> | ||
+ | <expression>.+</expression> | ||
+ | <set field="name"> | ||
+ | <entry valueGroup="0"/> | ||
+ | </set> | ||
+ | </match> | ||
+ | <match> | ||
+ | <expression>.*</expression> | ||
+ | <set field="type"> | ||
+ | <entry valueGroup="0"/> | ||
+ | </set> | ||
+ | </match> | ||
+ | <match> | ||
+ | <expression>.*</expression> | ||
+ | <set field="description"> | ||
+ | <entry valueGroup="0"/> | ||
+ | </set> | ||
+ | </match> | ||
+ | <match> | ||
+ | <expression>.*</expression> | ||
+ | <set field="tooltip"> | ||
+ | <entry valueGroup="0"/> | ||
+ | </set> | ||
+ | </match> | ||
+ | <match> | ||
+ | <expression>.*</expression> | ||
+ | <set field="value"> | ||
+ | <entry valueGroup="0"/> | ||
+ | </set> | ||
+ | </match> | ||
+ | </target> | ||
+ | </stdout-parser> | ||
+ | </start-up-command> | ||
+ | <!-- EXAMPLE 6: similar to 4, but with indeterminate type order and using buffer + DOTALL | UNIX_LINES --> | ||
+ | <start-up-command name="test06ImplicitWithTagsDotall"> | ||
+ | <arg/> | ||
+ | <stdout-parser maxMatchLen="32" applyToAll="true"> | ||
+ | <target type="property"> | ||
+ | <match> | ||
+ | <expression flags="DOTALL | UNIX_LINES">.*PROPERTY[\n]name:(\w*)[\n]value:([\d.-]*).*</expression> | ||
+ | <set field="name"> | ||
+ | <entry valueGroup="1"/> | ||
+ | </set> | ||
+ | <set field="value"> | ||
+ | <entry valueGroup="2"/> | ||
+ | </set> | ||
+ | </match> | ||
+ | </target> | ||
+ | <target type="property"> | ||
+ | <match> | ||
+ | <expression flags="DOTALL | UNIX_LINES">.*PROPERTY[\n]value:([\d.-]*)[\n]name:(\w*).*</expression> | ||
+ | <set field="name"> | ||
+ | <entry valueGroup="2"/> | ||
+ | </set> | ||
+ | <set field="value"> | ||
+ | <entry valueGroup="1"/> | ||
+ | </set> | ||
+ | </match> | ||
+ | </target> | ||
+ | <target type="attribute"> | ||
+ | <match> | ||
+ | <expression flags="DOTALL | UNIX_LINES">.*ATTRIBUTE[\n]name:(\w*)[\n]value:([\d.-]*).*</expression> | ||
+ | <set field="name"> | ||
+ | <entry valueGroup="1"/> | ||
+ | </set> | ||
+ | <set field="value"> | ||
+ | <entry valueGroup="2"/> | ||
+ | </set> | ||
+ | </match> | ||
+ | </target> | ||
+ | <target type="attribute"> | ||
+ | <match> | ||
+ | <expression flags="DOTALL | UNIX_LINES">.*ATTRIBUTE[\n]value:([\d.-]*)[\n]name:(\w*).*</expression> | ||
+ | <set field="name"> | ||
+ | <entry valueGroup="2"/> | ||
+ | </set> | ||
+ | <set field="value"> | ||
+ | <entry valueGroup="1"/> | ||
+ | </set> | ||
+ | </match> | ||
+ | </target> | ||
+ | </stdout-parser> | ||
+ | </start-up-command> | ||
+ | <!-- EXAMPLE 7: indeterminate number of property definitions, but on single line --> | ||
+ | <start-up-command name="test07PropertyDefsSingleLine"> | ||
+ | <arg/> | ||
+ | <stdout-parser delim="\n"> | ||
+ | <target type="property"> | ||
+ | <match> | ||
+ | <expression expression="<name>(.*)</name><value>(.*)</value>"/> | ||
+ | <set field="name"> | ||
+ | <entry valueGroup="1"/> | ||
+ | </set> | ||
+ | <set field="value"> | ||
+ | <entry valueGroup="2"/> | ||
+ | </set> | ||
+ | </match> | ||
+ | </target> | ||
+ | </stdout-parser> | ||
+ | </start-up-command> | ||
+ | <!-- EXAMPLE 8: looking for values interspersed in the stream but which will | ||
+ | not exceed 32 chars --> | ||
+ | <start-up-command name="test08JobStates"> | ||
+ | <arg/> | ||
+ | <stdout-parser maxMatchLen="32"> | ||
+ | <target ref="jobStates"> | ||
+ | <match> | ||
+ | <expression flags="DOTALL | UNIX_LINES">.*<job>([\d]*):([\w]*)</job>.*</expression> | ||
+ | <put field="value"> | ||
+ | <entry keyGroup="1" valueGroup="2"/> | ||
+ | </put> | ||
+ | </match> | ||
+ | </target> | ||
+ | </stdout-parser> | ||
+ | </start-up-command> | ||
+ | <!-- EXAMPLE 9: successive names/values, in order, but staggered --> | ||
+ | <start-up-command name="test09Staggered"> | ||
+ | <arg/> | ||
+ | <stdout-parser delim="\n"> | ||
+ | <target type="property"> | ||
+ | <match> | ||
+ | <expression>name:(.*)</expression> | ||
+ | <set field="name"> | ||
+ | <entry valueGroup="1"/> | ||
+ | </set> | ||
+ | </match> | ||
+ | <match> | ||
+ | <expression>value:(.*)</expression> | ||
+ | <set field="value"> | ||
+ | <entry valueGroup="1"/> | ||
+ | </set> | ||
+ | </match> | ||
+ | </target> | ||
+ | </stdout-parser> | ||
+ | </start-up-command> | ||
+ | <!-- EXAMPLE 10: forced merge --> | ||
+ | <start-up-command name="test10Merged"> | ||
+ | <arg/> | ||
+ | <stdout-parser delim="\n"> | ||
+ | <target type="property"> | ||
+ | <match> | ||
+ | <expression>name:(.+);value:(.+)</expression> | ||
+ | <set field="name"> | ||
+ | <entry valueGroup="1"/> | ||
+ | </set> | ||
+ | <set field="value"> | ||
+ | <entry valueGroup="2"/> | ||
+ | </set> | ||
+ | </match> | ||
+ | <match> | ||
+ | <expression>name:(.+);default:(.+)</expression> | ||
+ | <set field="name"> | ||
+ | <entry valueGroup="1"/> | ||
+ | </set> | ||
+ | <set field="default"> | ||
+ | <entry valueGroup="2"/> | ||
+ | </set> | ||
+ | </match> | ||
+ | </target> | ||
+ | </stdout-parser> | ||
+ | </start-up-command> | ||
+ | <!-- EXAMPLE 11: exit-on --> | ||
+ | <start-up-command name="test11ExitOn"> | ||
+ | <arg/> | ||
+ | <stdout-parser maxMatchLen="32"> | ||
+ | <target ref="jobStates"> | ||
+ | <match> | ||
+ | <expression flags="DOTALL | UNIX_LINES">.*<job>([\d]*):([\w]*)</job>.*</expression> | ||
+ | <put field="value"> | ||
+ | <entry keyGroup="1" valueGroup="2"/> | ||
+ | </put> | ||
+ | </match> | ||
+ | </target> | ||
+ | <exit-on flags="DOTALL | UNIX_LINES">.*EXIT.*</exit-on> | ||
+ | </stdout-parser> | ||
+ | </start-up-command> | ||
+ | <!-- EXAMPLE 12: exit-after --> | ||
+ | <start-up-command name="test12ExitAfter"> | ||
+ | <arg/> | ||
+ | <stdout-parser maxMatchLen="32"> | ||
+ | <target ref="jobStates"> | ||
+ | <match> | ||
+ | <expression flags="DOTALL | UNIX_LINES">.*<job>([\d]*):([\w]*)</job>.*</expression> | ||
+ | <put field="value"> | ||
+ | <entry keyGroup="1" valueGroup="2"/> | ||
+ | </put> | ||
+ | </match> | ||
+ | </target> | ||
+ | <exit-after flags="DOTALL | UNIX_LINES">.*EXIT.*</exit-after> | ||
+ | </stdout-parser> | ||
+ | </start-up-command> | ||
+ | <submit-interactive name="empty"> | ||
+ | <arg/> | ||
+ | </submit-interactive> | ||
+ | <!-- EXAMPLE 13: get-status (use of tests) --> | ||
+ | <get-job-status name="get-job-status" ignoreExitStatus="true"> | ||
+ | <arg>qstat</arg> | ||
+ | <arg>${ptp_rm:@jobId#name}</arg> | ||
+ | <stdout-parser delim="\n"> | ||
+ | <target ref="@jobId"> | ||
+ | <match> | ||
+ | <expression>[\d]+[.].+[\s]+.+[\s]+.+[\s]+.+[\s]+([A-Z])[\s]+.+</expression> | ||
+ | <set field="value"> | ||
+ | <entry valueGroup="1"/> | ||
+ | </set> | ||
+ | </match> | ||
+ | <test op="EQ"> | ||
+ | <value>#value</value> | ||
+ | <value>Q</value> | ||
+ | <set field="value"> | ||
+ | <entry value="QUEUED_ACTIVE"/> | ||
+ | </set> | ||
+ | </test> | ||
+ | <test op="EQ"> | ||
+ | <value>#value</value> | ||
+ | <value>R</value> | ||
+ | <set field="value"> | ||
+ | <entry value="RUNNING"/> | ||
+ | </set> | ||
+ | </test> | ||
+ | <test op="EQ"> | ||
+ | <value>#value</value> | ||
+ | <value>S</value> | ||
+ | <set field="value"> | ||
+ | <entry value="SUSPENDED"/> | ||
+ | </set> | ||
+ | </test> | ||
+ | <test op="EQ"> | ||
+ | <value>#value</value> | ||
+ | <value>C</value> | ||
+ | <set field="value"> | ||
+ | <entry value="COMPLETED"/> | ||
+ | </set> | ||
+ | </test> | ||
+ | <test op="EQ"> | ||
+ | <value>#value</value> | ||
+ | <value>E</value> | ||
+ | <set field="value"> | ||
+ | <entry value="COMPLETED"/> | ||
+ | </set> | ||
+ | </test> | ||
+ | <test op="EQ"> | ||
+ | <value>#value</value> | ||
+ | <value>H</value> | ||
+ | <set field="value"> | ||
+ | <entry value="SYSTEM_ON_HOLD"/> | ||
+ | </set> | ||
+ | </test> | ||
+ | </target> | ||
+ | </stdout-parser> | ||
+ | <stderr-parser delim="\n"> | ||
+ | <target ref="@jobId"> | ||
+ | <match> | ||
+ | <expression>.+</expression> | ||
+ | <set field="value"> | ||
+ | <entry value="COMPLETED"/> | ||
+ | </set> | ||
+ | </match> | ||
+ | </target> | ||
+ | </stderr-parser> | ||
+ | </get-job-status> | ||
+ | </control-data> | ||
+ | <monitor-data schedulerType="test"> | ||
+ | <driver> | ||
+ | <name></name> | ||
+ | </driver> | ||
+ | </monitor-data> | ||
+ | </resource-manager-builder> | ||
+ | |||
+ | </code> |
Revision as of 11:25, 20 June 2011
<?xml version="1.0" encoding="UTF-8"?>
<resource-manager-builder xmlns="http://org.eclipse.ptp/rm" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="resource_manager_type.xsd" name="test-parsers">
<control-data>
<start-up-command name="test01ParseQstat">
<arg>qstat</arg>
<arg>-Q</arg>
<arg>-f</arg>
<stdout-parser delim="\n">
<target ref="queues">
<match>
<expression>Queue: ([\w\d]+)</expression>
<add field="value">
<entry valueGroup="1"/>
</add>
</match>
</target>
</stdout-parser>
</start-up-command>
<start-up-command name="test02JobId" waitForId="true">
<arg/>
<stdout-parser delim="\n" all="true" save="1">
<target ref="@jobId">
<match>
<expression>([\d]+)([.])(.+)[\s]+.*</expression>
<append field="name">
<entry valueGroup="1"/>
<entry valueGroup="2"/>
<entry valueGroup="3"/>
</append>
<set field="default">
<entry valueGroup="1"/>
</set>
<set field="value">
<entry value="SUBMITTED"/>
</set>
</match>
<match>
<expression>([\d]+)[.].+</expression>
<set field="name">
<entry valueGroup="0"/>
</set>
<set field="default">
<entry valueGroup="1"/>
</set>
<set field="value">
<entry value="SUBMITTED"/>
</set>
</match>
</target>
<target ref="@jobId">
<match>
<expression flags="DOTALL">.*Job not submitted.*</expression>
<set field="value">
<entry value="FAILED"/>
</set>
</match>
</target>
</stdout-parser>
<stderr-parser delim="\n">
<target ref="@jobId">
<match>
<expression>.*Job not submitted.*</expression>
<throw message="Job Submit Failed"/>
</match>
</target>
</stderr-parser>
</start-up-command>
<start-up-command name="test03OpenMPI">
<arg/>
<stdout-parser delim="\n">
<target type="attribute">
<match>
<expression>mca:.*:param:([^:]*):value:(.*)</expression>
<set field="name">
<entry valueGroup="1"/>
</set>
<set field="visible">
<entry value="true"/>
</set>
<set field="value">
<entry valueGroup="2"/>
</set>
</match>
<match>
<expression>mca:.*:param:([^:]*):status:(.*)</expression>
<set field="status">
<entry valueGroup="2"/>
</set>
</match>
<match>
<expression>mca:.*:param:([^:]*):help:(.*)</expression>
<set field="tooltip">
<entry valueGroup="2"/>
</set>
</match>
<test op="EQ">
<value>#status</value>
<value>read-only</value>
<set field="readOnly">
<entry value="true"/>
</set>
<else>
<set field="readOnly">
<entry value="false"/>
</set>
</else>
</test>
</target>
<target type="attribute">
<match>
<expression>(.*):([^:]*)</expression>
<set field="name">
<entry valueGroup="1"/>
</set>
<set field="value">
<entry valueGroup="2"/>
</set>
<set field="visible">
<entry value="false"/>
</set>
<set field="readOnly">
<entry value="true"/>
</set>
</match>
</target>
</stdout-parser>
</start-up-command>
<start-up-command name="test04ImplicitWithTags">
<arg/>
<stdout-parser delim="\n">
<target type="property">
<match moveToTop="true">
<expression>PROPERTY</expression>
</match>
<match>
<expression>name:(.*)</expression>
<set field="name">
<entry valueGroup="1"/>
</set>
</match>
<match>
<expression>value:(.*)</expression>
<set field="value">
<entry valueGroup="1"/>
</set>
</match>
</target>
<target type="attribute">
<match moveToTop="true">
<expression>ATTRIBUTE</expression>
</match>
<match>
<expression>name:(.*)</expression>
<set field="name">
<entry valueGroup="1"/>
</set>
</match>
<match>
<expression>value:(.*)</expression>
<set field="value">
<entry valueGroup="1"/>
</set>
</match>
</target>
</stdout-parser>
</start-up-command>
<start-up-command name="test05ImplicitOrdering">
<arg/>
<stdout-parser delim="\n">
<target type="attribute" matchAll="true">
<match>
<expression>.+</expression>
<set field="name">
<entry valueGroup="0"/>
</set>
</match>
<match>
<expression>.*</expression>
<set field="type">
<entry valueGroup="0"/>
</set>
</match>
<match>
<expression>.*</expression>
<set field="description">
<entry valueGroup="0"/>
</set>
</match>
<match>
<expression>.*</expression>
<set field="tooltip">
<entry valueGroup="0"/>
</set>
</match>
<match>
<expression>.*</expression>
<set field="value">
<entry valueGroup="0"/>
</set>
</match>
</target>
</stdout-parser>
</start-up-command>
<start-up-command name="test06ImplicitWithTagsDotall">
<arg/>
<stdout-parser maxMatchLen="32" applyToAll="true">
<target type="property">
<match>
<expression flags="DOTALL | UNIX_LINES">.*PROPERTY[\n]name:(\w*)[\n]value:([\d.-]*).*</expression>
<set field="name">
<entry valueGroup="1"/>
</set>
<set field="value">
<entry valueGroup="2"/>
</set>
</match>
</target>
<target type="property">
<match>
<expression flags="DOTALL | UNIX_LINES">.*PROPERTY[\n]value:([\d.-]*)[\n]name:(\w*).*</expression>
<set field="name">
<entry valueGroup="2"/>
</set>
<set field="value">
<entry valueGroup="1"/>
</set>
</match>
</target>
<target type="attribute">
<match>
<expression flags="DOTALL | UNIX_LINES">.*ATTRIBUTE[\n]name:(\w*)[\n]value:([\d.-]*).*</expression>
<set field="name">
<entry valueGroup="1"/>
</set>
<set field="value">
<entry valueGroup="2"/>
</set>
</match>
</target>
<target type="attribute">
<match>
<expression flags="DOTALL | UNIX_LINES">.*ATTRIBUTE[\n]value:([\d.-]*)[\n]name:(\w*).*</expression>
<set field="name">
<entry valueGroup="2"/>
</set>
<set field="value">
<entry valueGroup="1"/>
</set>
</match>
</target>
</stdout-parser>
</start-up-command>
<start-up-command name="test07PropertyDefsSingleLine">
<arg/>
<stdout-parser delim="\n">
<target type="property">
<match>
<expression expression="<name>(.*)</name><value>(.*)</value>"/>
<set field="name">
<entry valueGroup="1"/>
</set>
<set field="value">
<entry valueGroup="2"/>
</set>
</match>
</target>
</stdout-parser>
</start-up-command>
<start-up-command name="test08JobStates">
<arg/>
<stdout-parser maxMatchLen="32">
<target ref="jobStates">
<match>
<expression flags="DOTALL | UNIX_LINES">.*<job>([\d]*):([\w]*)</job>.*</expression>
<put field="value">
<entry keyGroup="1" valueGroup="2"/>
</put>
</match>
</target>
</stdout-parser>
</start-up-command>
<start-up-command name="test09Staggered">
<arg/>
<stdout-parser delim="\n">
<target type="property">
<match>
<expression>name:(.*)</expression>
<set field="name">
<entry valueGroup="1"/>
</set>
</match>
<match>
<expression>value:(.*)</expression>
<set field="value">
<entry valueGroup="1"/>
</set>
</match>
</target>
</stdout-parser>
</start-up-command>
<start-up-command name="test10Merged">
<arg/>
<stdout-parser delim="\n">
<target type="property">
<match>
<expression>name:(.+);value:(.+)</expression>
<set field="name">
<entry valueGroup="1"/>
</set>
<set field="value">
<entry valueGroup="2"/>
</set>
</match>
<match>
<expression>name:(.+);default:(.+)</expression>
<set field="name">
<entry valueGroup="1"/>
</set>
<set field="default">
<entry valueGroup="2"/>
</set>
</match>
</target>
</stdout-parser>
</start-up-command>
<start-up-command name="test11ExitOn">
<arg/>
<stdout-parser maxMatchLen="32">
<target ref="jobStates">
<match>
<expression flags="DOTALL | UNIX_LINES">.*<job>([\d]*):([\w]*)</job>.*</expression>
<put field="value">
<entry keyGroup="1" valueGroup="2"/>
</put>
</match>
</target>
<exit-on flags="DOTALL | UNIX_LINES">.*EXIT.*</exit-on>
</stdout-parser>
</start-up-command>
<start-up-command name="test12ExitAfter">
<arg/>
<stdout-parser maxMatchLen="32">
<target ref="jobStates">
<match>
<expression flags="DOTALL | UNIX_LINES">.*<job>([\d]*):([\w]*)</job>.*</expression>
<put field="value">
<entry keyGroup="1" valueGroup="2"/>
</put>
</match>
</target>
<exit-after flags="DOTALL | UNIX_LINES">.*EXIT.*</exit-after>
</stdout-parser>
</start-up-command>
<submit-interactive name="empty">
<arg/>
</submit-interactive>
<get-job-status name="get-job-status" ignoreExitStatus="true">
<arg>qstat</arg>
<arg>${ptp_rm:@jobId#name}</arg>
<stdout-parser delim="\n">
<target ref="@jobId">
<match>
<expression>[\d]+[.].+[\s]+.+[\s]+.+[\s]+.+[\s]+([A-Z])[\s]+.+</expression>
<set field="value">
<entry valueGroup="1"/>
</set>
</match>
<test op="EQ">
<value>#value</value>
<value>Q</value>
<set field="value">
<entry value="QUEUED_ACTIVE"/>
</set>
</test>
<test op="EQ">
<value>#value</value>
<value>R</value>
<set field="value">
<entry value="RUNNING"/>
</set>
</test>
<test op="EQ">
<value>#value</value>
<value>S</value>
<set field="value">
<entry value="SUSPENDED"/>
</set>
</test>
<test op="EQ">
<value>#value</value>
<value>C</value>
<set field="value">
<entry value="COMPLETED"/>
</set>
</test>
<test op="EQ">
<value>#value</value>
<value>E</value>
<set field="value">
<entry value="COMPLETED"/>
</set>
</test>
<test op="EQ">
<value>#value</value>
<value>H</value>
<set field="value">
<entry value="SYSTEM_ON_HOLD"/>
</set>
</test>
</target>
</stdout-parser>
<stderr-parser delim="\n">
<target ref="@jobId">
<match>
<expression>.+</expression>
<set field="value">
<entry value="COMPLETED"/>
</set>
</match>
</target>
</stderr-parser>
</get-job-status>
</control-data>
<monitor-data schedulerType="test">
<driver>
<name></name>
</driver>
</monitor-data>
</resource-manager-builder>