summaryrefslogtreecommitdiffstats
path: root/xml/resources-3.10.rng
diff options
context:
space:
mode:
Diffstat (limited to 'xml/resources-3.10.rng')
-rw-r--r--xml/resources-3.10.rng451
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>