diff options
Diffstat (limited to 'xml/resources-3.10.rng')
-rw-r--r-- | xml/resources-3.10.rng | 451 |
1 files changed, 451 insertions, 0 deletions
diff --git a/xml/resources-3.10.rng b/xml/resources-3.10.rng new file mode 100644 index 0000000..e540617 --- /dev/null +++ b/xml/resources-3.10.rng @@ -0,0 +1,451 @@ +<?xml version="1.0" encoding="UTF-8"?> +<grammar xmlns="http://relaxng.org/ns/structure/1.0" + datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <start> + <ref name="element-resources"/> + </start> + + <!-- + Include rule definitions so that we can override element-nvset.rule based on + context + --> + <include href="rule-3.10.rng"> + <start combine="choice"> + <notAllowed/> + </start> + </include> + + <define name="element-resources"> + <element name="resources"> + <zeroOrMore> + <choice> + <ref name="element-primitive"/> + <ref name="element-template"/> + <ref name="element-group"/> + <ref name="element-clone"/> + <ref name="element-master"/> + <ref name="element-bundle"/> + </choice> + </zeroOrMore> + </element> + </define> + + <!-- + see upgrade-2.10.xsl + - cibtr:table for="resource-meta-attributes" + --> + <define name="primitive-template.meta_attributes.nvpair.name-unsupported"> + <attribute name="name"> + <data type="string"> + <except> + <choice> + <value>isolation</value> + <value>isolation-host</value> + <value>isolation-instance</value> + <value>isolation-wrapper</value> + </choice> + </except> + </data> + </attribute> + </define> + + <define name="element-resource-extra.primitive-template"> + <zeroOrMore> + <choice> + <ref name="element-instance_attributes"/> + <element name="meta_attributes"> + <grammar> + <include href="nvset-3.10.rng"> + <define name="element-nvset.name"> + <parentRef name="primitive-template.meta_attributes.nvpair.name-unsupported"/> + </define> + </include> + </grammar> + </element> + <element name="utilization"> + <externalRef href="nvset-3.10.rng"/> + </element> + </choice> + </zeroOrMore> + </define> + + <define name="element-primitive"> + <element name="primitive"> + <interleave> + <attribute name="id"><data type="ID"/></attribute> + <choice> + <group> + <ref name="element-resource-class"/> + <attribute name="type"><text/></attribute> + </group> + <attribute name="template"><data type="IDREF"/></attribute> + </choice> + <optional> + <attribute name="description"><text/></attribute> + </optional> + <ref name="element-resource-extra.primitive-template"/> + <ref name="element-operations"/> + </interleave> + </element> + </define> + + <define name="element-template"> + <element name="template"> + <interleave> + <attribute name="id"><data type="ID"/></attribute> + <ref name="element-resource-class"/> + <attribute name="type"><text/></attribute> + <optional> + <attribute name="description"><text/></attribute> + </optional> + <ref name="element-resource-extra.primitive-template"/> + <ref name="element-operations"/> + </interleave> + </element> + </define> + + <define name="element-bundle"> + <element name="bundle"> + <interleave> + <attribute name="id"><data type="ID"/></attribute> + <optional> + <attribute name="description"><text/></attribute> + </optional> + <ref name="element-resource-extra"/> + <choice> + <element name="docker"> + <attribute name="image"><text/></attribute> + <optional> + <attribute name="replicas"><data type="integer"/></attribute> + </optional> + <optional> + <attribute name="replicas-per-host"><data type="integer"/></attribute> + </optional> + <optional> + <choice> + <attribute name="masters"><data type="integer"/></attribute> + <attribute name="promoted-max"><data type="integer"/></attribute> + </choice> + </optional> + <optional> + <attribute name="run-command"> <text/></attribute> + </optional> + <optional> + <attribute name="network"><text/></attribute> + </optional> + <optional> + <attribute name="options"><text/></attribute> + </optional> + </element> + + <!-- @COMPAT rkt containers in bundles are deprecated since 2.1.8 --> + <element name="rkt"> + <attribute name="image"><text/></attribute> + <optional> + <attribute name="replicas"><data type="integer"/></attribute> + </optional> + <optional> + <attribute name="replicas-per-host"><data type="integer"/></attribute> + </optional> + <optional> + <choice> + <attribute name="masters"><data type="integer"/></attribute> + <attribute name="promoted-max"><data type="integer"/></attribute> + </choice> + </optional> + <optional> + <attribute name="run-command"> <text/></attribute> + </optional> + <optional> + <attribute name="network"><text/></attribute> + </optional> + <optional> + <attribute name="options"><text/></attribute> + </optional> + </element> + <element name="podman"> + <attribute name="image"><text/></attribute> + <optional> + <attribute name="replicas"><data type="integer"/></attribute> + </optional> + <optional> + <attribute name="replicas-per-host"><data type="integer"/></attribute> + </optional> + <optional> + <choice> + <attribute name="masters"><data type="integer"/></attribute> + <attribute name="promoted-max"><data type="integer"/></attribute> + </choice> + </optional> + <optional> + <attribute name="run-command"> <text/></attribute> + </optional> + <optional> + <attribute name="network"><text/></attribute> + </optional> + <optional> + <attribute name="options"><text/></attribute> + </optional> + </element> + </choice> + <optional> + <element name="network"> + <optional> + <attribute name="ip-range-start"><text/></attribute> + </optional> + <optional> + <attribute name="control-port"><data type="integer"/></attribute> + </optional> + <optional> + <attribute name="host-interface"><text/></attribute> + </optional> + <optional> + <attribute name="host-netmask"><data type="integer"/></attribute> + </optional> + <optional> + <attribute name="add-host"><data type="boolean"/></attribute> + </optional> + <zeroOrMore> + <element name="port-mapping"> + <attribute name="id"><data type="ID"/></attribute> + <choice> + <group> + <attribute name="port"><data type="integer"/></attribute> + <optional> + <attribute name="internal-port"><data type="integer"/></attribute> + </optional> + </group> + <attribute name="range"> + <data type="string"> + <param name="pattern">([0-9\-]+)</param> + </data> + </attribute> + </choice> + </element> + </zeroOrMore> + </element> + </optional> + <optional> + <element name="storage"> + <zeroOrMore> + <element name="storage-mapping"> + <attribute name="id"><data type="ID"/></attribute> + <choice> + <attribute name="source-dir"><text/></attribute> + <attribute name="source-dir-root"><text/></attribute> + </choice> + <attribute name="target-dir"><text/></attribute> + <optional> + <attribute name="options"><text/></attribute> + </optional> + </element> + </zeroOrMore> + </element> + </optional> + <optional> + <ref name="element-primitive"/> + </optional> + </interleave> + </element> + </define> + + <define name="element-group"> + <element name="group"> + <attribute name="id"><data type="ID"/></attribute> + <optional> + <attribute name="description"><text/></attribute> + </optional> + <interleave> + <ref name="element-resource-extra"/> + <oneOrMore> + <ref name="element-primitive"/> + </oneOrMore> + </interleave> + </element> + </define> + + <define name="element-clone"> + <element name="clone"> + <attribute name="id"><data type="ID"/></attribute> + <optional> + <attribute name="description"><text/></attribute> + </optional> + <interleave> + <ref name="element-resource-extra"/> + <choice> + <ref name="element-primitive"/> + <ref name="element-group"/> + </choice> + </interleave> + </element> + </define> + + <define name="element-master"> + <element name="master"> + <attribute name="id"><data type="ID"/></attribute> + <optional> + <attribute name="description"><text/></attribute> + </optional> + <interleave> + <ref name="element-resource-extra"/> + <choice> + <ref name="element-primitive"/> + <ref name="element-group"/> + </choice> + </interleave> + </element> + </define> + + <define name="element-resource-extra"> + <zeroOrMore> + <choice> + <ref name="element-instance_attributes"/> + <element name="meta_attributes"> + <externalRef href="nvset-3.10.rng"/> + </element> + </choice> + </zeroOrMore> + </define> + + <!-- + see upgrade-2.10.xsl + - cibtr:table for="resources-operation" + --> + <define name="op.meta_attributes.nvpair.name-unsupported"> + <attribute name="name"> + <data type="string"> + <except> + <choice> + <value>requires</value> + </choice> + </except> + </data> + </attribute> + </define> + + <define name="element-resource-extra.op"> + <zeroOrMore> + <choice> + <ref name="element-instance_attributes"/> + <element name="meta_attributes"> + <grammar> + <include href="nvset-3.10.rng"> + <define name="element-nvset.name"> + <parentRef name="op.meta_attributes.nvpair.name-unsupported"/> + </define> + + <!-- + @COMPAT: Support for node attribute expressions is deprecated + here. We can just delete this define when we drop support. + --> + <define name="element-nvset.rule"> + <parentRef name="element-rule-node-allowed"/> + </define> + </include> + </grammar> + </element> + </choice> + </zeroOrMore> + </define> + + <define name="element-operations"> + <optional> + <element name="operations"> + <optional> + <attribute name="id"><data type="ID"/></attribute> + </optional> + <optional> + <attribute name="id-ref"><data type="IDREF"/></attribute> + </optional> + <zeroOrMore> + <element name="op"> + <attribute name="id"><data type="ID"/></attribute> + <attribute name="name"><text/></attribute> + <attribute name="interval"><text/></attribute> + <optional> + <attribute name="description"><text/></attribute> + </optional> + <optional> + <choice> + <attribute name="start-delay"><text/></attribute> + <attribute name="interval-origin"><text/></attribute> + </choice> + </optional> + <optional> + <attribute name="timeout"><text/></attribute> + </optional> + <optional> + <attribute name="enabled"><data type="boolean"/></attribute> + </optional> + <optional> + <attribute name="record-pending"><data type="boolean"/></attribute> + </optional> + <optional> + <attribute name="role"> + <choice> + <value>Stopped</value> + <value>Started</value> + <value>Promoted</value> + <value>Unpromoted</value> + <value>Slave</value> + <value>Master</value> + </choice> + </attribute> + </optional> + <optional> + <attribute name="on-fail"> + <choice> + <value>ignore</value> + <value>block</value> + <value>demote</value> + <value>stop</value> + <value>restart</value> + <value>standby</value> + <value>fence</value> + <value>restart-container</value> + </choice> + </attribute> + </optional> + <ref name="element-resource-extra.op"/> + </element> + </zeroOrMore> + </element> + </optional> + </define> + + <define name="element-resource-class"> + <choice> + <group> + <attribute name="class"><value>ocf</value></attribute> + <attribute name="provider"><text/></attribute> + </group> + <attribute name="class"> + <choice> + <value>lsb</value> + <value>heartbeat</value> + <value>stonith</value> + <value>service</value> + <value>systemd</value> + + <!-- @COMPAT upstart resources are deprecated since 2.1.0 --> + <value>upstart</value> + + <!-- @COMPAT nagios resources are deprecated since 2.1.6 --> + <value>nagios</value> + </choice> + </attribute> + </choice> + </define> + + <define name="element-instance_attributes"> + <element name="instance_attributes"> + <grammar> + <include href="nvset-3.10.rng"> + <define name="element-nvset.rule"> + <parentRef name="element-rule-node-allowed"/> + </define> + </include> + </grammar> + </element> + </define> +</grammar> |