Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:15.5:Update
pacemaker.10805
pacemaker-XML-upgrade-2.10.xsl-resource-meta_at...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File pacemaker-XML-upgrade-2.10.xsl-resource-meta_attributes-isolation-items.patch of Package pacemaker.10805
commit a43d9a07662684019312789cb72136437f5ea397 Author: Jan Pokorný <jpokorny@redhat.com> Date: Thu May 10 23:51:16 2018 +0200 XML: upgrade-2.10.xsl: resource meta_attributes: isolation* items diff --git a/xml/test-2/060-rsc-attrs-meta-isolation.ref b/xml/test-2/060-rsc-attrs-meta-isolation.ref new file mode 100644 index 000000000..91c43c0e5 --- /dev/null +++ b/xml/test-2/060-rsc-attrs-meta-isolation.ref @@ -0,0 +1,25 @@ +<cib validate-with="pacemaker-3.0" admin_epoch="0" epoch="0" num_updates="0"> + <configuration> + <crm_config/> + <nodes/> + <resources> + + <!-- from c713bbe39:pengine/test10/isolation-restart-all.xml --> + <primitive class="ocf" id="fake" provider="heartbeat" type="Dummy"> + <instance_attributes id="fake-instance_attributes"> + <nvpair id="fake-instance_attributes-docker_image" name="pcmk_docker_image" value="centos:dock-wrapper-test"/> + <nvpair id="fake-instance_attributes-docker_privileged" name="pcmk_docker_privileged" value="false"/> + </instance_attributes> + <operations> + <op id="fake-monitor-interval-60s" interval="60s" name="monitor"/> + </operations> + <meta_attributes id="fake-meta_attributes"> + <nvpair id="fake-meta_attributes-isolation-wrapper" name="target-role" value="Stopped"/> + </meta_attributes> + </primitive> + + </resources> + <constraints/> + </configuration> + <status/> +</cib> diff --git a/xml/test-2/060-rsc-attrs-meta-isolation.ref.err b/xml/test-2/060-rsc-attrs-meta-isolation.ref.err new file mode 100644 index 000000000..d0c86c007 --- /dev/null +++ b/xml/test-2/060-rsc-attrs-meta-isolation.ref.err @@ -0,0 +1,4 @@ +Resource meta_attributes: fake-meta_attributes-isolation-wrapper: renaming isolation-wrapper as target-role, redefined as Stopped +Resource meta_attributes: ... isolation wrappers obsoleted with bundle resources +Resource meta_attributes: fake-meta_attributes-isolation-wrapper2: renaming isolation-wrapper as target-role, redefined as Stopped +Resource meta_attributes: ... isolation wrappers obsoleted with bundle resources diff --git a/xml/test-2/060-rsc-attrs-meta-isolation.xml b/xml/test-2/060-rsc-attrs-meta-isolation.xml new file mode 100644 index 000000000..3f49b2a44 --- /dev/null +++ b/xml/test-2/060-rsc-attrs-meta-isolation.xml @@ -0,0 +1,26 @@ +<cib validate-with="pacemaker-2.0" admin_epoch="0" epoch="0" num_updates="0"> + <configuration> + <crm_config/> + <nodes/> + <resources> + + <!-- from c713bbe39:pengine/test10/isolation-restart-all.xml --> + <primitive class="ocf" id="fake" provider="heartbeat" type="Dummy"> + <instance_attributes id="fake-instance_attributes"> + <nvpair id="fake-instance_attributes-docker_image" name="pcmk_docker_image" value="centos:dock-wrapper-test"/> + <nvpair id="fake-instance_attributes-docker_privileged" name="pcmk_docker_privileged" value="false"/> + </instance_attributes> + <operations> + <op id="fake-monitor-interval-60s" interval="60s" name="monitor"/> + </operations> + <meta_attributes id="fake-meta_attributes"> + <nvpair id="fake-meta_attributes-isolation-wrapper" name="isolation-wrapper" value="docker-wrapper"/> + <nvpair id="fake-meta_attributes-isolation-wrapper2" name="isolation-wrapper" value="docker-wrapper"/> + </meta_attributes> + </primitive> + + </resources> + <constraints/> + </configuration> + <status/> +</cib> diff --git a/xml/upgrade-2.10.xsl b/xml/upgrade-2.10.xsl index 2911fb0fa..07b05582b 100644 --- a/xml/upgrade-2.10.xsl +++ b/xml/upgrade-2.10.xsl @@ -165,6 +165,32 @@ <!-- Target tag: primitive template + Object: ./meta_attributes/nvpair/@name + Selector ctxt: N/A + Move ctxt: N/A + --> + <cibtr:table for="resource-meta-attributes" msg-prefix="Resource meta_attributes"> + <cibtr:replace what="isolation" + with="target-role" + redefined-as="Stopped" + msg-extra="isolation wrappers obsoleted with bundle resources"/> + <cibtr:replace what="isolation-host" + with="target-role" + redefined-as="Stopped" + msg-extra="isolation wrappers obsoleted with bundle resources"/> + <cibtr:replace what="isolation-instance" + with="target-role" + redefined-as="Stopped" + msg-extra="isolation wrappers obsoleted with bundle resources"/> + <cibtr:replace what="isolation-wrapper" + with="target-role" + redefined-as="Stopped" + msg-extra="isolation wrappers obsoleted with bundle resources"/> + </cibtr:table> + + <!-- + Target tag: primitive + template Object: ./operations/op/@* ./operations/op/meta_attributes/nvpair/@name Selector ctxt: ./operations/op/@name @@ -216,6 +242,12 @@ @for = 'resource-instance-attributes' ]"/> +<xsl:variable name="MapResourceMetaAttributes" + select="document('')/xsl:stylesheet + /cibtr:map/cibtr:table[ + @for = 'resource-meta-attributes' + ]"/> + <xsl:variable name="MapResourcesOperation" select="document('')/xsl:stylesheet /cibtr:map/cibtr:table[ @@ -815,6 +847,174 @@ </xsl:template> <!-- + Source ctxt: (primitive|template)/meta_attributes + Target ctxt: (primitive|template)/meta_attributes + Target-inv ctxt:N/A + Dependencies: N/A + --> +<xsl:template name="ProcessRscMetaAttributes"> + <xsl:param name="Source"/> + <xsl:param name="InnerSimulation" select="false()"/> + <xsl:param name="InnerPass"> + <xsl:choose> + <xsl:when test="$InnerSimulation"> + <xsl:value-of select="''"/> + </xsl:when> + <xsl:otherwise> + <xsl:call-template name="ProcessRscMetaAttributes"> + <xsl:with-param name="Source" select="$Source"/> + <xsl:with-param name="InnerSimulation" select="true()"/> + </xsl:call-template> + </xsl:otherwise> + </xsl:choose> + </xsl:param> + + <!-- B: special-casing nvpair --> + <xsl:for-each select="$Source/node()"> + <xsl:choose> + <xsl:when test="self::text()"> + <!-- cf. trick A. (consideration 1.) --> + <xsl:choose> + <xsl:when test="normalize-space($InnerPass) + != $InnerPass + and + ( + not(preceding-sibling::nvpair) + or + generate-id(preceding-sibling::nvpair[1]) + != generate-id(preceding-sibling::*[1]) + ) or ( + not(following-sibling::nvpair) + or + generate-id(following-sibling::nvpair[1]) + != generate-id(following-sibling::*[1]) + )"> + <xsl:value-of select="."/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="normalize-space(.)"/> + </xsl:otherwise> + </xsl:choose> + </xsl:when> + <xsl:when test="self::nvpair"> + <xsl:variable name="Replacement" + select="$MapResourceMetaAttributes/cibtr:replace[ + @what = current()/@name + and + ( + ( + @in-case-of + and + contains(concat('|', @in-case-of, '|'), + concat('|', current()/@value, '|')) + ) + or + ( + not(@in-case-of) + and + not( + $MapResourceMetaAttributes/cibtr:replace[ + @what = current()/@name + and + ( + @in-case-of + and + contains(concat('|', @in-case-of, '|'), + concat('|', current()/@value, '|')) + ) + ] + ) + ) + ) + ]"/> + <xsl:if test="not($InnerSimulation)"> + <xsl:call-template name="MapMsg"> + <xsl:with-param name="Context" select="@id"/> + <xsl:with-param name="Replacement" select="$Replacement"/> + </xsl:call-template> + </xsl:if> + <xsl:choose> + <xsl:when test="$Replacement + and + not(string($Replacement/@with))"> + <!-- drop (move-over code missing) --> + </xsl:when> + <xsl:when test="$Replacement"> + <!-- plain rename --> + <xsl:variable name="SimulateFollowingSiblings"> + <!-- prevent generating redundant name-value pairs --> + <xsl:for-each select="(..|../following-sibling::meta_attributes)[ + not(rule) + ]"> + <xsl:if test="$InnerPass != 'TRIGGER-RECURSION'"> + <xsl:call-template name="ProcessRscMetaAttributes"> + <xsl:with-param name="Source" select="."/> + <xsl:with-param name="InnerSimulation" select="true()"/> + <xsl:with-param name="InnerPass" select="'TRIGGER-RECURSION'"/> + </xsl:call-template> + </xsl:if> + </xsl:for-each> + </xsl:variable> + <xsl:choose> + <!-- instead of HelperDenormalizedSpace --> + <xsl:when test="$InnerSimulation"> + <xsl:value-of select="concat(generate-id(), '@', $Replacement/@with, ' ')"/> + </xsl:when> + <xsl:otherwise> + <xsl:if test="not( + contains($SimulateFollowingSiblings, + concat($Replacement/@with, ' ')) + ) + or + generate-id() + = + substring-before($SimulateFollowingSiblings, + concat('@', $Replacement/@with))"> + <xsl:copy> + <xsl:for-each select="@*"> + <xsl:choose> + <xsl:when test="name() = 'name'"> + <xsl:attribute name="{name()}"> + <xsl:value-of select="$Replacement/@with"/> + </xsl:attribute> + </xsl:when> + <xsl:when test="string($Replacement/@redefined-as) + and + name() = 'value'"> + <xsl:attribute name="{name()}"> + <xsl:value-of select="$Replacement/@redefined-as"/> + </xsl:attribute> + </xsl:when> + <xsl:otherwise> + <xsl:copy/> + </xsl:otherwise> + </xsl:choose> + </xsl:for-each> + </xsl:copy> + </xsl:if> + </xsl:otherwise> + </xsl:choose> + </xsl:when> + <xsl:otherwise> + <!-- XXX: emits superfluous empty lines with test-2/02[23], + but keeps -B run green --> + <xsl:call-template name="HelperDenormalizedSpace"> + <xsl:with-param name="Source" select="."/> + <xsl:with-param name="InnerSimulation" select="$InnerSimulation"/> + </xsl:call-template> + <xsl:call-template name="HelperIdentity"/> + </xsl:otherwise> + </xsl:choose> + </xsl:when> + <xsl:otherwise> + <xsl:call-template name="HelperIdentity"/> + </xsl:otherwise> + </xsl:choose> + </xsl:for-each> + <!-- E: special-casing nvpair --> +</xsl:template> + +<!-- Source ctxt: (primitive|template)/operations/op/meta_attributes Target ctxt: (primitive|template)/operations/op/meta_attributes Target-inv ctxt:(primitive|template)/meta_attributes @@ -1522,7 +1722,7 @@ <xsl:template match="primitive|template"> <xsl:copy> <xsl:apply-templates select="@*"/> - <!-- B: special-casing operations|instance_attributes --> + <!-- B: special-casing operations|instance_attributes|meta_attributes --> <xsl:for-each select="node()"> <xsl:choose> <xsl:when test="self::operations"> @@ -1566,12 +1766,32 @@ </xsl:copy> </xsl:if> </xsl:when> + <xsl:when test="self::meta_attributes"> + <xsl:variable name="ProcessedRscMetaAttributes"> + <xsl:call-template name="ProcessRscMetaAttributes"> + <xsl:with-param name="Source" select="."/> + <xsl:with-param name="InnerSimulation" select="true()"/> + </xsl:call-template> + </xsl:variable> + <!-- cf. trick A. --> + <xsl:if test="normalize-space($ProcessedRscMetaAttributes) + != $ProcessedRscMetaAttributes"> + <xsl:copy> + <xsl:apply-templates select="@*"/> + <xsl:call-template name="ProcessRscMetaAttributes"> + <xsl:with-param name="Source" select="."/> + <!-- cf. trick E. --> + <xsl:with-param name="InnerPass" select="$ProcessedRscMetaAttributes"/> + </xsl:call-template> + </xsl:copy> + </xsl:if> + </xsl:when> <xsl:otherwise> <xsl:call-template name="HelperIdentity"/> </xsl:otherwise> </xsl:choose> </xsl:for-each> - <!-- E: special-casing operations --> + <!-- E: special-casing operations|instance_attributes|meta_attributes --> <!-- add as last meta_attributes block... -->
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor