Page MenuHomeClusterLabs Projects

Fix handling of XSL transform failures
Open, HighPublic

Assigned To
Authored By
kgaillot
Wed, Sep 25, 3:16 PM
Tags
  • Restricted Project
  • Restricted Project
  • Restricted Project
Referenced Files
None
Subscribers

Description

Set CIB_file to a CIB that requires a transform, for example:

cat >needs-transform.xml <<EOF
<cib crm_feature_set="3.19.5" validate-with="pacemaker-1.3" epoch="2" num_updates="0" admin_epoch="0">
  <configuration>
    <crm_config>
      <cluster_property_set id="cib-bootstrap-options">
        <nvpair id="cib-bootstrap-options-stonith-enabled" name="stonith-enabled" value="false"/>
      </cluster_property_set>
    </crm_config>
    <nodes/>
    <resources/>
    <constraints/>
    <rsc_defaults>
      <meta_attributes id="build-resource-defaults">
        <nvpair id="build-resource-stickiness" name="resource-stickiness" value="1"/>
      </meta_attributes>
    </rsc_defaults>
    <acls>
      <acl_role id="acl-role"/>
      <acl_user id="acl-user">
        <role_ref id="acl-role"/>
      </acl_user>
    </acls>
  </configuration>
  <status/>
</cib>
EOF
cp needs-transform.xml test-cib.xml
export CIB_file=test-cib.xml

In normal operation, crm_verify -x $CIB_file will succeed with no errors, and cibadmin --upgrade --force will transform acl_user to acl_target and role_ref to role.

Starting with the original (not upgraded) XML again, temporarily make the required XSL unavailable, for example:

cp needs-transform.xml test-cib.xml
mv /usr/share/pacemaker/upgrade-1.3.xsl{,.bak}

In this case, crm_verify and cibadmin should give suitable error messages. Currently, crm_verify segfaults, and cibadmin exits success but does nothing.

Event Timeline

kgaillot created this task.
kgaillot created this object with edit policy "Restricted Project (Project)".