blob: 86eb0ff4a5ee208d4e37be5ba79509b4f8f69b4e [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<grammar xmlns="http://relaxng.org/ns/structure/1.0"
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
<start>
<ref name="element-crm_mon"/>
</start>
<define name="element-crm_mon">
<element name="crm_mon">
<attribute name="version"> <text/> </attribute>
<element name="summary">
<interleave>
<optional>
<element name="last_update">
<!-- crm_mon shows dates like "Mon Apr 13 16:06:27 2015" not
the XSD dateTime like "2015-04-13T16:06:27-05:00" -->
<attribute name="time"> <text/> </attribute>
</element>
</optional>
<optional>
<element name="last_change">
<attribute name="time"> <text/> </attribute>
<attribute name="user"> <text/> </attribute>
<attribute name="client"> <text/> </attribute>
<attribute name="origin"> <text/> </attribute>
</element>
</optional>
<optional>
<element name="stack">
<attribute name="type"> <text/> </attribute>
</element>
</optional>
<element name="current_dc">
<attribute name="present"> <data type="boolean" /> </attribute>
<optional>
<group>
<attribute name="version"> <text/> </attribute>
<attribute name="name"> <text/> </attribute>
<!-- pacemaker IDs are user-defined strings that are
not as restricted as the XSD ID type -->
<attribute name="id"> <text/> </attribute>
<attribute name="with_quorum"> <data type="boolean" /> </attribute>
</group>
</optional>
</element>
<element name="nodes_configured">
<attribute name="number"> <data type="int" /> </attribute>
<choice>
<attribute name="expected_votes"> <data type="int" /> </attribute>
<attribute name="expected_votes"> <value>unknown</value> </attribute>
</choice>
</element>
<element name="resources_configured">
<attribute name="number"> <data type="int" /> </attribute>
<optional>
<attribute name="disabled"> <data type="int" /> </attribute>
<attribute name="blocked"> <data type="int" /> </attribute>
</optional>
</element>
<optional>
<element name="cluster_options">
<attribute name="stonith-enabled"> <data type="boolean" /> </attribute>
<attribute name="symmetric-cluster"> <data type="boolean" /> </attribute>
<attribute name="no-quorum-policy"> <text/> </attribute>
<optional>
<attribute name="maintenance-mode"> <data type="boolean" /> </attribute>
</optional>
</element>
</optional>
</interleave>
</element>
<element name="nodes">
<zeroOrMore>
<element name="node">
<attribute name="name"> <text/> </attribute>
<attribute name="id"> <text/> </attribute>
<attribute name="online"> <data type="boolean" /> </attribute>
<attribute name="standby"> <data type="boolean" /> </attribute>
<attribute name="standby_onfail"> <data type="boolean" /> </attribute>
<attribute name="maintenance"> <data type="boolean" /> </attribute>
<attribute name="pending"> <data type="boolean" /> </attribute>
<attribute name="unclean"> <data type="boolean" /> </attribute>
<attribute name="shutdown"> <data type="boolean" /> </attribute>
<attribute name="expected_up"> <data type="boolean" /> </attribute>
<attribute name="is_dc"> <data type="boolean" /> </attribute>
<attribute name="resources_running"> <data type="int" /> </attribute>
<attribute name="type">
<choice>
<value>unknown</value>
<value>member</value>
<value>remote</value>
<value>ping</value>
</choice>
</attribute>
<optional>
<!-- for virtualized pacemaker_remote nodes, crm_mon 1.1.13 uses
"container_id" while later versions use "id_as_resource" -->
<choice>
<attribute name="container_id"> <text/> </attribute>
<attribute name="id_as_resource"> <text/> </attribute>
</choice>
</optional>
<ref name="resource_list" />
</element>
</zeroOrMore>
</element>
<optional>
<element name="resources">
<ref name="resource_list" />
</element>
</optional>
<optional>
<element name="node_attributes">
<zeroOrMore>
<element name="node">
<attribute name="name"> <text/> </attribute>
<zeroOrMore>
<element name="attribute">
<attribute name="name"> <text/> </attribute>
<attribute name="value"> <text/> </attribute>
<optional>
<attribute name="expected"> <data type="int" /> </attribute>
</optional>
</element>
</zeroOrMore>
</element>
</zeroOrMore>
</element>
</optional>
<optional>
<element name="node_history">
<zeroOrMore>
<element name="node">
<attribute name="name"> <text/> </attribute>
<zeroOrMore>
<element name="resource_history">
<attribute name="id"> <text/> </attribute>
<attribute name="orphan"> <data type="boolean" /> </attribute>
<attribute name="migration-threshold"> <data type="int" /> </attribute>
<optional>
<attribute name="fail-count"> <data type="int" /> </attribute>
</optional>
<optional>
<attribute name="last-failure"> <text/> </attribute>
</optional>
<zeroOrMore>
<element name="operation_history">
<attribute name="call"> <text/> </attribute>
<attribute name="task"> <text/> </attribute>
<optional>
<attribute name="interval"> <text/> </attribute>
</optional>
<optional>
<attribute name="last-rc-change"> <text/> </attribute>
</optional>
<optional>
<attribute name="last-run"> <text/> </attribute>
</optional>
<optional>
<attribute name="exec-time"> <text/> </attribute>
</optional>
<optional>
<attribute name="queue-time"> <text/> </attribute>
</optional>
<attribute name="rc"> <data type="int" /> </attribute>
<attribute name="rc_text"> <text/> </attribute>
</element>
</zeroOrMore>
</element>
</zeroOrMore>
</element>
</zeroOrMore>
</element>
</optional>
<optional>
<element name="failures">
<zeroOrMore>
<element name="failure">
<choice>
<attribute name="op_key"> <text/> </attribute>
<attribute name="id"> <text/> </attribute>
</choice>
<attribute name="node"> <text/> </attribute>
<attribute name="exitstatus"> <text/> </attribute>
<attribute name="exitreason"> <text/> </attribute>
<attribute name="exitcode"> <data type="int" /> </attribute>
<attribute name="call"> <text/> </attribute>
<attribute name="status"> <text/> </attribute>
<optional>
<group>
<attribute name="last-rc-change"> <text/> </attribute>
<attribute name="queued"> <text/> </attribute>
<attribute name="exec"> <text/> </attribute>
<attribute name="interval"> <data type="int" /> </attribute>
<attribute name="task"> <text/> </attribute>
</group>
</optional>
</element>
</zeroOrMore>
</element>
</optional>
<optional>
<element name="fence_history">
<zeroOrMore>
<element name="fence_event">
<!-- node to be fenced -->
<attribute name="target"> <text/> </attribute>
<!-- reboot, on, off -->
<attribute name="action"> <text/> </attribute>
<!-- failed, success, pending -->
<attribute name="state"> <text/> </attribute>
<optional>
<!-- node from where action was triggered -->
<attribute name="origin"> <text/> </attribute>
</optional>
<optional>
<!-- originating entity on triggering node -->
<attribute name="client"> <text/> </attribute>
</optional>
<optional>
<!-- node the action is executed on -->
<attribute name="delegate"> <text/> </attribute>
</optional>
<optional>
<!-- stamp when action was declared failed or success -->
<attribute name="completed"> <text/> </attribute>
</optional>
<optional>
<!-- especially interesting in the pending case -->
<attribute name="started"> <text/> </attribute>
</optional>
<optional>
<!-- in case output is reduced to most recent -->
<attribute name="last-failed"> <text/> </attribute>
</optional>
<optional>
<!-- in case output is reduced to most recent -->
<attribute name="last-successful"> <text/> </attribute>
</optional>
<optional>
<!-- why was the fencing action triggered -->
<attribute name="exec-reason"> <text/> </attribute>
</optional>
<optional>
<!-- details on the execution like failure reason -->
<attribute name="exec-details"> <text/> </attribute>
</optional>
</element>
</zeroOrMore>
</element>
</optional>
<optional>
<element name="tickets">
<zeroOrMore>
<element name="ticket">
<attribute name="id"> <text/> </attribute>
<attribute name="status"> <text/> </attribute>
<attribute name="standby"> <data type="boolean" /> </attribute>
<optional>
<attribute name="last-granted"> <text/> </attribute>
</optional>
</element>
</zeroOrMore>
</element>
</optional>
<optional>
<element name="bans">
<zeroOrMore>
<element name="ban">
<attribute name="id"> <text/> </attribute>
<attribute name="resource"> <text/> </attribute>
<attribute name="node"> <text/> </attribute>
<attribute name="weight"> <data type="int" /> </attribute>
<attribute name="master_only"> <data type="boolean" /> </attribute>
</element>
</zeroOrMore>
</element>
</optional>
</element>
</define>
<define name="resource_list">
<interleave>
<zeroOrMore>
<ref name="element-resource" />
</zeroOrMore>
<zeroOrMore>
<ref name="element-group" />
</zeroOrMore>
<zeroOrMore>
<ref name="element-clone" />
</zeroOrMore>
<zeroOrMore>
<ref name="element-bundle" />
</zeroOrMore>
</interleave>
</define>
<define name="element-resource">
<element name="resource">
<attribute name="id"> <text/> </attribute>
<attribute name="resource_agent"> <text/> </attribute>
<attribute name="role"> <text/> </attribute>
<optional>
<attribute name="target_role"> <text/> </attribute>
</optional>
<attribute name="active"> <data type="boolean" /> </attribute>
<attribute name="orphaned"> <data type="boolean" /> </attribute>
<optional>
<attribute name="blocked"> <data type="boolean" /> </attribute>
</optional>
<attribute name="managed"> <data type="boolean" /> </attribute>
<attribute name="failed"> <data type="boolean" /> </attribute>
<attribute name="failure_ignored"> <data type="boolean" /> </attribute>
<attribute name="nodes_running_on"> <data type="int" /> </attribute>
<optional>
<attribute name="pending"> <text/> </attribute>
</optional>
<zeroOrMore>
<!-- crm_mon prints the node only if group-by-node is false -->
<element name="node">
<attribute name="name"> <text/> </attribute>
<attribute name="id"> <text/> </attribute>
<attribute name="cached"> <data type="boolean" /> </attribute>
</element>
</zeroOrMore>
</element>
</define>
<define name="element-group">
<element name="group">
<attribute name="id"> <text/> </attribute>
<attribute name="number_resources"> <data type="int" /> </attribute>
<ref name="resource_list" />
</element>
</define>
<define name="element-clone">
<element name="clone">
<attribute name="id"> <text/> </attribute>
<attribute name="multi_state"> <data type="boolean" /> </attribute>
<attribute name="unique"> <data type="boolean" /> </attribute>
<attribute name="managed"> <data type="boolean" /> </attribute>
<attribute name="failed"> <data type="boolean" /> </attribute>
<attribute name="failure_ignored"> <data type="boolean" /> </attribute>
<optional>
<attribute name="target_role"> <text/> </attribute>
</optional>
<ref name="resource_list" />
</element>
</define>
<define name="element-bundle">
<element name="bundle">
<attribute name="id"> <text/> </attribute>
<attribute name="type">
<choice>
<value>docker</value>
<value>rkt</value>
</choice>
</attribute>
<attribute name="image"> <text/> </attribute>
<attribute name="unique"> <data type="boolean" /> </attribute>
<attribute name="managed"> <data type="boolean" /> </attribute>
<attribute name="failed"> <data type="boolean" /> </attribute>
<zeroOrMore>
<element name="replica">
<attribute name="id"> <data type="int" /> </attribute>
<zeroOrMore>
<ref name="element-resource" />
</zeroOrMore>
</element>
</zeroOrMore>
</element>
</define>
</grammar>