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.
PTP/designs/resource manager xsd
<?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>