ClusterLabs / pcs

Pacemaker command line interface and GUI
GNU General Public License v2.0
250 stars 114 forks source link

Attempting to use an operation timeout without passing an interval generates xml schema error #40

Closed phemmer closed 10 years ago

phemmer commented 10 years ago

When trying to set an operation timeout (op start timeout=30s), if the interval parameter is not passed, an XML schema error is returned. If interval is not passed it should default to 0

# pcs resource create test2 ocf:pacemaker:Dummy op start timeout=30s
Error: Unable to create resource/fence device
Call cib_create failed (-203): Update does not conform to the configured schema
<cib epoch="64" num_updates="1" admin_epoch="0" validate-with="pacemaker-1.2" cib-last-written="Wed Jun  4 02:22:19 2014" update-origin="i-053f1f59" update-client="cibadmin" crm_feature_set="3.0.8" have-quorum="1" dc-uuid="3">
  <configuration>
    <crm_config>
      <cluster_property_set id="cib-bootstrap-options">
        <nvpair id="cib-bootstrap-options-dc-version" name="dc-version" value="1.1.11-1.fc20-9d39a6b"/>
        <nvpair id="cib-bootstrap-options-cluster-infrastructure" name="cluster-infrastructure" value="corosync"/>
        <nvpair id="cib-bootstrap-options-stonith-enabled" name="stonith-enabled" value="false"/>
        <nvpair id="cib-bootstrap-options-last-lrm-refresh" name="last-lrm-refresh" value="1401848085"/>
      </cluster_property_set>
    </crm_config>
    <nodes>
      <node id="1" uname="i-053f1f59"/>
      <node id="2" uname="i-093f1f55">
        <instance_attributes id="nodes-2">
          <nvpair id="nodes-2-standby" name="standby" value="on"/>
        </instance_attributes>
      </node>
      <node id="3" uname="i-083f1f54">
        <instance_attributes id="nodes-3">
          <nvpair id="nodes-3-standby" name="standby" value="on"/>
        </instance_attributes>
      </node>
    </nodes>
    <resources>
      <primitive class="ocf" id="app1" provider="cloud" type="DockerContainer">
        <instance_attributes id="app1-instance_attributes">
          <nvpair id="app1-instance_attributes-image" name="image" value="fedora"/>
          <nvpair id="app1-instance_attributes-command" name="command" value="sh -c &apos;while true; do curl -X POST -d &quot;$(date) $(env)&quot; http://requestb.in/17b7m861; sleep 30; done&apos;"/>
        </instance_attributes>
        <operations>
          <op id="app1-monitor-interval-1m" interval="1m" name="monitor"/>
          <op id="app1-start-interval-0" interval="0" name="start" timeout="300"/>
        </operations>
        <meta_attributes id="app1-meta_attributes"/>
      </primitive>
      <primitive class="ocf" id="test1" provider="pacemaker" type="Dummy">
        <instance_attributes id="test1-instance_attributes">
          <nvpair id="test1-instance_attributes-fake" name="fake" value="hello world"/>
        </instance_attributes>
      </primitive>
      <primitive class="ocf" id="test2" provider="pacemaker" type="Dummy">
        <instance_attributes id="test2-instance_attributes"/>
        <operations>
          <op id="test2-start-timeout-30s" name="start" timeout="30s"/>
        </operations>
      </primitive>
    </resources>
    <constraints/>
  </configuration>
  <status>
    <node_state id="1" uname="i-053f1f59" in_ccm="true" crmd="online" join="member" expected="member" crm-debug-origin="do_update_resource">
      <transient_attributes id="1">
        <instance_attributes id="status-1">
          <nvpair id="status-1-shutdown" name="shutdown" value="0"/>
          <nvpair id="status-1-probe_complete" name="probe_complete" value="true"/>
          <nvpair id="status-1-last-failure-app1" name="last-failure-app1" value="1401847926"/>
        </instance_attributes>
      </transient_attributes>
      <lrm id="1">
        <lrm_resources>
          <lrm_resource id="app1" type="DockerContainer" class="ocf" provider="cloud">
            <lrm_rsc_op id="app1_last_failure_0" operation_key="app1_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.8" transition-key="4:187:7:95bbffb5-41cc-447d-acc1-8e28c5f94777" transition-magic="0:0;4:187:7:95bbffb5-41cc-447d-acc1-8e28c5f94777" call-id="311" rc-code="0" op-status="0" interval="0" last-run="1401848086" last-rc-change="1401848086" exec-time="153" queue-time="0" op-digest="6d9e7e9ff44d3b3234dae9874cfccd85"/>
            <lrm_rsc_op id="app1_monitor_60000" operation_key="app1_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.8" transition-key="10:188:0:95bbffb5-41cc-447d-acc1-8e28c5f94777" transition-magic="0:0;10:188:0:95bbffb5-41cc-447d-acc1-8e28c5f94777" call-id="312" rc-code="0" op-status="0" interval="60000" last-rc-change="1401848086" exec-time="69" queue-time="0" op-digest="def3bbf9787113e013d0b058834c9c33"/>
          </lrm_resource>
          <lrm_resource id="test1" type="Dummy" class="ocf" provider="pacemaker">
            <lrm_rsc_op id="test1_last_0" operation_key="test1_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.8" transition-key="12:189:0:95bbffb5-41cc-447d-acc1-8e28c5f94777" transition-magic="0:0;12:189:0:95bbffb5-41cc-447d-acc1-8e28c5f94777" call-id="317" rc-code="0" op-status="0" interval="0" last-run="1401848384" last-rc-change="1401848384" exec-time="31" queue-time="0" op-digest="460b154c607938c6020b149b217fee26" op-force-restart=" state  op_sleep " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/>
          </lrm_resource>
        </lrm_resources>
      </lrm>
    </node_state>
    <node_state id="2" uname="i-093f1f55" crmd="online" crm-debug-origin="do_update_resource" in_ccm="true" join="member" expected="member">
      <transient_attributes id="2">
        <instance_attributes id="status-2">
          <nvpair id="status-2-probe_complete" name="probe_complete" value="true"/>
          <nvpair id="status-2-shutdown" name="shutdown" value="0"/>
        </instance_attributes>
      </transient_attributes>
      <lrm id="2">
        <lrm_resources>
          <lrm_resource id="app1" type="DockerContainer" class="ocf" provider="cloud">
            <lrm_rsc_op id="app1_last_0" operation_key="app1_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.8" transition-key="7:188:7:95bbffb5-41cc-447d-acc1-8e28c5f94777" transition-magic="0:7;7:188:7:95bbffb5-41cc-447d-acc1-8e28c5f94777" call-id="105" rc-code="7" op-status="0" interval="0" last-run="1401848086" last-rc-change="1401848086" exec-time="26" queue-time="1" op-digest="6d9e7e9ff44d3b3234dae9874cfccd85"/>
          </lrm_resource>
          <lrm_resource id="test1" type="Dummy" class="ocf" provider="pacemaker">
            <lrm_rsc_op id="test1_last_0" operation_key="test1_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.8" transition-key="9:189:7:95bbffb5-41cc-447d-acc1-8e28c5f94777" transition-magic="0:7;9:189:7:95bbffb5-41cc-447d-acc1-8e28c5f94777" call-id="109" rc-code="7" op-status="0" interval="0" last-run="1401848384" last-rc-change="1401848384" exec-time="28" queue-time="0" op-digest="460b154c607938c6020b149b217fee26" op-force-restart=" state  op_sleep " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/>
          </lrm_resource>
        </lrm_resources>
      </lrm>
    </node_state>
    <node_state id="3" uname="i-083f1f54" crmd="online" crm-debug-origin="do_update_resource" in_ccm="true" join="member" expected="member">
      <transient_attributes id="3">
        <instance_attributes id="status-3">
          <nvpair id="status-3-probe_complete" name="probe_complete" value="true"/>
          <nvpair id="status-3-shutdown" name="shutdown" value="0"/>
        </instance_attributes>
      </transient_attributes>
      <lrm id="3">
        <lrm_resources>
          <lrm_resource id="app1" type="DockerContainer" class="ocf" provider="cloud">
            <lrm_rsc_op id="app1_last_0" operation_key="app1_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.8" transition-key="5:188:7:95bbffb5-41cc-447d-acc1-8e28c5f94777" transition-magic="0:7;5:188:7:95bbffb5-41cc-447d-acc1-8e28c5f94777" call-id="105" rc-code="7" op-status="0" interval="0" last-run="1401848085" last-rc-change="1401848085" exec-time="47" queue-time="0" op-digest="6d9e7e9ff44d3b3234dae9874cfccd85"/>
          </lrm_resource>
          <lrm_resource id="test1" type="Dummy" class="ocf" provider="pacemaker">
            <lrm_rsc_op id="test1_last_0" operation_key="test1_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.8" transition-key="7:189:7:95bbffb5-41cc-447d-acc1-8e28c5f94777" transition-magic="0:7;7:189:7:95bbffb5-41cc-447d-acc1-8e28c5f94777" call-id="109" rc-code="7" op-status="0" interval="0" last-run="1401848383" last-rc-change="1401848383" exec-time="46" queue-time="0" op-digest="460b154c607938c6020b149b217fee26" op-force-restart=" state  op_sleep " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/>
          </lrm_resource>
        </lrm_resources>
      </lrm>
    </node_state>
  </status>
</cib>
# pcs resource create test2 ocf:pacemaker:Dummy op start timeout=30s interval=0
# pcs resource show test2      
 Resource: test2 (class=ocf provider=pacemaker type=Dummy)
  Operations: start interval=0 timeout=30s (test2-start-interval-0)
tomjelinek commented 10 years ago

This issue has been fixed in https://github.com/feist/pcs/commit/bee99d14bc07da3499029848a82b5059949f43f2

# pcs resource create test2 ocf:pacemaker:Dummy op start timeout=30s

# pcs resource --full
 Resource: test2 (class=ocf provider=pacemaker type=Dummy)
  Operations: start interval=0s timeout=30s (test2-start-timeout-30s)
              monitor interval=60s (test2-monitor-interval-60s)

# pcs --version
0.9.78