Page Menu
Home
ClusterLabs Projects
Search
Configure Global Search
Log In
Files
F4512111
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
34 KB
Referenced Files
None
Subscribers
None
View Options
diff --git a/cts/schemas/test-3/ref.err/multiple-location-rules.ref.err-0 b/cts/schemas/test-3/ref.err/multiple-location-rules.ref.err-0
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/cts/schemas/test-3/ref.err/multiple-location-rules.ref.err-1 b/cts/schemas/test-3/ref.err/multiple-location-rules.ref.err-1
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/cts/schemas/test-3/ref.err/multiple-location-rules.ref.err-2 b/cts/schemas/test-3/ref.err/multiple-location-rules.ref.err-2
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/cts/schemas/test-3/ref.err/multiple-location-rules.ref.err-99 b/cts/schemas/test-3/ref.err/multiple-location-rules.ref.err-99
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/cts/schemas/test-3/ref/multiple-location-rules.ref-0 b/cts/schemas/test-3/ref/multiple-location-rules.ref-0
new file mode 100644
index 0000000000..38355bbf07
--- /dev/null
+++ b/cts/schemas/test-3/ref/multiple-location-rules.ref-0
@@ -0,0 +1,121 @@
+<cib crm_feature_set="3.19.7" validate-with="pacemaker-3.10" epoch="16" num_updates="0" admin_epoch="0" original="1">
+ <configuration original="1">
+ <!-- The essential elements of this test are:
+ * There is a location constraint (ban-rsc1) containing a rsc attribute
+ and two top-level rules.
+ * There is a location constraint (allow-rsc1) containing a rsc
+ attribute and one top-level rule.
+ * There is a location constraint (allow-rsc2) containing a rsc
+ attribute and one top-level rule with two nested rules.
+ * There is a location constraint (ban-rsc3-rsc4-node1-node2) containing
+ two resource_set elements (with id attributes), two top-level
+ rules, and two rule elements (with id attributes) within a lifetime
+ element.
+ * There is a location constraint (ban-rsc3-rsc4-node1-node2) containing
+ two resource_set elements (with id-ref attributes), two top-level
+ rules, and two rule elements (with id-ref attributes) within a
+ lifetime element.
+
+ In this situation:
+ * ban-rsc1 should be replaced by two new location constraints, each
+ containing one of the original rules.
+ * allow-rsc1 and allow-rsc2 should be unmodified.
+ * ban-rsc3-rsc4-node1-node2 should be replaced by two new location
+ constraints, each containing one of the original rules. The first of
+ the new constraints should contain the original resource_set and
+ lifetime rule elements, while the second should contain id-refs to
+ them.
+ * ban-rsc3-rsc4-node3-node4 should be replaced by two new location
+ constraints, each containing one of the original rules. Both of the
+ new constraints should contain the original resource_set and lifetime
+ rule elements, which are id-refs to resource sets defined in
+ ban-rsc3-rsc4-node1-node2.
+ * The rules within a lifetime element should be converted to an "or"
+ rule set nested alongside an "and" rule set containing the other
+ top-level rule.
+ -->
+ <crm_config original="1"/>
+ <nodes original="1">
+ <node id="node1" uname="node1" type="member" original="1"/>
+ <node id="node2" uname="node2" type="member" original="1"/>
+ <node id="node3" uname="node3" type="member" original="1"/>
+ <node id="node4" uname="node3" type="member" original="1"/>
+ </nodes>
+ <resources original="1">
+ <primitive id="rsc1" class="ocf" type="Dummy" provider="pacemaker" original="1"/>
+ <primitive id="rsc2" class="ocf" type="Dummy" provider="pacemaker" original="1"/>
+ <primitive id="rsc3" class="ocf" type="Dummy" provider="pacemaker" original="1"/>
+ <primitive id="rsc4" class="ocf" type="Dummy" provider="pacemaker" original="1"/>
+ </resources>
+ <constraints original="1">
+ <rsc_location id="ban-rsc1" rsc="rsc1" original="1">
+ <rule id="ban-rsc1-rule1" score="-INFINITY" original="1">
+ <expression id="ban-rsc1-rule1-expr" attribute="#uname" operation="eq" value="node1" original="1"/>
+ </rule>
+ <rule id="ban-rsc1-rule2" score="-INFINITY" original="1">
+ <expression id="ban-rsc1-rule2-expr" attribute="#uname" operation="eq" value="node2" original="1"/>
+ </rule>
+ </rsc_location>
+ <rsc_location id="allow-rsc1" rsc="rsc1" original="1">
+ <rule id="allow-rsc1-rule" score="INFINITY" original="1">
+ <expression id="allow-rsc1-rule-expr" attribute="#uname" operation="eq" value="node3" original="1"/>
+ </rule>
+ </rsc_location>
+ <rsc_location id="allow-rsc2" rsc="rsc2" original="1">
+ <rule id="allow-rsc2-rule" score="INFINITY" boolean-op="or" original="1">
+ <rule id="allow-rsc2-rule-subrule1" original="1">
+ <expression id="allow-rsc2-rule-subrule1-expr" attribute="#uname" operation="eq" value="node1" original="1"/>
+ </rule>
+ <rule id="allow-rsc2-rule-subrule2" original="1">
+ <expression id="allow-rsc2-rule-subrule2-expr" attribute="#uname" operation="eq" value="node2" original="1"/>
+ </rule>
+ </rule>
+ </rsc_location>
+ <rsc_location id="ban-rsc3-rsc4-node1-node2" original="1">
+ <resource_set id="ban-rsc3-rsc4-node1-node2-set1" original="1">
+ <resource_ref id="rsc3" original="1"/>
+ </resource_set>
+ <resource_set id="ban-rsc3-rsc4-node1-node2-set2" original="1">
+ <resource_ref id="rsc4" original="1"/>
+ </resource_set>
+ <rule id="ban-rsc3-rsc4-node1-node2-rule1" score="-INFINITY" original="1">
+ <expression id="ban-rsc3-rsc4-node1-node2-rule1-expr" attribute="#uname" operation="eq" value="node1" original="1"/>
+ </rule>
+ <rule id="ban-rsc3-rsc4-node1-node2-rule2" score="-INFINITY" original="1">
+ <expression id="ban-rsc3-rsc4-node1-node2-rule2-expr" attribute="#uname" operation="eq" value="node2" original="1"/>
+ </rule>
+ <lifetime original="1">
+ <rule id="ban-rsc3-rsc4-node1-node2-lifetime-rule1" original="1">
+ <date_expression id="ban-rsc3-rsc4-node1-node2-lifetime-rule1-expr" operation="in_range" start="2004-001" original="1"/>
+ </rule>
+ <rule id="ban-rsc3-rsc4-node1-node2-lifetime-rule2" original="1">
+ <date_expression id="ban-rsc3-rsc4-node1-node2-lifetime-rule2-expr" operation="in_range" end="2005-001" original="1"/>
+ </rule>
+ </lifetime>
+ </rsc_location>
+ <rsc_location id="ban-rsc3-rsc4-node3-node4" original="1">
+ <resource_set id="ban-rsc3-rsc4-node1-node2-set1" original="0">
+ <resource_ref id="rsc3" original="0"/>
+ </resource_set>
+ <resource_set id="ban-rsc3-rsc4-node1-node2-set2" original="0">
+ <resource_ref id="rsc4" original="0"/>
+ </resource_set>
+ <rule id="ban-rsc3-rsc4-node3-node4-rule1" score="-INFINITY" original="1">
+ <expression id="ban-rsc3-rsc4-node3-node4-rule1-expr" attribute="#uname" operation="eq" value="node3" original="1"/>
+ </rule>
+ <rule id="ban-rsc3-rsc4-node3-node4-rule2" score="-INFINITY" original="1">
+ <expression id="ban-rsc3-rsc4-node3-node4-rule2-expr" attribute="#uname" operation="eq" value="node4" original="1"/>
+ </rule>
+ <lifetime original="1">
+ <rule id="ban-rsc3-rsc4-node1-node2-lifetime-rule1" original="0">
+ <date_expression id="ban-rsc3-rsc4-node1-node2-lifetime-rule1-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ <rule id="ban-rsc3-rsc4-node1-node2-lifetime-rule2" original="0">
+ <date_expression id="ban-rsc3-rsc4-node1-node2-lifetime-rule2-expr" operation="in_range" end="2005-001" original="0"/>
+ </rule>
+ </lifetime>
+ </rsc_location>
+ </constraints>
+ </configuration>
+ <status original="1"/>
+</cib>
diff --git a/cts/schemas/test-3/ref/multiple-location-rules.ref-1 b/cts/schemas/test-3/ref/multiple-location-rules.ref-1
new file mode 100644
index 0000000000..b9e0233243
--- /dev/null
+++ b/cts/schemas/test-3/ref/multiple-location-rules.ref-1
@@ -0,0 +1,121 @@
+<cib crm_feature_set="3.19.7" validate-with="pacemaker-4.0" epoch="16" num_updates="0" admin_epoch="0" original="1">
+ <configuration original="1">
+ <!-- The essential elements of this test are:
+ * There is a location constraint (ban-rsc1) containing a rsc attribute
+ and two top-level rules.
+ * There is a location constraint (allow-rsc1) containing a rsc
+ attribute and one top-level rule.
+ * There is a location constraint (allow-rsc2) containing a rsc
+ attribute and one top-level rule with two nested rules.
+ * There is a location constraint (ban-rsc3-rsc4-node1-node2) containing
+ two resource_set elements (with id attributes), two top-level
+ rules, and two rule elements (with id attributes) within a lifetime
+ element.
+ * There is a location constraint (ban-rsc3-rsc4-node1-node2) containing
+ two resource_set elements (with id-ref attributes), two top-level
+ rules, and two rule elements (with id-ref attributes) within a
+ lifetime element.
+
+ In this situation:
+ * ban-rsc1 should be replaced by two new location constraints, each
+ containing one of the original rules.
+ * allow-rsc1 and allow-rsc2 should be unmodified.
+ * ban-rsc3-rsc4-node1-node2 should be replaced by two new location
+ constraints, each containing one of the original rules. The first of
+ the new constraints should contain the original resource_set and
+ lifetime rule elements, while the second should contain id-refs to
+ them.
+ * ban-rsc3-rsc4-node3-node4 should be replaced by two new location
+ constraints, each containing one of the original rules. Both of the
+ new constraints should contain the original resource_set and lifetime
+ rule elements, which are id-refs to resource sets defined in
+ ban-rsc3-rsc4-node1-node2.
+ * The rules within a lifetime element should be converted to an "or"
+ rule set nested alongside an "and" rule set containing the other
+ top-level rule.
+ -->
+ <crm_config original="1"/>
+ <nodes original="1">
+ <node id="node1" uname="node1" type="member" original="1"/>
+ <node id="node2" uname="node2" type="member" original="1"/>
+ <node id="node3" uname="node3" type="member" original="1"/>
+ <node id="node4" uname="node3" type="member" original="1"/>
+ </nodes>
+ <resources original="1">
+ <primitive id="rsc1" class="ocf" type="Dummy" provider="pacemaker" original="1"/>
+ <primitive id="rsc2" class="ocf" type="Dummy" provider="pacemaker" original="1"/>
+ <primitive id="rsc3" class="ocf" type="Dummy" provider="pacemaker" original="1"/>
+ <primitive id="rsc4" class="ocf" type="Dummy" provider="pacemaker" original="1"/>
+ </resources>
+ <constraints original="1">
+ <rsc_location id="ban-rsc1" rsc="rsc1" original="1">
+ <rule id="ban-rsc1-rule1" score="-INFINITY" original="1">
+ <expression id="ban-rsc1-rule1-expr" attribute="#uname" operation="eq" value="node1" original="1"/>
+ </rule>
+ <rule id="ban-rsc1-rule2" score="-INFINITY" original="1">
+ <expression id="ban-rsc1-rule2-expr" attribute="#uname" operation="eq" value="node2" original="1"/>
+ </rule>
+ </rsc_location>
+ <rsc_location id="allow-rsc1" rsc="rsc1" original="1">
+ <rule id="allow-rsc1-rule" score="INFINITY" original="1">
+ <expression id="allow-rsc1-rule-expr" attribute="#uname" operation="eq" value="node3" original="1"/>
+ </rule>
+ </rsc_location>
+ <rsc_location id="allow-rsc2" rsc="rsc2" original="1">
+ <rule id="allow-rsc2-rule" score="INFINITY" boolean-op="or" original="1">
+ <rule id="allow-rsc2-rule-subrule1" original="1">
+ <expression id="allow-rsc2-rule-subrule1-expr" attribute="#uname" operation="eq" value="node1" original="1"/>
+ </rule>
+ <rule id="allow-rsc2-rule-subrule2" original="1">
+ <expression id="allow-rsc2-rule-subrule2-expr" attribute="#uname" operation="eq" value="node2" original="1"/>
+ </rule>
+ </rule>
+ </rsc_location>
+ <rsc_location id="ban-rsc3-rsc4-node1-node2" original="1">
+ <resource_set id="ban-rsc3-rsc4-node1-node2-set1" original="1">
+ <resource_ref id="rsc3" original="1"/>
+ </resource_set>
+ <resource_set id="ban-rsc3-rsc4-node1-node2-set2" original="1">
+ <resource_ref id="rsc4" original="1"/>
+ </resource_set>
+ <rule id="ban-rsc3-rsc4-node1-node2-rule1" score="-INFINITY" original="1">
+ <expression id="ban-rsc3-rsc4-node1-node2-rule1-expr" attribute="#uname" operation="eq" value="node1" original="1"/>
+ </rule>
+ <rule id="ban-rsc3-rsc4-node1-node2-rule2" score="-INFINITY" original="1">
+ <expression id="ban-rsc3-rsc4-node1-node2-rule2-expr" attribute="#uname" operation="eq" value="node2" original="1"/>
+ </rule>
+ <lifetime original="1">
+ <rule id="ban-rsc3-rsc4-node1-node2-lifetime-rule1" original="1">
+ <date_expression id="ban-rsc3-rsc4-node1-node2-lifetime-rule1-expr" operation="in_range" start="2004-001" original="1"/>
+ </rule>
+ <rule id="ban-rsc3-rsc4-node1-node2-lifetime-rule2" original="1">
+ <date_expression id="ban-rsc3-rsc4-node1-node2-lifetime-rule2-expr" operation="in_range" end="2005-001" original="1"/>
+ </rule>
+ </lifetime>
+ </rsc_location>
+ <rsc_location id="ban-rsc3-rsc4-node3-node4" original="1">
+ <resource_set id="ban-rsc3-rsc4-node1-node2-set1" original="0">
+ <resource_ref id="rsc3" original="0"/>
+ </resource_set>
+ <resource_set id="ban-rsc3-rsc4-node1-node2-set2" original="0">
+ <resource_ref id="rsc4" original="0"/>
+ </resource_set>
+ <rule id="ban-rsc3-rsc4-node3-node4-rule1" score="-INFINITY" original="1">
+ <expression id="ban-rsc3-rsc4-node3-node4-rule1-expr" attribute="#uname" operation="eq" value="node3" original="1"/>
+ </rule>
+ <rule id="ban-rsc3-rsc4-node3-node4-rule2" score="-INFINITY" original="1">
+ <expression id="ban-rsc3-rsc4-node3-node4-rule2-expr" attribute="#uname" operation="eq" value="node4" original="1"/>
+ </rule>
+ <lifetime original="1">
+ <rule id="ban-rsc3-rsc4-node1-node2-lifetime-rule1" original="0">
+ <date_expression id="ban-rsc3-rsc4-node1-node2-lifetime-rule1-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ <rule id="ban-rsc3-rsc4-node1-node2-lifetime-rule2" original="0">
+ <date_expression id="ban-rsc3-rsc4-node1-node2-lifetime-rule2-expr" operation="in_range" end="2005-001" original="0"/>
+ </rule>
+ </lifetime>
+ </rsc_location>
+ </constraints>
+ </configuration>
+ <status original="1"/>
+</cib>
diff --git a/cts/schemas/test-3/ref/multiple-location-rules.ref-2 b/cts/schemas/test-3/ref/multiple-location-rules.ref-2
new file mode 100644
index 0000000000..b9e0233243
--- /dev/null
+++ b/cts/schemas/test-3/ref/multiple-location-rules.ref-2
@@ -0,0 +1,121 @@
+<cib crm_feature_set="3.19.7" validate-with="pacemaker-4.0" epoch="16" num_updates="0" admin_epoch="0" original="1">
+ <configuration original="1">
+ <!-- The essential elements of this test are:
+ * There is a location constraint (ban-rsc1) containing a rsc attribute
+ and two top-level rules.
+ * There is a location constraint (allow-rsc1) containing a rsc
+ attribute and one top-level rule.
+ * There is a location constraint (allow-rsc2) containing a rsc
+ attribute and one top-level rule with two nested rules.
+ * There is a location constraint (ban-rsc3-rsc4-node1-node2) containing
+ two resource_set elements (with id attributes), two top-level
+ rules, and two rule elements (with id attributes) within a lifetime
+ element.
+ * There is a location constraint (ban-rsc3-rsc4-node1-node2) containing
+ two resource_set elements (with id-ref attributes), two top-level
+ rules, and two rule elements (with id-ref attributes) within a
+ lifetime element.
+
+ In this situation:
+ * ban-rsc1 should be replaced by two new location constraints, each
+ containing one of the original rules.
+ * allow-rsc1 and allow-rsc2 should be unmodified.
+ * ban-rsc3-rsc4-node1-node2 should be replaced by two new location
+ constraints, each containing one of the original rules. The first of
+ the new constraints should contain the original resource_set and
+ lifetime rule elements, while the second should contain id-refs to
+ them.
+ * ban-rsc3-rsc4-node3-node4 should be replaced by two new location
+ constraints, each containing one of the original rules. Both of the
+ new constraints should contain the original resource_set and lifetime
+ rule elements, which are id-refs to resource sets defined in
+ ban-rsc3-rsc4-node1-node2.
+ * The rules within a lifetime element should be converted to an "or"
+ rule set nested alongside an "and" rule set containing the other
+ top-level rule.
+ -->
+ <crm_config original="1"/>
+ <nodes original="1">
+ <node id="node1" uname="node1" type="member" original="1"/>
+ <node id="node2" uname="node2" type="member" original="1"/>
+ <node id="node3" uname="node3" type="member" original="1"/>
+ <node id="node4" uname="node3" type="member" original="1"/>
+ </nodes>
+ <resources original="1">
+ <primitive id="rsc1" class="ocf" type="Dummy" provider="pacemaker" original="1"/>
+ <primitive id="rsc2" class="ocf" type="Dummy" provider="pacemaker" original="1"/>
+ <primitive id="rsc3" class="ocf" type="Dummy" provider="pacemaker" original="1"/>
+ <primitive id="rsc4" class="ocf" type="Dummy" provider="pacemaker" original="1"/>
+ </resources>
+ <constraints original="1">
+ <rsc_location id="ban-rsc1" rsc="rsc1" original="1">
+ <rule id="ban-rsc1-rule1" score="-INFINITY" original="1">
+ <expression id="ban-rsc1-rule1-expr" attribute="#uname" operation="eq" value="node1" original="1"/>
+ </rule>
+ <rule id="ban-rsc1-rule2" score="-INFINITY" original="1">
+ <expression id="ban-rsc1-rule2-expr" attribute="#uname" operation="eq" value="node2" original="1"/>
+ </rule>
+ </rsc_location>
+ <rsc_location id="allow-rsc1" rsc="rsc1" original="1">
+ <rule id="allow-rsc1-rule" score="INFINITY" original="1">
+ <expression id="allow-rsc1-rule-expr" attribute="#uname" operation="eq" value="node3" original="1"/>
+ </rule>
+ </rsc_location>
+ <rsc_location id="allow-rsc2" rsc="rsc2" original="1">
+ <rule id="allow-rsc2-rule" score="INFINITY" boolean-op="or" original="1">
+ <rule id="allow-rsc2-rule-subrule1" original="1">
+ <expression id="allow-rsc2-rule-subrule1-expr" attribute="#uname" operation="eq" value="node1" original="1"/>
+ </rule>
+ <rule id="allow-rsc2-rule-subrule2" original="1">
+ <expression id="allow-rsc2-rule-subrule2-expr" attribute="#uname" operation="eq" value="node2" original="1"/>
+ </rule>
+ </rule>
+ </rsc_location>
+ <rsc_location id="ban-rsc3-rsc4-node1-node2" original="1">
+ <resource_set id="ban-rsc3-rsc4-node1-node2-set1" original="1">
+ <resource_ref id="rsc3" original="1"/>
+ </resource_set>
+ <resource_set id="ban-rsc3-rsc4-node1-node2-set2" original="1">
+ <resource_ref id="rsc4" original="1"/>
+ </resource_set>
+ <rule id="ban-rsc3-rsc4-node1-node2-rule1" score="-INFINITY" original="1">
+ <expression id="ban-rsc3-rsc4-node1-node2-rule1-expr" attribute="#uname" operation="eq" value="node1" original="1"/>
+ </rule>
+ <rule id="ban-rsc3-rsc4-node1-node2-rule2" score="-INFINITY" original="1">
+ <expression id="ban-rsc3-rsc4-node1-node2-rule2-expr" attribute="#uname" operation="eq" value="node2" original="1"/>
+ </rule>
+ <lifetime original="1">
+ <rule id="ban-rsc3-rsc4-node1-node2-lifetime-rule1" original="1">
+ <date_expression id="ban-rsc3-rsc4-node1-node2-lifetime-rule1-expr" operation="in_range" start="2004-001" original="1"/>
+ </rule>
+ <rule id="ban-rsc3-rsc4-node1-node2-lifetime-rule2" original="1">
+ <date_expression id="ban-rsc3-rsc4-node1-node2-lifetime-rule2-expr" operation="in_range" end="2005-001" original="1"/>
+ </rule>
+ </lifetime>
+ </rsc_location>
+ <rsc_location id="ban-rsc3-rsc4-node3-node4" original="1">
+ <resource_set id="ban-rsc3-rsc4-node1-node2-set1" original="0">
+ <resource_ref id="rsc3" original="0"/>
+ </resource_set>
+ <resource_set id="ban-rsc3-rsc4-node1-node2-set2" original="0">
+ <resource_ref id="rsc4" original="0"/>
+ </resource_set>
+ <rule id="ban-rsc3-rsc4-node3-node4-rule1" score="-INFINITY" original="1">
+ <expression id="ban-rsc3-rsc4-node3-node4-rule1-expr" attribute="#uname" operation="eq" value="node3" original="1"/>
+ </rule>
+ <rule id="ban-rsc3-rsc4-node3-node4-rule2" score="-INFINITY" original="1">
+ <expression id="ban-rsc3-rsc4-node3-node4-rule2-expr" attribute="#uname" operation="eq" value="node4" original="1"/>
+ </rule>
+ <lifetime original="1">
+ <rule id="ban-rsc3-rsc4-node1-node2-lifetime-rule1" original="0">
+ <date_expression id="ban-rsc3-rsc4-node1-node2-lifetime-rule1-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ <rule id="ban-rsc3-rsc4-node1-node2-lifetime-rule2" original="0">
+ <date_expression id="ban-rsc3-rsc4-node1-node2-lifetime-rule2-expr" operation="in_range" end="2005-001" original="0"/>
+ </rule>
+ </lifetime>
+ </rsc_location>
+ </constraints>
+ </configuration>
+ <status original="1"/>
+</cib>
diff --git a/cts/schemas/test-3/ref/multiple-location-rules.ref-99 b/cts/schemas/test-3/ref/multiple-location-rules.ref-99
new file mode 100644
index 0000000000..e99b327917
--- /dev/null
+++ b/cts/schemas/test-3/ref/multiple-location-rules.ref-99
@@ -0,0 +1,113 @@
+<cib crm_feature_set="3.19.7" validate-with="pacemaker-4.0" epoch="16" num_updates="0" admin_epoch="0">
+ <configuration>
+ <!-- The essential elements of this test are:
+ * There is a location constraint (ban-rsc1) containing a rsc attribute
+ and two top-level rules.
+ * There is a location constraint (allow-rsc1) containing a rsc
+ attribute and one top-level rule.
+ * There is a location constraint (allow-rsc2) containing a rsc
+ attribute and one top-level rule with two nested rules.
+ * There is a location constraint (ban-rsc3-rsc4-node1-node2) containing
+ two resource_set elements (with id attributes), two top-level
+ rules, and two rule elements (with id attributes) within a lifetime
+ element.
+ * There is a location constraint (ban-rsc3-rsc4-node1-node2) containing
+ two resource_set elements (with id-ref attributes), two top-level
+ rules, and two rule elements (with id-ref attributes) within a
+ lifetime element.
+
+ In this situation:
+ * ban-rsc1 should be replaced by two new location constraints, each
+ containing one of the original rules.
+ * allow-rsc1 and allow-rsc2 should be unmodified.
+ * ban-rsc3-rsc4-node1-node2 should be replaced by two new location
+ constraints, each containing one of the original rules. The first of
+ the new constraints should contain the original resource_set and
+ lifetime rule elements, while the second should contain id-refs to
+ them.
+ * ban-rsc3-rsc4-node3-node4 should be replaced by two new location
+ constraints, each containing one of the original rules. Both of the
+ new constraints should contain the original resource_set and lifetime
+ rule elements, which are id-refs to resource sets defined in
+ ban-rsc3-rsc4-node1-node2.
+ * The rules within a lifetime element should be converted to an "or"
+ rule set nested alongside an "and" rule set containing the other
+ top-level rule.
+ -->
+ <crm_config/>
+ <nodes>
+ <node id="node1" uname="node1" type="member"/>
+ <node id="node2" uname="node2" type="member"/>
+ <node id="node3" uname="node3" type="member"/>
+ <node id="node4" uname="node3" type="member"/>
+ </nodes>
+ <resources>
+ <primitive id="rsc1" class="ocf" type="Dummy" provider="pacemaker"/>
+ <primitive id="rsc2" class="ocf" type="Dummy" provider="pacemaker"/>
+ <primitive id="rsc3" class="ocf" type="Dummy" provider="pacemaker"/>
+ <primitive id="rsc4" class="ocf" type="Dummy" provider="pacemaker"/>
+ </resources>
+ <constraints>
+ <rsc_location id="ban-rsc1" rsc="rsc1">
+ <rule id="ban-rsc1-rule1" score="-INFINITY">
+ <expression id="ban-rsc1-rule1-expr" attribute="#uname" operation="eq" value="node1"/>
+ </rule>
+ <rule id="ban-rsc1-rule2" score="-INFINITY">
+ <expression id="ban-rsc1-rule2-expr" attribute="#uname" operation="eq" value="node2"/>
+ </rule>
+ </rsc_location>
+ <rsc_location id="allow-rsc1" rsc="rsc1">
+ <rule id="allow-rsc1-rule" score="INFINITY">
+ <expression id="allow-rsc1-rule-expr" attribute="#uname" operation="eq" value="node3"/>
+ </rule>
+ </rsc_location>
+ <rsc_location id="allow-rsc2" rsc="rsc2">
+ <rule id="allow-rsc2-rule" score="INFINITY" boolean-op="or">
+ <rule id="allow-rsc2-rule-subrule1">
+ <expression id="allow-rsc2-rule-subrule1-expr" attribute="#uname" operation="eq" value="node1"/>
+ </rule>
+ <rule id="allow-rsc2-rule-subrule2">
+ <expression id="allow-rsc2-rule-subrule2-expr" attribute="#uname" operation="eq" value="node2"/>
+ </rule>
+ </rule>
+ </rsc_location>
+ <rsc_location id="ban-rsc3-rsc4-node1-node2">
+ <resource_set id="ban-rsc3-rsc4-node1-node2-set1">
+ <resource_ref id="rsc3"/>
+ </resource_set>
+ <resource_set id="ban-rsc3-rsc4-node1-node2-set2">
+ <resource_ref id="rsc4"/>
+ </resource_set>
+ <rule id="ban-rsc3-rsc4-node1-node2-rule1" score="-INFINITY">
+ <expression id="ban-rsc3-rsc4-node1-node2-rule1-expr" attribute="#uname" operation="eq" value="node1"/>
+ </rule>
+ <rule id="ban-rsc3-rsc4-node1-node2-rule2" score="-INFINITY">
+ <expression id="ban-rsc3-rsc4-node1-node2-rule2-expr" attribute="#uname" operation="eq" value="node2"/>
+ </rule>
+ <lifetime>
+ <rule id="ban-rsc3-rsc4-node1-node2-lifetime-rule1">
+ <date_expression id="ban-rsc3-rsc4-node1-node2-lifetime-rule1-expr" operation="in_range" start="2004-001"/>
+ </rule>
+ <rule id="ban-rsc3-rsc4-node1-node2-lifetime-rule2">
+ <date_expression id="ban-rsc3-rsc4-node1-node2-lifetime-rule2-expr" operation="in_range" end="2005-001"/>
+ </rule>
+ </lifetime>
+ </rsc_location>
+ <rsc_location id="ban-rsc3-rsc4-node3-node4">
+ <resource_set id-ref="ban-rsc3-rsc4-node1-node2-set1"/>
+ <resource_set id-ref="ban-rsc3-rsc4-node1-node2-set2"/>
+ <rule id="ban-rsc3-rsc4-node3-node4-rule1" score="-INFINITY">
+ <expression id="ban-rsc3-rsc4-node3-node4-rule1-expr" attribute="#uname" operation="eq" value="node3"/>
+ </rule>
+ <rule id="ban-rsc3-rsc4-node3-node4-rule2" score="-INFINITY">
+ <expression id="ban-rsc3-rsc4-node3-node4-rule2-expr" attribute="#uname" operation="eq" value="node4"/>
+ </rule>
+ <lifetime>
+ <rule id-ref="ban-rsc3-rsc4-node1-node2-lifetime-rule1"/>
+ <rule id-ref="ban-rsc3-rsc4-node1-node2-lifetime-rule2"/>
+ </lifetime>
+ </rsc_location>
+ </constraints>
+ </configuration>
+ <status/>
+</cib>
diff --git a/cts/schemas/test-3/xml/multiple-location-rules.xml b/cts/schemas/test-3/xml/multiple-location-rules.xml
new file mode 100644
index 0000000000..9f70653bea
--- /dev/null
+++ b/cts/schemas/test-3/xml/multiple-location-rules.xml
@@ -0,0 +1,113 @@
+<cib crm_feature_set="3.19.7" validate-with="pacemaker-3.10" epoch="16" num_updates="0" admin_epoch="0">
+ <configuration>
+ <!-- The essential elements of this test are:
+ * There is a location constraint (ban-rsc1) containing a rsc attribute
+ and two top-level rules.
+ * There is a location constraint (allow-rsc1) containing a rsc
+ attribute and one top-level rule.
+ * There is a location constraint (allow-rsc2) containing a rsc
+ attribute and one top-level rule with two nested rules.
+ * There is a location constraint (ban-rsc3-rsc4-node1-node2) containing
+ two resource_set elements (with id attributes), two top-level
+ rules, and two rule elements (with id attributes) within a lifetime
+ element.
+ * There is a location constraint (ban-rsc3-rsc4-node1-node2) containing
+ two resource_set elements (with id-ref attributes), two top-level
+ rules, and two rule elements (with id-ref attributes) within a
+ lifetime element.
+
+ In this situation:
+ * ban-rsc1 should be replaced by two new location constraints, each
+ containing one of the original rules.
+ * allow-rsc1 and allow-rsc2 should be unmodified.
+ * ban-rsc3-rsc4-node1-node2 should be replaced by two new location
+ constraints, each containing one of the original rules. The first of
+ the new constraints should contain the original resource_set and
+ lifetime rule elements, while the second should contain id-refs to
+ them.
+ * ban-rsc3-rsc4-node3-node4 should be replaced by two new location
+ constraints, each containing one of the original rules. Both of the
+ new constraints should contain the original resource_set and lifetime
+ rule elements, which are id-refs to resource sets defined in
+ ban-rsc3-rsc4-node1-node2.
+ * The rules within a lifetime element should be converted to an "or"
+ rule set nested alongside an "and" rule set containing the other
+ top-level rule.
+ -->
+ <crm_config/>
+ <nodes>
+ <node id="node1" uname="node1" type="member"/>
+ <node id="node2" uname="node2" type="member"/>
+ <node id="node3" uname="node3" type="member"/>
+ <node id="node4" uname="node3" type="member"/>
+ </nodes>
+ <resources>
+ <primitive id="rsc1" class="ocf" type="Dummy" provider="pacemaker"/>
+ <primitive id="rsc2" class="ocf" type="Dummy" provider="pacemaker"/>
+ <primitive id="rsc3" class="ocf" type="Dummy" provider="pacemaker"/>
+ <primitive id="rsc4" class="ocf" type="Dummy" provider="pacemaker"/>
+ </resources>
+ <constraints>
+ <rsc_location id="ban-rsc1" rsc="rsc1">
+ <rule id="ban-rsc1-rule1" score="-INFINITY">
+ <expression id="ban-rsc1-rule1-expr" attribute="#uname" operation="eq" value="node1"/>
+ </rule>
+ <rule id="ban-rsc1-rule2" score="-INFINITY">
+ <expression id="ban-rsc1-rule2-expr" attribute="#uname" operation="eq" value="node2"/>
+ </rule>
+ </rsc_location>
+ <rsc_location id="allow-rsc1" rsc="rsc1">
+ <rule id="allow-rsc1-rule" score="INFINITY">
+ <expression id="allow-rsc1-rule-expr" attribute="#uname" operation="eq" value="node3"/>
+ </rule>
+ </rsc_location>
+ <rsc_location id="allow-rsc2" rsc="rsc2">
+ <rule id="allow-rsc2-rule" score="INFINITY" boolean-op="or">
+ <rule id="allow-rsc2-rule-subrule1">
+ <expression id="allow-rsc2-rule-subrule1-expr" attribute="#uname" operation="eq" value="node1"/>
+ </rule>
+ <rule id="allow-rsc2-rule-subrule2">
+ <expression id="allow-rsc2-rule-subrule2-expr" attribute="#uname" operation="eq" value="node2"/>
+ </rule>
+ </rule>
+ </rsc_location>
+ <rsc_location id="ban-rsc3-rsc4-node1-node2">
+ <resource_set id="ban-rsc3-rsc4-node1-node2-set1">
+ <resource_ref id="rsc3"/>
+ </resource_set>
+ <resource_set id="ban-rsc3-rsc4-node1-node2-set2">
+ <resource_ref id="rsc4"/>
+ </resource_set>
+ <rule id="ban-rsc3-rsc4-node1-node2-rule1" score="-INFINITY">
+ <expression id="ban-rsc3-rsc4-node1-node2-rule1-expr" attribute="#uname" operation="eq" value="node1"/>
+ </rule>
+ <rule id="ban-rsc3-rsc4-node1-node2-rule2" score="-INFINITY">
+ <expression id="ban-rsc3-rsc4-node1-node2-rule2-expr" attribute="#uname" operation="eq" value="node2"/>
+ </rule>
+ <lifetime>
+ <rule id="ban-rsc3-rsc4-node1-node2-lifetime-rule1">
+ <date_expression id="ban-rsc3-rsc4-node1-node2-lifetime-rule1-expr" operation="in_range" start="2004-001"/>
+ </rule>
+ <rule id="ban-rsc3-rsc4-node1-node2-lifetime-rule2">
+ <date_expression id="ban-rsc3-rsc4-node1-node2-lifetime-rule2-expr" operation="in_range" end="2005-001"/>
+ </rule>
+ </lifetime>
+ </rsc_location>
+ <rsc_location id="ban-rsc3-rsc4-node3-node4">
+ <resource_set id-ref="ban-rsc3-rsc4-node1-node2-set1"/>
+ <resource_set id-ref="ban-rsc3-rsc4-node1-node2-set2"/>
+ <rule id="ban-rsc3-rsc4-node3-node4-rule1" score="-INFINITY">
+ <expression id="ban-rsc3-rsc4-node3-node4-rule1-expr" attribute="#uname" operation="eq" value="node3"/>
+ </rule>
+ <rule id="ban-rsc3-rsc4-node3-node4-rule2" score="-INFINITY">
+ <expression id="ban-rsc3-rsc4-node3-node4-rule2-expr" attribute="#uname" operation="eq" value="node4"/>
+ </rule>
+ <lifetime>
+ <rule id-ref="ban-rsc3-rsc4-node1-node2-lifetime-rule1"/>
+ <rule id-ref="ban-rsc3-rsc4-node1-node2-lifetime-rule2"/>
+ </lifetime>
+ </rsc_location>
+ </constraints>
+ </configuration>
+ <status/>
+</cib>
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Wed, Jun 25, 4:11 AM (1 d, 11 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1952104
Default Alt Text
(34 KB)
Attached To
Mode
rP Pacemaker
Attached
Detach File
Event Timeline
Log In to Comment