Page MenuHomeClusterLabs Projects

No OneTemporary

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

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)

Event Timeline