Page Menu
Home
ClusterLabs Projects
Search
Configure Global Search
Log In
Files
F4512289
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
85 KB
Referenced Files
None
Subscribers
None
View Options
diff --git a/cts/schemas/test-3/ref.err/duplicate-nvpairs-no-default.ref.err-4 b/cts/schemas/test-3/ref.err/duplicate-nvpairs-no-default.ref.err-4
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/cts/schemas/test-3/ref.err/duplicate-nvpairs-with-default.ref.err-4 b/cts/schemas/test-3/ref.err/duplicate-nvpairs-with-default.ref.err-4
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/cts/schemas/test-3/ref.err/id-ref.ref.err-4 b/cts/schemas/test-3/ref.err/id-ref.ref.err-4
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/cts/schemas/test-3/ref.err/lifetime-1.ref.err-4 b/cts/schemas/test-3/ref.err/lifetime-1.ref.err-4
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/cts/schemas/test-3/ref.err/lifetime-2.ref.err-4 b/cts/schemas/test-3/ref.err/lifetime-2.ref.err-4
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/cts/schemas/test-3/ref.err/multiple-location-rules.ref.err-4 b/cts/schemas/test-3/ref.err/multiple-location-rules.ref.err-4
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/cts/schemas/test-3/ref.err/no-validate-with.ref.err-4 b/cts/schemas/test-3/ref.err/no-validate-with.ref.err-4
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/cts/schemas/test-3/ref.err/nvpair-hash-default.ref.err-4 b/cts/schemas/test-3/ref.err/nvpair-hash-default.ref.err-4
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/cts/schemas/test-3/ref.err/nvpair-no-value.ref.err-4 b/cts/schemas/test-3/ref.err/nvpair-no-value.ref.err-4
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/cts/schemas/test-3/ref.err/sort-nvsets.ref.err-4 b/cts/schemas/test-3/ref.err/sort-nvsets.ref.err-4
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/cts/schemas/test-3/ref/duplicate-nvpairs-no-default.ref-4 b/cts/schemas/test-3/ref/duplicate-nvpairs-no-default.ref-4
new file mode 100644
index 0000000000..9f0abd6d13
--- /dev/null
+++ b/cts/schemas/test-3/ref/duplicate-nvpairs-no-default.ref-4
@@ -0,0 +1,41 @@
+<cib crm_feature_set="3.19.7" validate-with="pacemaker-4.0" epoch="8" num_updates="0" admin_epoch="0" original="1">
+ <configuration original="1">
+ <!-- The essential elements of this test are:
+ * There is one of each kind of several nvset element
+ (cluster_property_set, instance_attributes, meta_attributes,
+ utilization).
+ * Each nvset contains multiple nvpairs with the same name, as well as
+ one nvpair with a different name.
+ * There are no nvpairs with value="#default".
+ * One nvset uses id-refs.
+
+ In this situation, only the first nvpair with a given name in a given
+ nvset should be kept. Any subsequent ones should be dropped.
+ -->
+ <crm_config original="1">
+ <cluster_property_set id="cib-bootstrap-options" original="1">
+ <nvpair id="cib-bootstrap-options-option1" name="option" value="value1" original="1"/>
+ <nvpair id="cib-bootstrap-options-other-option" name="other-option" value="value0" original="1"/>
+ </cluster_property_set>
+ </crm_config>
+ <nodes original="1"/>
+ <resources original="1">
+ <primitive class="ocf" id="rsc1" provider="heartbeat" type="apache" original="1">
+ <instance_attributes id="rsc1-instance_attributes" original="1">
+ <nvpair id="rsc1-instance_attributes-option1" name="option" value="value1" original="1"/>
+ <nvpair id="rsc1-instance_attributes-other-option" name="other-option" value="value0" original="1"/>
+ </instance_attributes>
+ <meta_attributes id="rsc1-meta_attributes" original="1">
+ <nvpair id="rsc1-meta_attributes-option1" name="option" value="value1" original="1"/>
+ <nvpair id="rsc1-meta_attributes-other-option" name="other-option" value="value0" original="1"/>
+ </meta_attributes>
+ <utilization id="rsc1-utilization" original="1">
+ <nvpair id="rsc1-utilization-other-option" name="other-option" value="valueX" original="1"/>
+ <nvpair id="rsc1-meta_attributes-option1" name="option" value="value1" original="0"/>
+ </utilization>
+ </primitive>
+ </resources>
+ <constraints original="1"/>
+ </configuration>
+ <status original="1"/>
+</cib>
diff --git a/cts/schemas/test-3/ref/duplicate-nvpairs-with-default.ref-4 b/cts/schemas/test-3/ref/duplicate-nvpairs-with-default.ref-4
new file mode 100644
index 0000000000..a4e517ae43
--- /dev/null
+++ b/cts/schemas/test-3/ref/duplicate-nvpairs-with-default.ref-4
@@ -0,0 +1,49 @@
+<cib crm_feature_set="3.19.7" validate-with="pacemaker-4.0" epoch="8" num_updates="0" admin_epoch="0" original="1">
+ <configuration original="1">
+ <!-- The essential elements of this test are:
+ * There is one of each kind of several nvset element
+ (cluster_property_set, instance_attributes, meta_attributes,
+ utilization).
+ * Each nvset contains multiple nvpairs with the same name (two of which
+ have value "#default"), as well as one nvpair with a different name.
+ * Two nvsets use id-refs.
+
+ In this situation:
+ * If the last nvpair with a given name in a given nvset has value
+ "#default", keep only that one.
+ * Otherwise, keep only the first nvpair with a given name in a given
+ nvset after the last one with that name and value "#default".
+ -->
+ <crm_config original="1">
+ <cluster_property_set id="cluster-properties1" original="1">
+ <nvpair id="cluster-properties1-option3" name="option" value="value3" original="1"/>
+ <nvpair id="cluster-properties1-other-option" name="other-option" value="value0" original="1"/>
+ </cluster_property_set>
+ <cluster_property_set id="cluster-properties2" original="1">
+ <nvpair id="cluster-properties2-option4" name="option" value="value4" original="1"/>
+ <nvpair id="cluster-properties2-other-option" name="other-option" value="value0" original="1"/>
+ </cluster_property_set>
+ </crm_config>
+ <nodes original="1"/>
+ <resources original="1">
+ <primitive class="ocf" id="rsc1" provider="heartbeat" type="apache" original="1">
+ <instance_attributes id="rsc1-instance_attributes" original="1">
+ <nvpair id="rsc1-instance_attributes-other-option" name="other-option" value="value0" original="1"/>
+ <nvpair id="rsc1-instance_attributes-option4" name="option" value="value4" original="1"/>
+ </instance_attributes>
+ <meta_attributes id="rsc1-meta_attributes" original="1">
+ <nvpair id="rsc1-meta_attributes-other-option" name="other-option" value="value0" original="1"/>
+ <nvpair id="rsc1-meta_attributes-option5" name="option" value="value5" original="1"/>
+ </meta_attributes>
+ <utilization id="rsc1-utilization1" original="1">
+ <nvpair id="rsc1-utilization1-other-option" name="other-option" value="valueX" original="1"/>
+ </utilization>
+ <utilization id="rsc1-utilization2" original="1">
+ <nvpair id="rsc1-utilization1-other-option" name="other-option" value="valueX" original="0"/>
+ </utilization>
+ </primitive>
+ </resources>
+ <constraints original="1"/>
+ </configuration>
+ <status original="1"/>
+</cib>
diff --git a/cts/schemas/test-3/ref/id-ref.ref-4 b/cts/schemas/test-3/ref/id-ref.ref-4
new file mode 100644
index 0000000000..5c6a99a746
--- /dev/null
+++ b/cts/schemas/test-3/ref/id-ref.ref-4
@@ -0,0 +1,71 @@
+<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 cluster_properties_set element with an id attribute (set
+ to cluster-properties1) and a set of nvpair children.
+ * There are two cluster_properties_set elements with an id-ref
+ attribute (set to cluster-properties1): one before and one after the
+ original.
+ * There is a primitive resource (rsc1) with a meta_attributes element
+ containing nvpair children.
+ * The first nvpair is a definition has an id attribute.
+ * The second has an id-ref attribute with no name attribute.
+ * The third has id-ref="cluster-properties1-option1" and
+ name="option3". Setting both id-ref and name is an undocumented
+ feature that allows the same nvpair value to be used with multiple
+ names (see commit 3912538 and associated pull request).
+
+ In this situation:
+ * In the first step of the upgrade transformation pipeline:
+ * Each element with an id-ref attribute without a name attribute
+ should be replaced by a copy of the element whose id attribute is
+ set to the same value, but with the "original" attribute set to 1.
+ * Each element with an id-ref attribute and a name attribute should
+ be replaced by a copy of the element whose id attribute is set to
+ the original id-ref value, except that in the copy:
+ * The id attribute begins with $upgrade_prefix and ends with the
+ value of @name.
+ * The name attribute is overridden by the reference's @name value.
+ * In the final step:
+ * Resolved references that did not have name attributes should be
+ converted back to references.
+ * For resolved references that did have name attributes, such that
+ the id of the resolved element differs from the original id-ref
+ value:
+ * The first element with the new id value remains expanded as a
+ definition.
+ * Any subsequent elements with the new id value are converted to
+ references to the first one.
+ -->
+ <crm_config original="1">
+ <cluster_property_set id="cluster-properties1" original="0">
+ <nvpair id="cluster-properties1-option1" name="option1" value="value1" original="0"/>
+ <nvpair id="cluster-properties1-option2" name="option2" value="value2" original="0"/>
+ </cluster_property_set>
+ <cluster_property_set id="cluster-properties1" original="1">
+ <nvpair id="cluster-properties1-option1" name="option1" value="value1" original="1"/>
+ <nvpair id="cluster-properties1-option2" name="option2" value="value2" original="1"/>
+ </cluster_property_set>
+ <cluster_property_set id="cluster-properties1" original="0">
+ <nvpair id="cluster-properties1-option1" name="option1" value="value1" original="0"/>
+ <nvpair id="cluster-properties1-option2" name="option2" value="value2" original="0"/>
+ </cluster_property_set>
+ </crm_config>
+ <nodes original="1"/>
+ <resources original="1">
+ <primitive id="rsc1" class="ocf" provider="pacemaker" type="Dummy" original="1">
+ <meta_attributes id="rsc1-meta_attributes" original="1">
+ <nvpair id="rsc1-meta_attributes-option1" name="option1" value="valueX" original="1"/>
+ <nvpair id="pcmk__3_10_upgrade-cluster-properties1-option1-option3" name="option3" value="value1" original="0"/>
+ </meta_attributes>
+ </primitive>
+ <primitive id="rsc2" class="ocf" provider="pacemaker" type="Dummy" original="1">
+ <meta_attributes id="rsc2-meta_attributes" original="1">
+ <nvpair id="pcmk__3_10_upgrade-cluster-properties1-option1-option3" name="option3" value="value1" original="0"/>
+ </meta_attributes>
+ </primitive>
+ </resources>
+ <constraints original="1"/>
+ </configuration>
+ <status original="1"/>
+</cib>
diff --git a/cts/schemas/test-3/ref/lifetime-1.ref-4 b/cts/schemas/test-3/ref/lifetime-1.ref-4
new file mode 100644
index 0000000000..1eb33227dd
--- /dev/null
+++ b/cts/schemas/test-3/ref/lifetime-1.ref-4
@@ -0,0 +1,136 @@
+<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 are four location constraints:
+ * ban-rsc1-node1 uses node/score and has a lifetime element with two
+ defined rules.
+ * ban-rsc2-node1 uses a top-level rule and has a lifetime element
+ with two referenced rules.
+ * ban-rsc3-node1 uses node/score and has a lifetime element with one
+ defined rule.
+ * ban-rsc4-node1 uses a top-level rule and has a lifetime element
+ with one referenced rule.
+ * There are two colocation constraints:
+ * rsc2-with-rsc1 has a lifetime element with two defined rules.
+ * rsc4-with-rsc3 has a lifetime element with two referenced rules.
+ * There are two order constraints:
+ * rsc1-then-rsc2 has a lifetime element with two defined rules.
+ * rsc3-then-rsc4 has a lifetime element with two referenced rules.
+ * A cluster_property_set ("cluster-properties") references two rules
+ that are defined in the lifetime elements of colocation and order
+ constraints.
+
+ In this situation:
+ * All lifetime elements should be removed.
+ * For ban-rsc1-node1, the node/score attributes should be removed and a
+ compound "and" rule should be created containing the following:
+ * A rule version of the node/score attributes
+ * A compound "or" rule containing the lifetime rules
+ * For ban-rsc1-node2, a compound "and" rule should be created
+ containing the following:
+ * The existing top-level rule
+ * A compound "or" rule containing the lifetime rules
+ * For ban-rsc1-node3, a compound "and" rule should be created
+ containing the following:
+ * A rule version of the node/score attributes
+ * The lifetime rule
+ * For ban-rsc1-node4, a compound "and" rule should be created
+ containing the following:
+ * The existing top-level rule
+ * The lifetime rule
+ * A new location constraint should be created with a rsc-pattern that
+ can't match any resources. It should have a compound rule containing
+ all the rules defined in the lifetime elements of the colocation and
+ order constraints that are referenced elsewhere
+ (rsc2-with-rsc1-lifetime-rule1 and rsc1-then-rsc2-lifetime-rule2).
+ -->
+ <crm_config original="1">
+ <cluster_property_set id="cluster-properties" original="1">
+ <rule id="cluster-properties-rule" original="1">
+ <rule id="rsc1-then-rsc2-lifetime-rule2" original="0">
+ <date_expression id="rsc1-then-rsc2-lifetime-rule2-expr" operation="in_range" end="2005-001" original="0"/>
+ </rule>
+ <rule id="rsc2-with-rsc1-lifetime-rule1" original="0">
+ <date_expression id="rsc2-with-rsc1-lifetime-rule1-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ </cluster_property_set>
+ </crm_config>
+ <nodes original="1">
+ <node id="node1" uname="node1" 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-node1" rsc="rsc1" original="1">
+ <rule id="pcmk__3_10_upgrade-ban-rsc1-node1-lifetime-and-rule" boolean-op="and">
+ <rule id="pcmk__3_10_upgrade-ban-rsc1-node1-node-score-rule" score="-INFINITY">
+ <expression id="pcmk__3_10_upgrade-ban-rsc1-node1-node-score-rule-expr" attribute="#uname" operation="eq" value="node1"/>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-ban-rsc1-node1-lifetime-or-rule" boolean-op="or">
+ <rule id="ban-rsc1-node1-lifetime-rule1" original="1">
+ <date_expression id="ban-rsc1-node1-lifetime-rule1-expr" operation="in_range" start="2004-001" original="1"/>
+ </rule>
+ <rule id="ban-rsc1-node1-lifetime-rule2" original="1">
+ <date_expression id="ban-rsc1-node1-lifetime-rule2-expr" operation="in_range" end="2005-001" original="1"/>
+ </rule>
+ </rule>
+ </rule>
+ </rsc_location>
+ <rsc_location id="ban-rsc2-node1" rsc="rsc2" original="1">
+ <rule id="pcmk__3_10_upgrade-ban-rsc2-node1-lifetime-and-rule" boolean-op="and">
+ <rule id="ban-rsc2-node1-rule" score="-INFINITY" original="1">
+ <expression id="ban-rsc2-node1-rule-expr" attribute="#uname" operation="eq" value="node1" original="1"/>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-ban-rsc2-node1-lifetime-or-rule" boolean-op="or">
+ <rule id="ban-rsc1-node1-lifetime-rule1" original="0">
+ <date_expression id="ban-rsc1-node1-lifetime-rule1-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ <rule id="ban-rsc1-node1-lifetime-rule2" original="0">
+ <date_expression id="ban-rsc1-node1-lifetime-rule2-expr" operation="in_range" end="2005-001" original="0"/>
+ </rule>
+ </rule>
+ </rule>
+ </rsc_location>
+ <rsc_location id="ban-rsc3-node1" rsc="rsc3" original="1">
+ <rule id="pcmk__3_10_upgrade-ban-rsc3-node1-lifetime-and-rule" boolean-op="and">
+ <rule id="pcmk__3_10_upgrade-ban-rsc3-node1-node-score-rule" score="-INFINITY">
+ <expression id="pcmk__3_10_upgrade-ban-rsc3-node1-node-score-rule-expr" attribute="#uname" operation="eq" value="node1"/>
+ </rule>
+ <rule id="ban-rsc3-node1-lifetime-rule" original="1">
+ <date_expression id="ban-rsc3-node1-lifetime-rule-expr" operation="in_range" start="2004-001" original="1"/>
+ </rule>
+ </rule>
+ </rsc_location>
+ <rsc_location id="ban-rsc4-node1" rsc="rsc4" original="1">
+ <rule id="pcmk__3_10_upgrade-ban-rsc4-node1-lifetime-and-rule" boolean-op="and">
+ <rule id="ban-rsc4-node1-rule" score="-INFINITY" original="1">
+ <expression id="ban-rsc4-node1-rule-expr" attribute="#uname" operation="eq" value="node1" original="1"/>
+ </rule>
+ <rule id="ban-rsc3-node1-lifetime-rule" original="0">
+ <date_expression id="ban-rsc3-node1-lifetime-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ </rsc_location>
+ <rsc_colocation id="rsc2-with-rsc1" score="INFINITY" rsc="rsc2" with-rsc="rsc1" original="1"/>
+ <rsc_colocation id="rsc4-with-rsc3" score="INFINITY" rsc="rsc4" with-rsc="rsc3" original="1"/>
+ <rsc_order id="rsc1-then-rsc2" first="rsc1" then="rsc2" original="1"/>
+ <rsc_order id="rsc3-then-rsc4" first="rsc3" then="rsc4" original="1"/>
+ <rsc_location id="pcmk__3_10_upgrade-coloc-order-lifetime-rules" rsc-pattern="a^">
+ <rule id="pcmk__3_10_upgrade-coloc-order-lifetime-rules-rule" score="-INFINITY">
+ <rule id="rsc2-with-rsc1-lifetime-rule1" original="1">
+ <date_expression id="rsc2-with-rsc1-lifetime-rule1-expr" operation="in_range" start="2004-001" original="1"/>
+ </rule>
+ <rule id="rsc1-then-rsc2-lifetime-rule2" original="1">
+ <date_expression id="rsc1-then-rsc2-lifetime-rule2-expr" operation="in_range" end="2005-001" original="1"/>
+ </rule>
+ </rule>
+ </rsc_location>
+ </constraints>
+ </configuration>
+ <status original="1"/>
+</cib>
diff --git a/cts/schemas/test-3/ref/lifetime-2.ref-4 b/cts/schemas/test-3/ref/lifetime-2.ref-4
new file mode 100644
index 0000000000..e3483efadb
--- /dev/null
+++ b/cts/schemas/test-3/ref/lifetime-2.ref-4
@@ -0,0 +1,34 @@
+<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 are two colocation constraints:
+ * rsc2-with-rsc1 has a lifetime element with two defined rules.
+ * rsc4-with-rsc3 has a lifetime element with two referenced rules.
+ * There are two order constraints:
+ * rsc1-then-rsc2 has a lifetime element with two defined rules.
+ * rsc3-then-rsc4 has a lifetime element with two referenced rules.
+ * The rules defined in the colocation and order constraints are not
+ referenced anywhere else.
+
+ In this situation, all lifetime elements should be removed, along with
+ their rule definitions.
+ -->
+ <crm_config original="1"/>
+ <nodes original="1">
+ <node id="node1" uname="node1" 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_colocation id="rsc2-with-rsc1" score="INFINITY" rsc="rsc2" with-rsc="rsc1" original="1"/>
+ <rsc_colocation id="rsc4-with-rsc3" score="INFINITY" rsc="rsc4" with-rsc="rsc3" original="1"/>
+ <rsc_order id="rsc1-then-rsc2" first="rsc1" then="rsc2" original="1"/>
+ <rsc_order id="rsc3-then-rsc4" first="rsc3" then="rsc4" original="1"/>
+ </constraints>
+ </configuration>
+ <status original="1"/>
+</cib>
diff --git a/cts/schemas/test-3/ref/multiple-location-rules.ref-4 b/cts/schemas/test-3/ref/multiple-location-rules.ref-4
new file mode 100644
index 0000000000..a98e169f63
--- /dev/null
+++ b/cts/schemas/test-3/ref/multiple-location-rules.ref-4
@@ -0,0 +1,163 @@
+<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="pcmk__3_10_upgrade-ban-rsc1-1" rsc="rsc1" original="0">
+ <rule id="ban-rsc1-rule1" score="-INFINITY" original="1">
+ <expression id="ban-rsc1-rule1-expr" attribute="#uname" operation="eq" value="node1" original="1"/>
+ </rule>
+ </rsc_location>
+ <rsc_location id="pcmk__3_10_upgrade-ban-rsc1-2" rsc="rsc1" original="0">
+ <rule id="ban-rsc1-rule2" score="-INFINITY" original="0">
+ <expression id="ban-rsc1-rule2-expr" attribute="#uname" operation="eq" value="node2" original="0"/>
+ </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="pcmk__3_10_upgrade-ban-rsc3-rsc4-node1-node2-1" original="0">
+ <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="pcmk__3_10_upgrade-pcmk__3_10_upgrade-ban-rsc3-rsc4-node1-node2-1-lifetime-and-rule" boolean-op="and">
+ <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="pcmk__3_10_upgrade-pcmk__3_10_upgrade-ban-rsc3-rsc4-node1-node2-1-lifetime-or-rule" boolean-op="or">
+ <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>
+ </rule>
+ </rule>
+ </rsc_location>
+ <rsc_location id="pcmk__3_10_upgrade-ban-rsc3-rsc4-node1-node2-2" original="0">
+ <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="pcmk__3_10_upgrade-pcmk__3_10_upgrade-ban-rsc3-rsc4-node1-node2-2-lifetime-and-rule" boolean-op="and">
+ <rule id="ban-rsc3-rsc4-node1-node2-rule2" score="-INFINITY" original="0">
+ <expression id="ban-rsc3-rsc4-node1-node2-rule2-expr" attribute="#uname" operation="eq" value="node2" original="0"/>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-pcmk__3_10_upgrade-ban-rsc3-rsc4-node1-node2-2-lifetime-or-rule" boolean-op="or">
+ <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>
+ </rule>
+ </rule>
+ </rsc_location>
+ <rsc_location id="pcmk__3_10_upgrade-ban-rsc3-rsc4-node3-node4-1" original="0">
+ <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="pcmk__3_10_upgrade-pcmk__3_10_upgrade-ban-rsc3-rsc4-node3-node4-1-lifetime-and-rule" boolean-op="and">
+ <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="pcmk__3_10_upgrade-pcmk__3_10_upgrade-ban-rsc3-rsc4-node3-node4-1-lifetime-or-rule" boolean-op="or">
+ <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>
+ </rule>
+ </rule>
+ </rsc_location>
+ <rsc_location id="pcmk__3_10_upgrade-ban-rsc3-rsc4-node3-node4-2" original="0">
+ <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="pcmk__3_10_upgrade-pcmk__3_10_upgrade-ban-rsc3-rsc4-node3-node4-2-lifetime-and-rule" boolean-op="and">
+ <rule id="ban-rsc3-rsc4-node3-node4-rule2" score="-INFINITY" original="0">
+ <expression id="ban-rsc3-rsc4-node3-node4-rule2-expr" attribute="#uname" operation="eq" value="node4" original="0"/>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-pcmk__3_10_upgrade-ban-rsc3-rsc4-node3-node4-2-lifetime-or-rule" boolean-op="or">
+ <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>
+ </rule>
+ </rule>
+ </rsc_location>
+ </constraints>
+ </configuration>
+ <status original="1"/>
+</cib>
diff --git a/cts/schemas/test-3/ref/no-validate-with.ref-4 b/cts/schemas/test-3/ref/no-validate-with.ref-4
new file mode 100644
index 0000000000..392eb408f3
--- /dev/null
+++ b/cts/schemas/test-3/ref/no-validate-with.ref-4
@@ -0,0 +1,15 @@
+<cib crm_feature_set="3.19.7" epoch="16" num_updates="0" admin_epoch="0" original="1" validate-with="pacemaker-4.0">
+ <configuration original="1">
+ <!-- The essential elements of this test are:
+ * The cib element does not contain a validate-with attribute.
+
+ In this situation, the validate-with attribute should be set to
+ "pacemaker-4.0".
+ -->
+ <crm_config original="1"/>
+ <nodes original="1"/>
+ <resources original="1"/>
+ <constraints original="1"/>
+ </configuration>
+ <status original="1"/>
+</cib>
diff --git a/cts/schemas/test-3/ref/nvpair-hash-default.ref-4 b/cts/schemas/test-3/ref/nvpair-hash-default.ref-4
new file mode 100644
index 0000000000..ac5f57b465
--- /dev/null
+++ b/cts/schemas/test-3/ref/nvpair-hash-default.ref-4
@@ -0,0 +1,675 @@
+<cib crm_feature_set="3.19.7" validate-with="pacemaker-4.0" epoch="8" num_updates="0" admin_epoch="0" original="1">
+ <configuration original="1">
+ <!-- The essential elements of this test are:
+ * For each nvset type (cluster_property_set, instance_attributes,
+ meta_attributes, utilization), there are eight elements.
+ * Sets 2, 5, and 6 have value "#default" for option1.
+ * Sets 1, 5, and 8 have value "#default" for option2.
+ * The other positions have "valueX" values, where X is the
+ set number.
+ * Most nvset elements have a rule. There are a couple of exceptions,
+ for testing what happens in the absence of rules.
+ * rsc1-meta_attributes4 (values are "value4")
+ * rsc1-utilization2 (values are "#default" for option1 and "value2"
+ for option2)
+ * rsc1-utilization8 (values are "value8" for option1 and "#default"
+ for option2)
+ * cluster_property_set and instance_attributes elements define new
+ rules, while meta_attributes and utilization elements reference
+ existing rules.
+
+ In this situation (this will be difficult to read, but the actual
+ output should make it clearer):
+ * All nvpairs with value "#default" should be dropped.
+ * If an nvpair cannot be unset by an nvpair with value "#default" in a
+ later nvset (because there is no such "#default" nvpair), then it
+ should remain unchanged in its original nvset. This applies to the
+ following:
+ * cluster-properties{7,8}-option1
+ * rsc1-instance_attributes{7,8}-option1
+ * rsc1-meta_attributes{7,8}-option1
+ * rsc1-utilization{7,8}-option1
+
+ * If an nvpair will always be unset by an nvpair with value "#default"
+ in a later nvset (because the latter nvpair's nvset has no rule),
+ then it should be dropped. This applies to the following:
+ * rsc1-utilization1-option1
+ * rsc1-utilization{2,3,4,6,7}-option2
+
+ * If a non-"#default" nvpair has no rule and may be unset by an nvpair
+ with value "#default" in a later nvset, it should be dropped from its
+ original nvset. It should be moved to a new nvset with:
+ * the same score
+ * a new "and" rule containing negations of the rules from the later
+ nvsets that may unset this nvpair
+
+ This applies to the following:
+ * rsc1-meta_attributes4-option{1,2}
+
+ * If a non-"#default" nvpair has a rule and may be unset by an nvpair
+ with value "#default" in a later nvset, it should be dropped from its
+ original nvset. It should be moved to a new nvset with:
+ * the same score
+ * a new "and" rule containing:
+ * a reference to the rule from this nvpair's original nvset
+ * negations of the rules from the later nvsets that may unset this
+ nvpair
+ This applies to all remaining non-"#default" nvpairs.
+
+ * No rule definitions should be deleted.
+ -->
+ <crm_config original="1">
+ <cluster_property_set id="pcmk__3_10_upgrade-cluster-properties1-option1-no-hash-default" score="7" original="0">
+ <rule id="pcmk__3_10_upgrade-cluster-properties1-option1-no-hash-default-rule">
+ <rule id="cluster-properties1-rule" original="0">
+ <date_expression id="cluster-properties1-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-cluster-properties2-rule-negated" negate="1">
+ <rule id="cluster-properties2-rule" original="0">
+ <date_expression id="cluster-properties2-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-cluster-properties5-rule-negated" negate="1">
+ <rule id="cluster-properties5-rule" original="0">
+ <date_expression id="cluster-properties5-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-cluster-properties6-rule-negated" negate="1">
+ <rule id="cluster-properties6-rule" original="0">
+ <date_expression id="cluster-properties6-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ </rule>
+ <nvpair id="cluster-properties1-option1" name="option1" value="value1" original="1"/>
+ </cluster_property_set>
+ <cluster_property_set id="cluster-properties1" score="7" original="1">
+ <rule id="cluster-properties1-rule" original="1">
+ <date_expression id="cluster-properties1-rule-expr" operation="in_range" start="2004-001" original="1"/>
+ </rule>
+ </cluster_property_set>
+ <cluster_property_set id="pcmk__3_10_upgrade-cluster-properties2-option2-no-hash-default" score="6" original="0">
+ <rule id="pcmk__3_10_upgrade-cluster-properties2-option2-no-hash-default-rule">
+ <rule id="cluster-properties2-rule" original="0">
+ <date_expression id="cluster-properties2-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-cluster-properties5-rule-negated" negate="1">
+ <rule id="cluster-properties5-rule" original="0">
+ <date_expression id="cluster-properties5-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-cluster-properties8-rule-negated" negate="1">
+ <rule id="cluster-properties8-rule" original="0">
+ <date_expression id="cluster-properties8-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ </rule>
+ <nvpair id="cluster-properties2-option2" name="option2" value="value2" original="1"/>
+ </cluster_property_set>
+ <cluster_property_set id="cluster-properties2" score="6" original="1">
+ <rule id="cluster-properties2-rule" original="1">
+ <date_expression id="cluster-properties2-rule-expr" operation="in_range" start="2004-001" original="1"/>
+ </rule>
+ </cluster_property_set>
+ <cluster_property_set id="pcmk__3_10_upgrade-cluster-properties3-option1-no-hash-default" score="5" original="0">
+ <rule id="pcmk__3_10_upgrade-cluster-properties3-option1-no-hash-default-rule">
+ <rule id="cluster-properties3-rule" original="0">
+ <date_expression id="cluster-properties3-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-cluster-properties5-rule-negated" negate="1">
+ <rule id="cluster-properties5-rule" original="0">
+ <date_expression id="cluster-properties5-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-cluster-properties6-rule-negated" negate="1">
+ <rule id="cluster-properties6-rule" original="0">
+ <date_expression id="cluster-properties6-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ </rule>
+ <nvpair id="cluster-properties3-option1" name="option1" value="value3" original="1"/>
+ </cluster_property_set>
+ <cluster_property_set id="pcmk__3_10_upgrade-cluster-properties3-option2-no-hash-default" score="5" original="0">
+ <rule id="pcmk__3_10_upgrade-cluster-properties3-option2-no-hash-default-rule">
+ <rule id="cluster-properties3-rule" original="0">
+ <date_expression id="cluster-properties3-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-cluster-properties5-rule-negated" negate="1">
+ <rule id="cluster-properties5-rule" original="0">
+ <date_expression id="cluster-properties5-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-cluster-properties8-rule-negated" negate="1">
+ <rule id="cluster-properties8-rule" original="0">
+ <date_expression id="cluster-properties8-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ </rule>
+ <nvpair id="cluster-properties3-option2" name="option2" value="value3" original="1"/>
+ </cluster_property_set>
+ <cluster_property_set id="cluster-properties3" score="5" original="1">
+ <rule id="cluster-properties3-rule" original="1">
+ <date_expression id="cluster-properties3-rule-expr" operation="in_range" start="2004-001" original="1"/>
+ </rule>
+ </cluster_property_set>
+ <cluster_property_set id="pcmk__3_10_upgrade-cluster-properties4-option1-no-hash-default" original="0">
+ <rule id="pcmk__3_10_upgrade-cluster-properties4-option1-no-hash-default-rule">
+ <rule id="cluster-properties4-rule" original="0">
+ <date_expression id="cluster-properties4-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-cluster-properties5-rule-negated" negate="1">
+ <rule id="cluster-properties5-rule" original="0">
+ <date_expression id="cluster-properties5-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-cluster-properties6-rule-negated" negate="1">
+ <rule id="cluster-properties6-rule" original="0">
+ <date_expression id="cluster-properties6-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ </rule>
+ <nvpair id="cluster-properties4-option1" name="option1" value="value4" original="1"/>
+ </cluster_property_set>
+ <cluster_property_set id="pcmk__3_10_upgrade-cluster-properties4-option2-no-hash-default" original="0">
+ <rule id="pcmk__3_10_upgrade-cluster-properties4-option2-no-hash-default-rule">
+ <rule id="cluster-properties4-rule" original="0">
+ <date_expression id="cluster-properties4-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-cluster-properties5-rule-negated" negate="1">
+ <rule id="cluster-properties5-rule" original="0">
+ <date_expression id="cluster-properties5-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-cluster-properties8-rule-negated" negate="1">
+ <rule id="cluster-properties8-rule" original="0">
+ <date_expression id="cluster-properties8-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ </rule>
+ <nvpair id="cluster-properties4-option2" name="option2" value="value4" original="1"/>
+ </cluster_property_set>
+ <cluster_property_set id="cluster-properties4" original="1">
+ <rule id="cluster-properties4-rule" original="1">
+ <date_expression id="cluster-properties4-rule-expr" operation="in_range" start="2004-001" original="1"/>
+ </rule>
+ </cluster_property_set>
+ <cluster_property_set id="cluster-properties5" score="-1" original="1">
+ <rule id="cluster-properties5-rule" original="1">
+ <date_expression id="cluster-properties5-rule-expr" operation="in_range" start="2004-001" original="1"/>
+ </rule>
+ </cluster_property_set>
+ <cluster_property_set id="pcmk__3_10_upgrade-cluster-properties6-option2-no-hash-default" score="-2" original="0">
+ <rule id="pcmk__3_10_upgrade-cluster-properties6-option2-no-hash-default-rule">
+ <rule id="cluster-properties6-rule" original="0">
+ <date_expression id="cluster-properties6-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-cluster-properties8-rule-negated" negate="1">
+ <rule id="cluster-properties8-rule" original="0">
+ <date_expression id="cluster-properties8-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ </rule>
+ <nvpair id="cluster-properties6-option2" name="option2" value="value6" original="1"/>
+ </cluster_property_set>
+ <cluster_property_set id="cluster-properties6" score="-2" original="1">
+ <rule id="cluster-properties6-rule" original="1">
+ <date_expression id="cluster-properties6-rule-expr" operation="in_range" start="2004-001" original="1"/>
+ </rule>
+ </cluster_property_set>
+ <cluster_property_set id="pcmk__3_10_upgrade-cluster-properties7-option2-no-hash-default" score="-3" original="0">
+ <rule id="pcmk__3_10_upgrade-cluster-properties7-option2-no-hash-default-rule">
+ <rule id="cluster-properties7-rule" original="0">
+ <date_expression id="cluster-properties7-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-cluster-properties8-rule-negated" negate="1">
+ <rule id="cluster-properties8-rule" original="0">
+ <date_expression id="cluster-properties8-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ </rule>
+ <nvpair id="cluster-properties7-option2" name="option2" value="value7" original="1"/>
+ </cluster_property_set>
+ <cluster_property_set id="cluster-properties7" score="-3" original="1">
+ <rule id="cluster-properties7-rule" original="1">
+ <date_expression id="cluster-properties7-rule-expr" operation="in_range" start="2004-001" original="1"/>
+ </rule>
+ <nvpair id="cluster-properties7-option1" name="option1" value="value7" original="1"/>
+ </cluster_property_set>
+ <cluster_property_set id="cluster-properties8" score="-4" original="1">
+ <rule id="cluster-properties8-rule" original="1">
+ <date_expression id="cluster-properties8-rule-expr" operation="in_range" start="2004-001" original="1"/>
+ </rule>
+ <nvpair id="cluster-properties8-option1" name="option1" value="value8" original="1"/>
+ </cluster_property_set>
+ </crm_config>
+ <nodes original="1"/>
+ <resources original="1">
+ <primitive class="ocf" id="rsc1" provider="heartbeat" type="apache" original="1">
+ <instance_attributes id="pcmk__3_10_upgrade-rsc1-instance_attributes1-option1-no-hash-default" score="1000" original="0">
+ <rule id="pcmk__3_10_upgrade-rsc1-instance_attributes1-option1-no-hash-default-rule">
+ <rule id="rsc1-instance_attributes1-rule" original="0">
+ <date_expression id="rsc1-instance_attributes1-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-rsc1-instance_attributes2-rule-negated" negate="1">
+ <rule id="rsc1-instance_attributes2-rule" original="0">
+ <date_expression id="rsc1-instance_attributes2-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-rsc1-instance_attributes5-rule-negated" negate="1">
+ <rule id="rsc1-instance_attributes5-rule" original="0">
+ <date_expression id="rsc1-instance_attributes5-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-rsc1-instance_attributes6-rule-negated" negate="1">
+ <rule id="rsc1-instance_attributes6-rule" original="0">
+ <date_expression id="rsc1-instance_attributes6-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ </rule>
+ <nvpair id="rsc1-instance_attributes1-option1" name="option1" value="value1" original="1"/>
+ </instance_attributes>
+ <instance_attributes id="rsc1-instance_attributes1" score="1000" original="1">
+ <rule id="rsc1-instance_attributes1-rule" original="1">
+ <date_expression id="rsc1-instance_attributes1-rule-expr" operation="in_range" start="2004-001" original="1"/>
+ </rule>
+ </instance_attributes>
+ <instance_attributes id="pcmk__3_10_upgrade-rsc1-instance_attributes2-option2-no-hash-default" score="999" original="0">
+ <rule id="pcmk__3_10_upgrade-rsc1-instance_attributes2-option2-no-hash-default-rule">
+ <rule id="rsc1-instance_attributes2-rule" original="0">
+ <date_expression id="rsc1-instance_attributes2-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-rsc1-instance_attributes5-rule-negated" negate="1">
+ <rule id="rsc1-instance_attributes5-rule" original="0">
+ <date_expression id="rsc1-instance_attributes5-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-rsc1-instance_attributes8-rule-negated" negate="1">
+ <rule id="rsc1-instance_attributes8-rule" original="0">
+ <date_expression id="rsc1-instance_attributes8-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ </rule>
+ <nvpair id="rsc1-instance_attributes2-option2" name="option2" value="value2" original="1"/>
+ </instance_attributes>
+ <instance_attributes id="rsc1-instance_attributes2" score="999" original="1">
+ <rule id="rsc1-instance_attributes2-rule" original="1">
+ <date_expression id="rsc1-instance_attributes2-rule-expr" operation="in_range" start="2004-001" original="1"/>
+ </rule>
+ </instance_attributes>
+ <instance_attributes id="pcmk__3_10_upgrade-rsc1-instance_attributes3-option1-no-hash-default" score="998" original="0">
+ <rule id="pcmk__3_10_upgrade-rsc1-instance_attributes3-option1-no-hash-default-rule">
+ <rule id="rsc1-instance_attributes3-rule" original="0">
+ <date_expression id="rsc1-instance_attributes3-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-rsc1-instance_attributes5-rule-negated" negate="1">
+ <rule id="rsc1-instance_attributes5-rule" original="0">
+ <date_expression id="rsc1-instance_attributes5-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-rsc1-instance_attributes6-rule-negated" negate="1">
+ <rule id="rsc1-instance_attributes6-rule" original="0">
+ <date_expression id="rsc1-instance_attributes6-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ </rule>
+ <nvpair id="rsc1-instance_attributes3-option1" name="option1" value="value3" original="1"/>
+ </instance_attributes>
+ <instance_attributes id="pcmk__3_10_upgrade-rsc1-instance_attributes3-option2-no-hash-default" score="998" original="0">
+ <rule id="pcmk__3_10_upgrade-rsc1-instance_attributes3-option2-no-hash-default-rule">
+ <rule id="rsc1-instance_attributes3-rule" original="0">
+ <date_expression id="rsc1-instance_attributes3-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-rsc1-instance_attributes5-rule-negated" negate="1">
+ <rule id="rsc1-instance_attributes5-rule" original="0">
+ <date_expression id="rsc1-instance_attributes5-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-rsc1-instance_attributes8-rule-negated" negate="1">
+ <rule id="rsc1-instance_attributes8-rule" original="0">
+ <date_expression id="rsc1-instance_attributes8-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ </rule>
+ <nvpair id="rsc1-instance_attributes3-option2" name="option2" value="value3" original="1"/>
+ </instance_attributes>
+ <instance_attributes id="rsc1-instance_attributes3" score="998" original="1">
+ <rule id="rsc1-instance_attributes3-rule" original="1">
+ <date_expression id="rsc1-instance_attributes3-rule-expr" operation="in_range" start="2004-001" original="1"/>
+ </rule>
+ </instance_attributes>
+ <instance_attributes id="pcmk__3_10_upgrade-rsc1-instance_attributes4-option1-no-hash-default" score="997" original="0">
+ <rule id="pcmk__3_10_upgrade-rsc1-instance_attributes4-option1-no-hash-default-rule">
+ <rule id="rsc1-instance_attributes4-rule" original="0">
+ <date_expression id="rsc1-instance_attributes4-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-rsc1-instance_attributes5-rule-negated" negate="1">
+ <rule id="rsc1-instance_attributes5-rule" original="0">
+ <date_expression id="rsc1-instance_attributes5-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-rsc1-instance_attributes6-rule-negated" negate="1">
+ <rule id="rsc1-instance_attributes6-rule" original="0">
+ <date_expression id="rsc1-instance_attributes6-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ </rule>
+ <nvpair id="rsc1-instance_attributes4-option1" name="option1" value="value4" original="1"/>
+ </instance_attributes>
+ <instance_attributes id="pcmk__3_10_upgrade-rsc1-instance_attributes4-option2-no-hash-default" score="997" original="0">
+ <rule id="pcmk__3_10_upgrade-rsc1-instance_attributes4-option2-no-hash-default-rule">
+ <rule id="rsc1-instance_attributes4-rule" original="0">
+ <date_expression id="rsc1-instance_attributes4-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-rsc1-instance_attributes5-rule-negated" negate="1">
+ <rule id="rsc1-instance_attributes5-rule" original="0">
+ <date_expression id="rsc1-instance_attributes5-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-rsc1-instance_attributes8-rule-negated" negate="1">
+ <rule id="rsc1-instance_attributes8-rule" original="0">
+ <date_expression id="rsc1-instance_attributes8-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ </rule>
+ <nvpair id="rsc1-instance_attributes4-option2" name="option2" value="value4" original="1"/>
+ </instance_attributes>
+ <instance_attributes id="rsc1-instance_attributes4" score="997" original="1">
+ <rule id="rsc1-instance_attributes4-rule" original="1">
+ <date_expression id="rsc1-instance_attributes4-rule-expr" operation="in_range" start="2004-001" original="1"/>
+ </rule>
+ </instance_attributes>
+ <instance_attributes id="rsc1-instance_attributes5" score="996" original="1">
+ <rule id="rsc1-instance_attributes5-rule" original="1">
+ <date_expression id="rsc1-instance_attributes5-rule-expr" operation="in_range" start="2004-001" original="1"/>
+ </rule>
+ </instance_attributes>
+ <instance_attributes id="pcmk__3_10_upgrade-rsc1-instance_attributes6-option2-no-hash-default" score="995" original="0">
+ <rule id="pcmk__3_10_upgrade-rsc1-instance_attributes6-option2-no-hash-default-rule">
+ <rule id="rsc1-instance_attributes6-rule" original="0">
+ <date_expression id="rsc1-instance_attributes6-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-rsc1-instance_attributes8-rule-negated" negate="1">
+ <rule id="rsc1-instance_attributes8-rule" original="0">
+ <date_expression id="rsc1-instance_attributes8-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ </rule>
+ <nvpair id="rsc1-instance_attributes6-option2" name="option2" value="value6" original="1"/>
+ </instance_attributes>
+ <instance_attributes id="rsc1-instance_attributes6" score="995" original="1">
+ <rule id="rsc1-instance_attributes6-rule" original="1">
+ <date_expression id="rsc1-instance_attributes6-rule-expr" operation="in_range" start="2004-001" original="1"/>
+ </rule>
+ </instance_attributes>
+ <instance_attributes id="pcmk__3_10_upgrade-rsc1-instance_attributes7-option2-no-hash-default" score="994" original="0">
+ <rule id="pcmk__3_10_upgrade-rsc1-instance_attributes7-option2-no-hash-default-rule">
+ <rule id="rsc1-instance_attributes7-rule" original="0">
+ <date_expression id="rsc1-instance_attributes7-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-rsc1-instance_attributes8-rule-negated" negate="1">
+ <rule id="rsc1-instance_attributes8-rule" original="0">
+ <date_expression id="rsc1-instance_attributes8-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ </rule>
+ <nvpair id="rsc1-instance_attributes7-option2" name="option2" value="value7" original="1"/>
+ </instance_attributes>
+ <instance_attributes id="rsc1-instance_attributes7" score="994" original="1">
+ <rule id="rsc1-instance_attributes7-rule" original="1">
+ <date_expression id="rsc1-instance_attributes7-rule-expr" operation="in_range" start="2004-001" original="1"/>
+ </rule>
+ <nvpair id="rsc1-instance_attributes7-option1" name="option1" value="value7" original="1"/>
+ </instance_attributes>
+ <instance_attributes id="rsc1-instance_attributes8" score="993" original="1">
+ <rule id="rsc1-instance_attributes8-rule" original="1">
+ <date_expression id="rsc1-instance_attributes8-rule-expr" operation="in_range" start="2004-001" original="1"/>
+ </rule>
+ <nvpair id="rsc1-instance_attributes8-option1" name="option1" value="value8" original="1"/>
+ </instance_attributes>
+ <meta_attributes id="pcmk__3_10_upgrade-rsc1-meta_attributes1-option1-no-hash-default" score="500" original="0">
+ <rule id="pcmk__3_10_upgrade-rsc1-meta_attributes1-option1-no-hash-default-rule">
+ <rule id="rsc1-instance_attributes1-rule" original="0">
+ <date_expression id="rsc1-instance_attributes1-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-rsc1-instance_attributes2-rule-negated" negate="1">
+ <rule id="rsc1-instance_attributes2-rule" original="0">
+ <date_expression id="rsc1-instance_attributes2-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-rsc1-instance_attributes5-rule-negated" negate="1">
+ <rule id="rsc1-instance_attributes5-rule" original="0">
+ <date_expression id="rsc1-instance_attributes5-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-rsc1-instance_attributes6-rule-negated" negate="1">
+ <rule id="rsc1-instance_attributes6-rule" original="0">
+ <date_expression id="rsc1-instance_attributes6-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ </rule>
+ <nvpair id="rsc1-meta_attributes1-option1" name="option1" value="value1" original="1"/>
+ </meta_attributes>
+ <meta_attributes id="rsc1-meta_attributes1" score="500" original="1">
+ <rule id="rsc1-instance_attributes1-rule" original="0">
+ <date_expression id="rsc1-instance_attributes1-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </meta_attributes>
+ <meta_attributes id="pcmk__3_10_upgrade-rsc1-meta_attributes2-option2-no-hash-default" score="499" original="0">
+ <rule id="pcmk__3_10_upgrade-rsc1-meta_attributes2-option2-no-hash-default-rule">
+ <rule id="rsc1-instance_attributes2-rule" original="0">
+ <date_expression id="rsc1-instance_attributes2-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-rsc1-instance_attributes5-rule-negated" negate="1">
+ <rule id="rsc1-instance_attributes5-rule" original="0">
+ <date_expression id="rsc1-instance_attributes5-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-rsc1-instance_attributes8-rule-negated" negate="1">
+ <rule id="rsc1-instance_attributes8-rule" original="0">
+ <date_expression id="rsc1-instance_attributes8-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ </rule>
+ <nvpair id="rsc1-meta_attributes2-option2" name="option2" value="value2" original="1"/>
+ </meta_attributes>
+ <meta_attributes id="rsc1-meta_attributes2" score="499" original="1">
+ <rule id="rsc1-instance_attributes2-rule" original="0">
+ <date_expression id="rsc1-instance_attributes2-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </meta_attributes>
+ <meta_attributes id="pcmk__3_10_upgrade-rsc1-meta_attributes3-option1-no-hash-default" score="498" original="0">
+ <rule id="pcmk__3_10_upgrade-rsc1-meta_attributes3-option1-no-hash-default-rule">
+ <rule id="rsc1-instance_attributes3-rule" original="0">
+ <date_expression id="rsc1-instance_attributes3-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-rsc1-instance_attributes5-rule-negated" negate="1">
+ <rule id="rsc1-instance_attributes5-rule" original="0">
+ <date_expression id="rsc1-instance_attributes5-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-rsc1-instance_attributes6-rule-negated" negate="1">
+ <rule id="rsc1-instance_attributes6-rule" original="0">
+ <date_expression id="rsc1-instance_attributes6-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ </rule>
+ <nvpair id="rsc1-meta_attributes3-option1" name="option1" value="value3" original="1"/>
+ </meta_attributes>
+ <meta_attributes id="pcmk__3_10_upgrade-rsc1-meta_attributes3-option2-no-hash-default" score="498" original="0">
+ <rule id="pcmk__3_10_upgrade-rsc1-meta_attributes3-option2-no-hash-default-rule">
+ <rule id="rsc1-instance_attributes3-rule" original="0">
+ <date_expression id="rsc1-instance_attributes3-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-rsc1-instance_attributes5-rule-negated" negate="1">
+ <rule id="rsc1-instance_attributes5-rule" original="0">
+ <date_expression id="rsc1-instance_attributes5-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-rsc1-instance_attributes8-rule-negated" negate="1">
+ <rule id="rsc1-instance_attributes8-rule" original="0">
+ <date_expression id="rsc1-instance_attributes8-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ </rule>
+ <nvpair id="rsc1-meta_attributes3-option2" name="option2" value="value3" original="1"/>
+ </meta_attributes>
+ <meta_attributes id="rsc1-meta_attributes3" score="498" original="1">
+ <rule id="rsc1-instance_attributes3-rule" original="0">
+ <date_expression id="rsc1-instance_attributes3-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </meta_attributes>
+ <meta_attributes id="pcmk__3_10_upgrade-rsc1-meta_attributes4-option1-no-hash-default" score="497" original="0">
+ <rule id="pcmk__3_10_upgrade-rsc1-meta_attributes4-option1-no-hash-default-rule">
+ <rule id="pcmk__3_10_upgrade-rsc1-instance_attributes5-rule-negated" negate="1">
+ <rule id="rsc1-instance_attributes5-rule" original="0">
+ <date_expression id="rsc1-instance_attributes5-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-rsc1-instance_attributes6-rule-negated" negate="1">
+ <rule id="rsc1-instance_attributes6-rule" original="0">
+ <date_expression id="rsc1-instance_attributes6-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ </rule>
+ <nvpair id="rsc1-meta_attributes4-option1" name="option1" value="value4" original="1"/>
+ </meta_attributes>
+ <meta_attributes id="pcmk__3_10_upgrade-rsc1-meta_attributes4-option2-no-hash-default" score="497" original="0">
+ <rule id="pcmk__3_10_upgrade-rsc1-meta_attributes4-option2-no-hash-default-rule">
+ <rule id="pcmk__3_10_upgrade-rsc1-instance_attributes5-rule-negated" negate="1">
+ <rule id="rsc1-instance_attributes5-rule" original="0">
+ <date_expression id="rsc1-instance_attributes5-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-rsc1-instance_attributes8-rule-negated" negate="1">
+ <rule id="rsc1-instance_attributes8-rule" original="0">
+ <date_expression id="rsc1-instance_attributes8-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ </rule>
+ <nvpair id="rsc1-meta_attributes4-option2" name="option2" value="value4" original="1"/>
+ </meta_attributes>
+ <meta_attributes id="rsc1-meta_attributes4" score="497" original="1"/>
+ <meta_attributes id="rsc1-meta_attributes5" score="496" original="1">
+ <rule id="rsc1-instance_attributes5-rule" original="0">
+ <date_expression id="rsc1-instance_attributes5-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </meta_attributes>
+ <meta_attributes id="pcmk__3_10_upgrade-rsc1-meta_attributes6-option2-no-hash-default" score="495" original="0">
+ <rule id="pcmk__3_10_upgrade-rsc1-meta_attributes6-option2-no-hash-default-rule">
+ <rule id="rsc1-instance_attributes6-rule" original="0">
+ <date_expression id="rsc1-instance_attributes6-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-rsc1-instance_attributes8-rule-negated" negate="1">
+ <rule id="rsc1-instance_attributes8-rule" original="0">
+ <date_expression id="rsc1-instance_attributes8-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ </rule>
+ <nvpair id="rsc1-meta_attributes6-option2" name="option2" value="value6" original="1"/>
+ </meta_attributes>
+ <meta_attributes id="rsc1-meta_attributes6" score="495" original="1">
+ <rule id="rsc1-instance_attributes6-rule" original="0">
+ <date_expression id="rsc1-instance_attributes6-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </meta_attributes>
+ <meta_attributes id="pcmk__3_10_upgrade-rsc1-meta_attributes7-option2-no-hash-default" score="494" original="0">
+ <rule id="pcmk__3_10_upgrade-rsc1-meta_attributes7-option2-no-hash-default-rule">
+ <rule id="rsc1-instance_attributes7-rule" original="0">
+ <date_expression id="rsc1-instance_attributes7-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-rsc1-instance_attributes8-rule-negated" negate="1">
+ <rule id="rsc1-instance_attributes8-rule" original="0">
+ <date_expression id="rsc1-instance_attributes8-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ </rule>
+ <nvpair id="rsc1-meta_attributes7-option2" name="option2" value="value7" original="1"/>
+ </meta_attributes>
+ <meta_attributes id="rsc1-meta_attributes7" score="494" original="1">
+ <rule id="rsc1-instance_attributes7-rule" original="0">
+ <date_expression id="rsc1-instance_attributes7-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ <nvpair id="rsc1-meta_attributes7-option1" name="option1" value="value7" original="1"/>
+ </meta_attributes>
+ <meta_attributes id="rsc1-meta_attributes8" score="493" original="1">
+ <rule id="rsc1-instance_attributes8-rule" original="0">
+ <date_expression id="rsc1-instance_attributes8-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ <nvpair id="rsc1-meta_attributes8-option1" name="option1" value="value8" original="1"/>
+ </meta_attributes>
+ <utilization id="rsc1-utilization1" score="7" original="1">
+ <rule id="rsc1-instance_attributes1-rule" original="0">
+ <date_expression id="rsc1-instance_attributes1-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </utilization>
+ <utilization id="rsc1-utilization2" score="6" original="1"/>
+ <utilization id="pcmk__3_10_upgrade-rsc1-utilization3-option1-no-hash-default" score="5" original="0">
+ <rule id="pcmk__3_10_upgrade-rsc1-utilization3-option1-no-hash-default-rule">
+ <rule id="rsc1-instance_attributes3-rule" original="0">
+ <date_expression id="rsc1-instance_attributes3-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-rsc1-instance_attributes5-rule-negated" negate="1">
+ <rule id="rsc1-instance_attributes5-rule" original="0">
+ <date_expression id="rsc1-instance_attributes5-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-rsc1-instance_attributes6-rule-negated" negate="1">
+ <rule id="rsc1-instance_attributes6-rule" original="0">
+ <date_expression id="rsc1-instance_attributes6-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ </rule>
+ <nvpair id="rsc1-utilization3-option1" name="option1" value="value3" original="1"/>
+ </utilization>
+ <utilization id="rsc1-utilization3" score="5" original="1">
+ <rule id="rsc1-instance_attributes3-rule" original="0">
+ <date_expression id="rsc1-instance_attributes3-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </utilization>
+ <utilization id="pcmk__3_10_upgrade-rsc1-utilization4-option1-no-hash-default" original="0">
+ <rule id="pcmk__3_10_upgrade-rsc1-utilization4-option1-no-hash-default-rule">
+ <rule id="rsc1-instance_attributes4-rule" original="0">
+ <date_expression id="rsc1-instance_attributes4-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-rsc1-instance_attributes5-rule-negated" negate="1">
+ <rule id="rsc1-instance_attributes5-rule" original="0">
+ <date_expression id="rsc1-instance_attributes5-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ <rule id="pcmk__3_10_upgrade-rsc1-instance_attributes6-rule-negated" negate="1">
+ <rule id="rsc1-instance_attributes6-rule" original="0">
+ <date_expression id="rsc1-instance_attributes6-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </rule>
+ </rule>
+ <nvpair id="rsc1-utilization4-option1" name="option1" value="value4" original="1"/>
+ </utilization>
+ <utilization id="rsc1-utilization4" original="1">
+ <rule id="rsc1-instance_attributes4-rule" original="0">
+ <date_expression id="rsc1-instance_attributes4-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </utilization>
+ <utilization id="rsc1-utilization5" score="-1" original="1">
+ <rule id="rsc1-instance_attributes5-rule" original="0">
+ <date_expression id="rsc1-instance_attributes5-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </utilization>
+ <utilization id="rsc1-utilization6" score="-2" original="1">
+ <rule id="rsc1-instance_attributes6-rule" original="0">
+ <date_expression id="rsc1-instance_attributes6-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ </utilization>
+ <utilization id="rsc1-utilization7" score="-3" original="1">
+ <rule id="rsc1-instance_attributes7-rule" original="0">
+ <date_expression id="rsc1-instance_attributes7-rule-expr" operation="in_range" start="2004-001" original="0"/>
+ </rule>
+ <nvpair id="rsc1-utilization7-option1" name="option1" value="value7" original="1"/>
+ </utilization>
+ <utilization id="rsc1-utilization8" score="-4" original="1">
+ <nvpair id="rsc1-utilization8-option1" name="option1" value="value8" original="1"/>
+ </utilization>
+ </primitive>
+ </resources>
+ <constraints original="1"/>
+ </configuration>
+ <status original="1"/>
+</cib>
diff --git a/cts/schemas/test-3/ref/nvpair-no-value.ref-4 b/cts/schemas/test-3/ref/nvpair-no-value.ref-4
new file mode 100644
index 0000000000..5820a8429d
--- /dev/null
+++ b/cts/schemas/test-3/ref/nvpair-no-value.ref-4
@@ -0,0 +1,33 @@
+<cib crm_feature_set="3.19.7" validate-with="pacemaker-4.0" epoch="8" num_updates="0" admin_epoch="0" original="1">
+ <configuration original="1">
+ <!-- The essential elements of this test are:
+ * There is one nvset element of each type: cluster_property_set,
+ instance_attributes, meta_attributes, utilization.
+ * Each nvset contains one nvpair with a value and one nvpair with no
+ value.
+
+ In this situation, all nvpair elements with no value should be dropped.
+ -->
+ <crm_config original="1">
+ <cluster_property_set id="cib-bootstrap-options" original="1">
+ <nvpair id="cib-bootstrap-options-option2" name="option2" value="value2" original="1"/>
+ </cluster_property_set>
+ </crm_config>
+ <nodes original="1"/>
+ <resources original="1">
+ <primitive class="ocf" id="rsc1" provider="pacemaker" type="Dummy" original="1">
+ <instance_attributes id="rsc1-instance_attributes" original="1">
+ <nvpair id="rsc1-instance_attributes-option2" name="option2" value="value2" original="1"/>
+ </instance_attributes>
+ <meta_attributes id="rsc1-meta_attributes" original="1">
+ <nvpair id="rsc1-meta_attributes-option2" name="option2" value="value2" original="1"/>
+ </meta_attributes>
+ <utilization id="rsc1-utilization" original="1">
+ <nvpair id="rsc1-utilization-option2" name="option2" value="value2" original="1"/>
+ </utilization>
+ </primitive>
+ </resources>
+ <constraints original="1"/>
+ </configuration>
+ <status original="1"/>
+</cib>
diff --git a/cts/schemas/test-3/ref/sort-nvsets.ref-4 b/cts/schemas/test-3/ref/sort-nvsets.ref-4
new file mode 100644
index 0000000000..38cfc6e4cc
--- /dev/null
+++ b/cts/schemas/test-3/ref/sort-nvsets.ref-4
@@ -0,0 +1,115 @@
+<cib crm_feature_set="3.19.7" validate-with="pacemaker-4.0" epoch="8" num_updates="0" admin_epoch="0" original="1">
+ <configuration original="1">
+ <!-- The essential elements of this test are:
+ * There are several nvset elements (cluster_property_set,
+ instance_attributes, meta_attributes, utilization) distributed among
+ various parent element types.
+ * Many of the nvsets have score attributes.
+ * Each of the nvsets has an id attribute with a number that indicates
+ its sort order relative to its siblings of the same element type, or
+ an id-ref to the same.
+ * One cluster_property_set has id "cib-bootstrap-options" and score
+ "-INFINITY".
+ * One meta_attributes set has an nvpair child, to verify that children
+ are preserved. Otherwise, children are omitted, for readability.
+ * The document orders of 0 vs. empty score and of "INFINITY" vs.
+ "+INFINITY" are reversed in rsc_defaults and op_defaults compared to
+ the other elements.
+
+ In this situation:
+ * All nvset elements should be moved below their non-nvset siblings.
+ * The cluster_property_set with id "cib-bootstrap-options" should be
+ ordered before all its siblings. "cib-bootstrap-options" always sorts
+ first regardless of score.
+ * Otherwise, nvset elements of a given type under a given parent should
+ be ordered according to their score attribute (using document order
+ in case of a tie), which corresponds to the numbers in their IDs.
+
+ This doesn't test every possible location where a nvset elements may
+ occur, but it should be exhaustive enough to be satisfactory.
+ -->
+ <crm_config original="1">
+ <cluster_property_set id="cib-bootstrap-options" score="-INFINITY" original="1"/>
+ <cluster_property_set id="cps1" score="+INFINITY" original="1"/>
+ <cluster_property_set id="cps2" score="INFINITY" original="1"/>
+ <cluster_property_set id="cps3" score="120" original="1"/>
+ <cluster_property_set id="cps4" score="70" original="1"/>
+ <cluster_property_set id="cps5" original="1"/>
+ <cluster_property_set id="cps6" score="0" original="1"/>
+ <cluster_property_set id="cps7" score="-30" original="1"/>
+ <cluster_property_set id="cps8" score="-INFINITY" original="1"/>
+ </crm_config>
+ <nodes original="1"/>
+ <resources original="1">
+ <clone id="clone1" original="1">
+ <primitive class="ocf" id="rsc1" provider="heartbeat" type="apache" original="1">
+ <operations original="1">
+ <op id="rsc1_monitor_20000" interval="20s" name="monitor" original="1">
+ <meta_attributes id="oma1" score="120" original="1"/>
+ <meta_attributes id="oma2" original="1"/>
+ <meta_attributes id="oma3" score="-30" original="1"/>
+ </op>
+ </operations>
+ <instance_attributes id="pia1" score="+INFINITY" original="1"/>
+ <instance_attributes id="pia2" score="INFINITY" original="1"/>
+ <utilization id="pu1" score="+INFINITY" original="1"/>
+ <meta_attributes id="pma1" score="+INFINITY" original="1"/>
+ <meta_attributes id="pma2" score="INFINITY" original="1"/>
+ <utilization id="pu2" score="INFINITY" original="1"/>
+ <utilization id="pu3" score="120" original="1"/>
+ <meta_attributes id="pma3" score="120" original="1"/>
+ <instance_attributes id="pia3" score="120" original="1"/>
+ <meta_attributes id="pma4" score="70" original="1"/>
+ <utilization id="pu4" score="70" original="1"/>
+ <instance_attributes id="pia4" score="70" original="1"/>
+ <instance_attributes id="pia5" original="1"/>
+ <utilization id="pu5" original="1"/>
+ <meta_attributes id="pma5" original="1"/>
+ <meta_attributes id="pma6" score="0" original="1"/>
+ <utilization id="pu6" score="0" original="1"/>
+ <instance_attributes id="pia6" score="0" original="1"/>
+ <meta_attributes id="pma7" score="-30" original="1"/>
+ <utilization id="pu7" score="-30" original="1"/>
+ <instance_attributes id="pia7" score="-30" original="1"/>
+ <meta_attributes id="pma8" score="-INFINITY" original="1"/>
+ <utilization id="pu8" score="-INFINITY" original="1"/>
+ <instance_attributes id="pia8" score="-INFINITY" original="1"/>
+ </primitive>
+ <meta_attributes id="cma1" score="+INFINITY" original="1"/>
+ <meta_attributes id="cma2" score="INFINITY" original="1"/>
+ <meta_attributes id="cma3" score="120" original="1"/>
+ <meta_attributes id="cma4" score="70" original="1"/>
+ <meta_attributes id="cma5" original="1"/>
+ <meta_attributes id="cma6" score="0" original="1"/>
+ <meta_attributes id="cma7" score="-30" original="1"/>
+ <meta_attributes id="cma8" score="-INFINITY" original="1"/>
+ </clone>
+ </resources>
+ <constraints original="1"/>
+ <rsc_defaults original="1">
+ <meta_attributes id="rdma1" score="INFINITY" original="1"/>
+ <meta_attributes id="rdma2" score="+INFINITY" original="1"/>
+ <meta_attributes id="rdma3" score="120" original="1">
+ <nvpair id="rdma3-option1" name="option1" value="value1" original="1"/>
+ </meta_attributes>
+ <meta_attributes id="rdma4" score="70" original="1"/>
+ <meta_attributes id="rdma5" score="0" original="1"/>
+ <meta_attributes id="rdma6" original="1"/>
+ <meta_attributes id="rdma7" score="-30" original="1"/>
+ <meta_attributes id="rdma8" score="-INFINITY" original="1"/>
+ </rsc_defaults>
+ <op_defaults original="1">
+ <meta_attributes id="rdma1" score="INFINITY" original="0"/>
+ <meta_attributes id="rdma2" score="+INFINITY" original="0"/>
+ <meta_attributes id="rdma3" score="120" original="0">
+ <nvpair id="rdma3-option1" name="option1" value="value1" original="0"/>
+ </meta_attributes>
+ <meta_attributes id="rdma4" score="70" original="0"/>
+ <meta_attributes id="rdma5" score="0" original="0"/>
+ <meta_attributes id="rdma6" original="0"/>
+ <meta_attributes id="rdma7" score="-30" original="0"/>
+ <meta_attributes id="rdma8" score="-INFINITY" original="0"/>
+ </op_defaults>
+ </configuration>
+ <status original="1"/>
+</cib>
diff --git a/xml/upgrade-3.10-4.xsl b/xml/upgrade-3.10-4.xsl
new file mode 100644
index 0000000000..7cddc049af
--- /dev/null
+++ b/xml/upgrade-3.10-4.xsl
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ Use comments liberally as future maintainers may be unfamiliar with XSLT.
+ -->
+
+<!--
+ upgrade-3.10-4.xsl
+
+ Guarantees after this transformation:
+ -->
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:import href="upgrade-3.10-common.xsl"/>
+
+<!-- Copy everything unaltered by default -->
+<xsl:template match="/|@*|node()">
+ <xsl:call-template name="identity"/>
+</xsl:template>
+
+</xsl:stylesheet>
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Wed, Jun 25, 4:47 AM (1 d, 14 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1952205
Default Alt Text
(85 KB)
Attached To
Mode
rP Pacemaker
Attached
Detach File
Event Timeline
Log In to Comment