Cluster.ng: Difference between revisions

From Alteeve Wiki
Jump to navigation Jump to search
(Created page with '{{na_header}} This is the updated <span class="code">cluster.conf</span> validation XML file needed to add support for Node Assassin to Red Hat/CentOS clusters. * [http://nodea…')
 
No edit summary
 
Line 3: Line 3:
This is the updated <span class="code">cluster.conf</span> validation XML file needed to add support for Node Assassin to Red Hat/CentOS clusters.
This is the updated <span class="code">cluster.conf</span> validation XML file needed to add support for Node Assassin to Red Hat/CentOS clusters.


* [http://nodeassassin.org/file/usr/share/system-config-cluster/misc/cluster.ng cluster.ng] (local copy)
* [http://nodeassassin.org/files/usr/share/system-config-cluster/misc/cluster.ng cluster.ng] (local copy)
<source lang="xml">
<source lang="xml">
<grammar  datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" xmlns="http://relaxng.org/ns/structure/1.0">
<start>
<element name="cluster">
<attribute name="name"/>
<attribute name="config_version"/>
<optional>
  <attribute name="alias"/>
</optional>
<!-- The choice section below brackets two very large group blocks. -->
<!-- The first group specifies schema for a cman/dlm cluster, and -->
<!-- the second for a gulm cluster -->
<interleave>
<choice>
  <choice>
  <group>
    <ref name="cman_definition"/>
    <ref name="cman_clusternodes"/>
  </group>
  <group>   
    <ref name="cman_clusternodes"/>
    <ref name="cman_definition"/>
  </group>
  </choice>
  <choice>
  <group>
    <ref name="gulm_definition"/>
    <ref name="gulm_clusternodes"/>
  </group>
  <group>   
    <ref name="gulm_clusternodes"/>
    <ref name="gulm_definition"/>
  </group>
  </choice>
</choice>
<optional>
<element name="fencedevices">
  <zeroOrMore>
  <element name="fencedevice">
    <attribute name="name">
      <data type="ID"/>
    </attribute>
    <attribute name="agent"/>
    <optional>
      <choice>
      <!-- Node Assassin -->
      <group>
        <attribute name="ipaddr"/>
        <optional>
        <attribute name="login"/>
        </optional>
        <optional>
        <attribute name="passwd"/>
        </optional>
        <optional>
        <attribute name="passwd_script"/>
        </optional>
        <optional>
        <attribute name="quiet"/>
        </optional>
      </group>
      <!-- RPS10 -->
      <group>
        <attribute name="device" />
        <attribute name="port" />
      </group>
      <!-- APC, Brocade, McData, SANBox2, Bladecenter,bullpap, ipmilan -->
      <group>
        <attribute name="ipaddr"/>
        <optional>
        <attribute name="login"/>
        </optional>
        <optional>
        <attribute name="passwd"/>
        </optional>
        <optional>
        <attribute name="passwd_script"/>
        </optional>
        <optional>
        <attribute name="auth"/>
        </optional>
        <optional>
        <attribute name="lanplus"/>
        </optional>
      </group>
      <!-- WTI, Vixel -->
      <group>
        <optional>
        <attribute name="ipaddr"/>
        </optional>
        <optional>
        <attribute name="passwd"/>
        </optional>
        <optional>
        <attribute name="passwd_script"/>
        </optional>
      </group>
      <!-- scsi reservations -->
      <group>
        <attribute name="nodename"/>
        <attribute name="self"/>
      </group>
      <!-- ILO -->
      <group>
        <attribute name="hostname"/>
        <attribute name="login"/>
        <optional>
        <attribute name="passwd"/>
        </optional>
        <optional>
        <attribute name="passwd_script"/>
        </optional>
        <optional>
        <attribute name="force"/>
        </optional>
      </group>
      <!-- GNBD -->
      <group>
        <attribute name="servers"/>
      </group>
      <!-- Egenera -->
      <group>
        <attribute name="cserver"/>
      </group>
      <!-- xCAT -->
      <group>
        <attribute name="rpowerpath"/>
      </group>
      <!-- manual -->
      <group>
        <optional>
        <empty/>
        </optional>
      </group>
      </choice>
    </optional>
    </element>
  </zeroOrMore>
</element>
</optional>
<optional>
  <element name="fence_xvmd">
  <empty/>
  </element>
</optional>
<optional>
  <element name="totem">
  <optional>
    <attribute name="consensus"/>
  </optional>
  <optional>
    <attribute name="join"/>
  </optional>
  <optional>
    <attribute name="token"/>
  </optional>
  <optional>
    <attribute name="token_retransmits_before_loss_const"/>
  </optional>
  </element>
</optional>
<optional>
  <element name="rm">
  <optional>
    <attribute name="log_level"/>
  </optional>
  <optional>
    <attribute name="statusmax"/>
  </optional>
  <optional>
    <attribute name="log_facility"/>
  </optional>
  <interleave>
  <optional>
    <element name="failoverdomains">
    <zeroOrMore>
      <element name="failoverdomain">
      <attribute name="name"/>
      <optional>
        <attribute name="ordered"/>
      </optional>
      <optional>
        <attribute name="restricted"/>
      </optional>
      <optional>
        <attribute name="nofailback"/>
      </optional>
      <zeroOrMore>
        <element name="failoverdomainnode">
        <optional>
          <attribute name="priority"/>
        </optional>
        <attribute name="name"/>
        </element>
      </zeroOrMore>
      </element>
    </zeroOrMore>
    </element>
  </optional>  <!-- End of failoverdomains block -->
  <optional>
    <element name="resources">
    <zeroOrMore>
      <ref name="ALLCHILDREN"/>
    </zeroOrMore>
    </element>
  </optional>
  <zeroOrMore>
    <element name="service">
    <attribute name="name"/>
    <optional>
      <attribute name="domain"/>
    </optional>
    <optional>
      <attribute name="autostart"/>
    </optional>
    <optional>
      <attribute name="hardrecovery"/>
    </optional>
    <optional>
      <attribute name="exclusive"/>
    </optional>
    <optional>
      <attribute name="recovery"/>
    </optional>
    <optional>
      <attribute name="nfslock"/>
    </optional>
    <zeroOrMore>
      <ref name="ALLCHILDREN"/>
    </zeroOrMore>
    </element>
  </zeroOrMore>
  <zeroOrMore>
    <element name="vm">
    <attribute name="name"/>
    <attribute name="path"/>
    <attribute name="domain"/>
    <optional>
      <attribute name="autostart"/>
    </optional>
    <optional>
      <attribute name="exclusive"/>
    </optional>
    <optional>
      <attribute name="recovery"/>
    </optional>
    <optional>
      <attribute name="migration"/>
    </optional>
    </element>
  </zeroOrMore>
  </interleave>
  </element>
</optional>
<optional>
  <element name="fence_daemon">
  <optional>
    <attribute name="post_join_delay"/>
  </optional>
  <optional>
    <attribute name="post_fail_delay"/>
  </optional>
  <optional>
    <attribute name="clean_start"/>
  </optional>
  </element>
</optional>
<optional>
  <element name="quorumd">
  <optional>
    <attribute name="interval"/>
  </optional>
  <optional>
    <attribute name="tko"/>
  </optional>
  <optional>
    <attribute name="tko_up"/>
  </optional>
  <optional>
    <attribute name="upgrade_wait"/>
  </optional>
  <optional>
    <attribute name="master_wait"/>
  </optional>
  <optional>
    <attribute name="votes"/>
  </optional>
  <optional>
    <attribute name="min_score"/>
  </optional>
  <optional>
    <attribute name="device"/>
  </optional>
  <optional>
    <attribute name="label"/>
  </optional>
  <optional>
    <attribute name="reboot"/>
  </optional>
  <optional>
    <attribute name="allow_kill"/>
  </optional>
  <optional>
    <attribute name="paranoid"/>
  </optional>
  <optional>
    <attribute name="priority"/>
  </optional>
  <optional>
    <attribute name="stop_cman"/>
  </optional>
  <optional>
    <attribute name="use_uptime"/>
  </optional>
  <optional>
    <attribute name="scheduler"/>
  </optional>
  <optional>
    <attribute name="status_file"/>
  </optional>
  <optional>
    <attribute name="log_level"/>
  </optional>
  <optional>
    <attribute name="log_facility"/>
  </optional>
  <optional>
    <element name="heuristic">
    <attribute name="program"/>
    <optional>
      <attribute name="score"/>
    </optional>
    <optional>
      <attribute name="interval"/>
    </optional>
    <optional>
      <attribute name="tko"/>
    </optional>
    </element>
  </optional>
  </element>
</optional>
</interleave>
</element> <!-- cluster end -->
</start>
  <define name="cman_definition">
    <element name="cman">
    <choice>
    <group>
      <attribute name="two_node"/>
      <attribute name="expected_votes">
      <data type="positiveInteger"/>
      </attribute>
    </group>
    <group>
      <optional>
      <attribute name="expected_votes">
        <data type="positiveInteger"/>
      </attribute>
      </optional>
    </group>
    </choice>
    <optional>
    <element name="multicast">
      <attribute name="addr"/>
    </element>
    </optional>
      <optional>
      <attribute name="deadnode_timeout">
        <data type="positiveInteger"/>
      </attribute>
      </optional>
    <optional>
    <attribute name="log_level"/>
    </optional>
    <optional>
    <attribute name="log_facility"/>
    </optional>
  </element>
  </define>
  <define name="cman_clusternodes">
    <element name="clusternodes">
    <zeroOrMore>
    <element name="clusternode">
      <attribute name="name">
      <data type="ID"/>
      </attribute>
      <optional>
      <attribute name="votes">
        <data type="positiveInteger"/>
      </attribute>
      </optional>
      <optional>
      <attribute name="nodeid">
        <data type="positiveInteger"/>
      </attribute>
      </optional>
      <interleave>
      <optional>
        <element name="multicast">
        <attribute name="addr"/>
        <optional>
          <attribute name="interface"/>
        </optional>
        </element>
      </optional>
      <optional>
        <ref name="FENCE"/>
      </optional>
      </interleave>
    </element>
    </zeroOrMore>
  </element>
  </define>
 
  <define name="gulm_definition">
    <element name="gulm">
    <optional>
    <attribute name="heartbeat_rate">
      <data type="positiveInteger"/>
    </attribute>
    </optional>
    <optional>
    <attribute name="allowed_misses">
      <data type="positiveInteger"/>
    </attribute>
    </optional>
    <optional>
    <attribute name="coreport">
      <data type="positiveInteger"/>
    </attribute>
    </optional> 
    <optional>
    <attribute name="ltpxport">
      <data type="positiveInteger"/>
    </attribute>
    </optional>
    <optional>
    <attribute name="ltport">
      <data type="positiveInteger"/>
    </attribute>
    </optional>
    <optional>
    <attribute name="lt_partitions">
      <data type="positiveInteger"/>
    </attribute>
    </optional>
    <optional>
    <attribute name="master_scan_delay">
      <data type="positiveInteger"/>
    </attribute>
    </optional>
    <optional>
    <attribute name="new_connection_timeout">
      <data type="positiveInteger"/>
    </attribute>
    </optional>
    <oneOrMore>
    <element name="lockserver">
      <attribute name="name">
      <data type="IDREF"/>
      </attribute>
    </element>
    </oneOrMore>
  </element>
  </define>
  <define name="gulm_clusternodes">
    <element name="clusternodes">
    <zeroOrMore>
    <element name="clusternode">
      <attribute name="name">
      <data type="ID"/>
      </attribute>
      <optional>
      <attribute name="votes">
        <data type="positiveInteger"/>
      </attribute>
      </optional>
      <optional>
        <ref name="FENCE"/>
      </optional>
    </element>
    </zeroOrMore>
  </element>
  </define>
 
  <define name="SAMBA">
  <element name="smb">
    <choice>
    <group>
      <attribute name="ref"/>
    </group>
    <group>
      <attribute name="name"/>
      <optional>
      <attribute name="workgroup"/>
      </optional>
      <optional>
      <attribute name="__independent_subtree"/>
      </optional>
    </group>
    </choice>
    <optional>
    <ref name="CHILDREN"/>
    </optional>
  </element>
  </define>
  <define name="SYBASE">
  <element name="ASEHAagent">
    <choice>
    <group>
      <attribute name="ref"/>
    </group>
    <group>
      <attribute name="name"/>
      <optional>
      <attribute name="login_file"/>
      </optional>
      <optional>
      <attribute name="interfaces_file"/>
      </optional>
      <optional>
      <attribute name="server_name"/>
      </optional>
      <optional>
      <attribute name="sybase_home"/>
      </optional>
      <optional>
      <attribute name="sybase_ase"/>
      </optional>
      <optional>
      <attribute name="sybase_ocs"/>
      </optional>
      <optional>
      <attribute name="sybase_user"/>
      </optional>
      <optional>
      <attribute name="deep_probe_timeout"/>
      </optional>
      <optional>
      <attribute name="__independent_subtree"/>
      </optional>
    </group>
    </choice>
    <optional>
    <ref name="CHILDREN"/>
    </optional>
  </element>
  </define>
  <define name="APACHE">
  <element name="apache">
    <choice>
    <group>
      <attribute name="ref"/>
    </group>
    <group>
      <attribute name="name"/>
      <optional>
      <attribute name="config_file"/>
      </optional>
      <optional>
      <attribute name="server_root"/>
      </optional>
      <optional>
      <attribute name="httpd_options"/>
      </optional>
      <optional>
      <attribute name="shutdown_wait"/>
      </optional>
      <optional>
      <attribute name="__independent_subtree"/>
      </optional>
    </group>
    </choice>
    <optional>
    <ref name="CHILDREN"/>
    </optional>
  </element>
  </define>
  <define name="POSTGRES">
  <element name="postgres-8">
    <choice>
    <group>
      <attribute name="ref"/>
    </group>
    <group>
      <attribute name="name"/>
      <optional>
      <attribute name="config_file"/>
      </optional>
      <optional>
      <attribute name="postmaster_user"/>
      </optional>
      <optional>
      <attribute name="postmaster_options"/>
      </optional>
      <optional>
      <attribute name="shutdown_wait"/>
      </optional>
      <optional>
      <attribute name="__independent_subtree"/>
      </optional>
    </group>
    </choice>
    <optional>
    <ref name="CHILDREN"/>
    </optional>
  </element>
  </define>
  <define name="TOMCAT">
  <element name="tomcat-5">
    <choice>
    <group>
      <attribute name="ref"/>
    </group>
    <group>
      <attribute name="name"/>
      <optional>
      <attribute name="config_file"/>
      </optional>
      <optional>
      <attribute name="tomcat_user"/>
      </optional>
      <optional>
      <attribute name="catalina_options"/>
      </optional>
      <optional>
      <attribute name="catalina_base"/>
      </optional>
      <optional>
      <attribute name="shutdown_wait"/>
      </optional>
      <optional>
      <attribute name="__independent_subtree"/>
      </optional>
    </group>
    </choice>
    <optional>
    <ref name="CHILDREN"/>
    </optional>
  </element>
  </define>
  <define name="MYSQL">
  <element name="mysql">
    <choice>
    <group>
      <attribute name="ref"/>
    </group>
    <group>
      <attribute name="name"/>
      <optional>
      <attribute name="config_file"/>
      </optional>
      <optional>
      <attribute name="listen_address"/>
      </optional>
      <optional>
      <attribute name="mysql_options"/>
      </optional>
      <optional>
      <attribute name="shutdown_wait"/>
      </optional>
      <optional>
      <attribute name="__independent_subtree"/>
      </optional>
    </group>
    </choice>
    <optional>
    <ref name="CHILDREN"/>
    </optional>
  </element>
  </define>
  <define name="LVM">
  <element name="lvm">
    <choice>
    <group>
      <attribute name="ref"/>
    </group>
    <group>
      <attribute name="name"/>
      <optional>
      <attribute name="lv_name"/>
      </optional>
      <optional>
      <attribute name="vg_name"/>
      </optional>
      <optional>
      <attribute name="__independent_subtree"/>
      </optional>
    </group>
    </choice>
    <optional>
    <ref name="CHILDREN"/>
    </optional>
  </element>
  </define>
  <define name="SAPDB">
  <element name="SAPDatabase">
    <choice>
    <group>
      <attribute name="ref"/>
    </group>
    <group>
      <attribute name="SID"/>
      <optional>
      <attribute name="DIR_EXECUTABLE"/>
      </optional>
      <optional>
      <attribute name="NETSERVICENAME"/>
      </optional>
      <optional>
      <attribute name="DIR_BOOTSTRAP"/>
      </optional>
      <optional>
      <attribute name="DIR_SECSTORE"/>
      </optional>
      <optional>
      <attribute name="DBJ2EE_ONLY"/>
      </optional>
      <optional>
      <attribute name="DBTYPE"/>
      </optional>
      <optional>
      <attribute name="__independent_subtree"/>
      </optional>
    </group>
    </choice>
    <optional>
    <ref name="CHILDREN"/>
    </optional>
  </element>
  </define>
  <define name="SAP">
  <element name="SAPInstance">
    <choice>
    <group>
      <attribute name="ref"/>
    </group>
    <group>
      <attribute name="InstanceName"/>
      <optional>
      <attribute name="DIR_EXECUTABLE"/>
      </optional>
      <optional>
      <attribute name="DIR_PROFILE"/>
      </optional>
      <optional>
      <attribute name="START_PROFILE"/>
      </optional>
      <optional>
      <attribute name="__independent_subtree"/>
      </optional>
    </group>
    </choice>
    <optional>
    <ref name="CHILDREN"/>
    </optional>
  </element>
  </define>
  <define name="OPENLDAP">
  <element name="openldap">
    <choice>
    <group>
      <attribute name="ref"/>
    </group>
    <group>
      <attribute name="name"/>
      <optional>
      <attribute name="config_file"/>
      </optional>
      <optional>
      <attribute name="url_list"/>
      </optional>
      <optional>
      <attribute name="slapd_options"/>
      </optional>
      <optional>
      <attribute name="shutdown_wait"/>
      </optional>
      <optional>
      <attribute name="__independent_subtree"/>
      </optional>
    </group>
    </choice>
    <optional>
    <ref name="CHILDREN"/>
    </optional>
  </element>
  </define>
 
  <define name="IP">
  <element name="ip">
    <choice>
    <group>
      <attribute name="ref"/>
    </group>
    <group>
      <attribute name="address"/>
      <optional>
      <attribute name="monitor_link"/>
      </optional>
      <optional>
      <attribute name="family"/>
      </optional>
      <optional>
      <attribute name="__independent_subtree"/>
      </optional>
    </group>
    </choice>
    <optional>
    <ref name="CHILDREN"/>
    </optional>
  </element>
  </define>
  <define name="FS">
  <element name="fs">
    <choice>
    <group>
      <attribute name="ref"/>
    </group>
    <group>
      <attribute name="name"/>
      <attribute name="mountpoint"/>
      <attribute name="device"/>
      <optional>
      <attribute name="fsid"/>
      </optional>
      <optional>
      <attribute name="fstype"/>
      </optional>
      <optional>
      <attribute name="force_unmount"/>
      </optional>
      <optional>
      <attribute name="self_fence"/>
      </optional>
      <optional>
      <attribute name="force_fsck"/>
      </optional>
      <optional>
      <attribute name="options"/>
      </optional>
      <optional>
      <attribute name="__independent_subtree"/>
      </optional>
    </group>
    </choice>
    <zeroOrMore>
    <choice>
      <ref name="NFSEXPORT"/>
      <ref name="CHILDREN"/>
    </choice>
    </zeroOrMore>
  </element>
  </define>
  <define name="CLUSTERFS">
  <element name="clusterfs">
    <choice>
    <group>
      <attribute name="ref"/>
    </group>
    <group>
      <attribute name="name"/>
      <attribute name="mountpoint"/>
      <attribute name="device"/>
      <optional>
      <attribute name="fsid"/>
      <attribute name="fstype"/>
      </optional>
      <optional>
      <attribute name="force_unmount"/>
      </optional>
      <optional>
      <attribute name="options"/>
      </optional>
      <optional>
      <attribute name="__independent_subtree"/>
      </optional>
    </group>
    </choice>
    <zeroOrMore>
    <choice>
      <ref name="NFSEXPORT"/>
      <ref name="CHILDREN"/>
    </choice>
    </zeroOrMore>
  </element>
  </define>
  <define name="NETFS">
  <element name="netfs">
    <choice>
    <group>
      <attribute name="ref"/>
    </group>
    <group>
      <attribute name="name"/>
      <attribute name="mountpoint"/>
      <attribute name="host"/>
      <attribute name="export"/>
      <optional>
      <attribute name="fstype"/>
      </optional>
      <optional>
      <attribute name="force_unmount"/>
      </optional>
      <optional>
      <attribute name="options"/>
      </optional>
      <optional>
      <attribute name="__independent_subtree"/>
      </optional>
    </group>
    </choice>
    <optional>
    <ref name="CHILDREN"/>
    </optional>
  </element>
  </define>
  <define name="NFSEXPORT">
  <element name="nfsexport">
    <choice>
      <attribute name="ref"/>
      <attribute name="name"/>
      <optional>
      <attribute name="__independent_subtree"/>
      </optional>
    </choice>
    <zeroOrMore>
    <ref name="ALLCHILDREN"/>
    </zeroOrMore>
  </element>
  </define>
  <define name="NFSCLIENT">
  <element name="nfsclient">
    <choice>
    <group>
      <attribute name="ref"/>
    </group>
    <group>
      <attribute name="name"/>
      <attribute name="target"/>
      <optional>
      <attribute name="options"/>
      </optional>
      <optional>
      <attribute name="path"/>
      </optional>
      <optional>
      <attribute name="fsid"/>
      </optional>
      <optional>
      <attribute name="__independent_subtree"/>
      </optional>
    </group>
    </choice>
  </element>
  </define>
  <define name="SCRIPT">
  <element name="script">
    <choice>
    <group>
      <attribute name="ref"/>
    </group>
    <group>
      <attribute name="name"/>
      <attribute name="file"/>
      <optional>
      <attribute name="__independent_subtree"/>
      </optional>
    </group>
    </choice>
    <optional>
    <ref name="CHILDREN"/>
    </optional>
  </element>
  </define>
  <define name="CHILD">
  <!-- for recursion to work properly, CHILD may be referenced at CHILDREN only -->
    <zeroOrMore>
    <choice>
      <ref name="SCRIPT"/>
      <ref name="IP"/>
      <ref name="NETFS"/>
      <ref name="CLUSTERFS"/>
      <ref name="FS"/>
      <ref name="SAMBA"/>
      <ref name="OPENLDAP"/>
      <ref name="APACHE"/>
      <ref name="SYBASE"/>
      <ref name="LVM"/>
      <ref name="POSTGRES"/>
      <ref name="TOMCAT"/>
      <ref name="MYSQL"/>
      <ref name="SAP"/>
      <ref name="SAPDB"/>
    </choice>
    </zeroOrMore>
  </define>
  <define name="CHILDREN">
  <zeroOrMore>
<!--    <ref name="CHILD"/> for now everything can be a child -->
    <ref name="ALLCHILDREN"/>
  </zeroOrMore>
  </define>
  <define name="ALLCHILDREN">
  <zeroOrMore>
    <choice>
    <ref name="CHILD"/>
    <ref name="NFSEXPORT"/>
    <ref name="NFSCLIENT"/>
    </choice>
  </zeroOrMore>
  </define>
<define name="FENCE">
  <element name="fence">
  <zeroOrMore>
    <element name="method">
    <attribute name="name"/>
    <zeroOrMore>
      <element name="device">
      <attribute name="name">
        <data type="IDREF"/>
      </attribute>
      <choice>
        <!-- DRAC -->
        <group>
        <optional>
          <attribute name="action"/>
        </optional>
        <optional>
          <attribute name="modulename"/>
        </optional>
        </group>
        <!-- Node Assassin -->
        <group>
        <attribute name="port"/>
        <attribute name="action"/>
        </group>
        <!-- WTI, Brocade, Vixel, McData, SANBox2 -->
        <group>
        <attribute name="port"/>
        <optional>
          <attribute name="option"/>
        </optional>
        </group>
        <!-- APC -->
        <group>
        <attribute name="port"/>
        <optional>
          <attribute name="switch"/>
        </optional>
        <optional>
          <attribute name="option"/>
        </optional>
        </group>
        <!-- BladeCenter -->
        <group>
        <attribute name="blade"/>
        <optional>
          <attribute name="option"/>
        </optional>
        </group>
        <!-- xCAT, manual -->
        <group>
        <attribute name="nodename"/>
        <optional>
          <attribute name="option"/>
        </optional>
        </group>
<!-- GNBD -->
        <group>
        <attribute name="nodename"/>
<optional>
  <attribute name="ipaddr"/>
</optional>
        <optional>
          <attribute name="option"/>
        </optional>
        </group>
        <!-- bullpap -->
        <group>
        <attribute name="domain"/>
        <optional>
          <attribute name="option"/>
        </optional>
        </group>
        <!-- Egenera -->
        <group>
        <attribute name="lpan"/>
        <attribute name="pserver"/>
        <optional>
          <attribute name="option"/>
        </optional>
        </group>
        <!-- ILO, ipmilan -->
        <group>
        <optional>
          <empty/>
        </optional>
        <optional>
          <attribute name="lanplus"/>
        </optional>
        <optional>
          <attribute name="option"/>
        </optional>
        </group>
        <!-- scsi reservations -->
        <group>
        <optional>
          <attribute name="node"/>
        </optional>
        </group>
        <!-- xvm -->
        <group>
        <optional>
          <attribute name="domain"/>
        </optional>
        </group>
      </choice>
      </element>
    </zeroOrMore>
    </element>
  </zeroOrMore>
  </element>
</define>
</grammar>     
</source>
</source>


{{footer}}
{{footer}}

Latest revision as of 01:52, 15 March 2010

 Node Assassin :: Cluster.ng

This is the updated cluster.conf validation XML file needed to add support for Node Assassin to Red Hat/CentOS clusters.

<grammar  datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" xmlns="http://relaxng.org/ns/structure/1.0">
<start>
<element name="cluster">
 <attribute name="name"/>
 <attribute name="config_version"/>
 <optional>
  <attribute name="alias"/>
 </optional>
 <!-- The choice section below brackets two very large group blocks. -->
 <!-- The first group specifies schema for a cman/dlm cluster, and -->
 <!-- the second for a gulm cluster -->
 <interleave>
 <choice>
  <choice>
   <group>
    <ref name="cman_definition"/>
    <ref name="cman_clusternodes"/>
   </group>
   <group>    
    <ref name="cman_clusternodes"/>
    <ref name="cman_definition"/>
   </group>
  </choice>
  <choice>
   <group>
    <ref name="gulm_definition"/>
    <ref name="gulm_clusternodes"/>
   </group>
   <group>    
    <ref name="gulm_clusternodes"/>
    <ref name="gulm_definition"/>
   </group>
  </choice>
 </choice>
 
 
 <optional>
 <element name="fencedevices">
  <zeroOrMore>
   <element name="fencedevice">
     <attribute name="name">
      <data type="ID"/>
     </attribute>
     <attribute name="agent"/>
     <optional>
      <choice>
       <!-- Node Assassin -->
       <group>
        <attribute name="ipaddr"/>
        <optional>
        <attribute name="login"/>
        </optional>
        <optional>
        <attribute name="passwd"/>
        </optional>
        <optional>
        <attribute name="passwd_script"/>
        </optional>
        <optional>
         <attribute name="quiet"/>
        </optional>
       </group>
       <!-- RPS10 -->
       <group>
        <attribute name="device" />
        <attribute name="port" />
       </group>
       <!-- APC, Brocade, McData, SANBox2, Bladecenter,bullpap, ipmilan -->
       <group>
        <attribute name="ipaddr"/>
        <optional>
        <attribute name="login"/>
        </optional>
        <optional>
        <attribute name="passwd"/>
        </optional>
        <optional>
        <attribute name="passwd_script"/>
        </optional>
        <optional>
         <attribute name="auth"/>
        </optional>
        <optional>
         <attribute name="lanplus"/>
        </optional>
       </group>
       <!-- WTI, Vixel -->
       <group>
        <optional>
         <attribute name="ipaddr"/>
        </optional>
        <optional>
        <attribute name="passwd"/>
        </optional>
        <optional>
         <attribute name="passwd_script"/>
        </optional>
       </group>
       <!-- scsi reservations -->
       <group>
        <attribute name="nodename"/>
        <attribute name="self"/>
       </group>
       <!-- ILO -->
       <group>
        <attribute name="hostname"/>
        <attribute name="login"/>
        <optional>
         <attribute name="passwd"/>
        </optional>
        <optional>
         <attribute name="passwd_script"/>
        </optional>
        <optional>
         <attribute name="force"/>
        </optional>
       </group>
       <!-- GNBD -->
       <group>
        <attribute name="servers"/>
       </group>
       <!-- Egenera -->
       <group>
        <attribute name="cserver"/>
       </group>
       <!-- xCAT -->
       <group>
        <attribute name="rpowerpath"/>
       </group>
       <!-- manual -->
       <group>
        <optional>
         <empty/>
        </optional>
       </group>
      </choice>
     </optional>
    </element>
  </zeroOrMore>
 </element>
 </optional>

 <optional>
  <element name="fence_xvmd">
   <empty/>
  </element>
 </optional>

 <optional>
  <element name="totem">
   <optional>
    <attribute name="consensus"/>
   </optional>
   <optional>
    <attribute name="join"/>
   </optional>
   <optional>
    <attribute name="token"/>
   </optional>
   <optional>
    <attribute name="token_retransmits_before_loss_const"/>
   </optional>
  </element>
 </optional>

 <optional>
  <element name="rm">
   <optional>
    <attribute name="log_level"/>
   </optional>
   <optional>
    <attribute name="statusmax"/>
   </optional>
   <optional>
    <attribute name="log_facility"/>
   </optional>
   <interleave>
   <optional>
    <element name="failoverdomains">
     <zeroOrMore>
      <element name="failoverdomain">
       <attribute name="name"/>
       <optional>
        <attribute name="ordered"/>
       </optional>
       <optional>
        <attribute name="restricted"/>
       </optional>
       <optional>
        <attribute name="nofailback"/>
       </optional>
       <zeroOrMore>
        <element name="failoverdomainnode">
         <optional>
          <attribute name="priority"/>
         </optional>
         <attribute name="name"/>
        </element>
       </zeroOrMore>
      </element>
     </zeroOrMore>
    </element>
   </optional>  <!-- End of failoverdomains block -->
   <optional> 
    <element name="resources">
     <zeroOrMore>
      <ref name="ALLCHILDREN"/>
     </zeroOrMore>
    </element>
   </optional>
   <zeroOrMore>
    <element name="service">
     <attribute name="name"/>
     <optional>
      <attribute name="domain"/>
     </optional>
     <optional>
      <attribute name="autostart"/>
     </optional>
     <optional>
      <attribute name="hardrecovery"/>
     </optional>
     <optional>
      <attribute name="exclusive"/>
     </optional>
     <optional>
      <attribute name="recovery"/>
     </optional>
     <optional>
      <attribute name="nfslock"/>
     </optional>
     <zeroOrMore>
      <ref name="ALLCHILDREN"/>
     </zeroOrMore>
    </element>
   </zeroOrMore>
   <zeroOrMore>
    <element name="vm">
     <attribute name="name"/>
     <attribute name="path"/>
     <attribute name="domain"/>
     <optional>
      <attribute name="autostart"/>
     </optional>
     <optional>
      <attribute name="exclusive"/>
     </optional>
     <optional>
      <attribute name="recovery"/>
     </optional>
     <optional>
      <attribute name="migration"/>
     </optional>
    </element>
   </zeroOrMore>
  </interleave>
  </element>
 </optional>

 <optional>
  <element name="fence_daemon">
   <optional>
    <attribute name="post_join_delay"/>
   </optional>
   <optional>
    <attribute name="post_fail_delay"/>
   </optional>
   <optional>
    <attribute name="clean_start"/>
   </optional>
  </element>
 </optional>

 <optional>
  <element name="quorumd">
   <optional>
    <attribute name="interval"/>
   </optional>
   <optional>
    <attribute name="tko"/>
   </optional>
   <optional>
    <attribute name="tko_up"/>
   </optional>
   <optional>
    <attribute name="upgrade_wait"/>
   </optional>
   <optional>
    <attribute name="master_wait"/>
   </optional>
   <optional>
    <attribute name="votes"/>
   </optional>
   <optional>
    <attribute name="min_score"/>
   </optional>
   <optional>
    <attribute name="device"/>
   </optional>
   <optional>
    <attribute name="label"/>
   </optional>
   <optional>
    <attribute name="reboot"/>
   </optional>
   <optional>
    <attribute name="allow_kill"/>
   </optional>
   <optional>
    <attribute name="paranoid"/>
   </optional>
   <optional>
    <attribute name="priority"/>
   </optional>
   <optional>
    <attribute name="stop_cman"/>
   </optional>
   <optional>
    <attribute name="use_uptime"/>
   </optional>
   <optional>
    <attribute name="scheduler"/>
   </optional>
   <optional>
    <attribute name="status_file"/>
   </optional>
   <optional>
    <attribute name="log_level"/>
   </optional>
   <optional>
    <attribute name="log_facility"/>
   </optional>
   <optional>
    <element name="heuristic">
     <attribute name="program"/>
     <optional>
      <attribute name="score"/>
     </optional>
     <optional>
      <attribute name="interval"/>
     </optional>
     <optional>
      <attribute name="tko"/>
     </optional>
    </element>
   </optional>
  </element>
 </optional>

 </interleave>
</element> <!-- cluster end -->
</start>

  <define name="cman_definition">
    <element name="cman">
    <choice>
     <group>
      <attribute name="two_node"/>
      <attribute name="expected_votes">
       <data type="positiveInteger"/>
      </attribute>
     </group>
     <group>
      <optional>
       <attribute name="expected_votes">
        <data type="positiveInteger"/>
       </attribute>
      </optional>
     </group>
    </choice>
    <optional>
     <element name="multicast">
      <attribute name="addr"/>
     </element>
    </optional> 
      <optional>
       <attribute name="deadnode_timeout">
        <data type="positiveInteger"/>
       </attribute>
      </optional>
    <optional>
     <attribute name="log_level"/>
    </optional> 
    <optional>
     <attribute name="log_facility"/>
    </optional> 
   </element>
  </define>
  <define name="cman_clusternodes">
    <element name="clusternodes">
    <zeroOrMore>
     <element name="clusternode">
      <attribute name="name">
       <data type="ID"/>
      </attribute>
      <optional>
       <attribute name="votes">
        <data type="positiveInteger"/>
       </attribute>
      </optional>
      <optional>
       <attribute name="nodeid">
        <data type="positiveInteger"/>
       </attribute>
      </optional>
      <interleave>
       <optional>
        <element name="multicast">
         <attribute name="addr"/>
         <optional>
          <attribute name="interface"/>
         </optional>
        </element>
       </optional> 
       <optional>
        <ref name="FENCE"/>
       </optional>
      </interleave>
     </element>
    </zeroOrMore>
   </element>
  </define>
  
  <define name="gulm_definition">
    <element name="gulm">
    <optional>
     <attribute name="heartbeat_rate">
      <data type="positiveInteger"/>
     </attribute>
    </optional>
    <optional>
     <attribute name="allowed_misses">
      <data type="positiveInteger"/>
     </attribute>
    </optional>
    <optional>
     <attribute name="coreport">
      <data type="positiveInteger"/>
     </attribute>
    </optional>  
    <optional>
     <attribute name="ltpxport">
      <data type="positiveInteger"/>
     </attribute>
    </optional>
    <optional>
     <attribute name="ltport">
      <data type="positiveInteger"/>
     </attribute>
    </optional>
    <optional>
     <attribute name="lt_partitions">
      <data type="positiveInteger"/>
     </attribute>
    </optional>
    <optional>
     <attribute name="master_scan_delay">
      <data type="positiveInteger"/>
     </attribute>
    </optional>
    <optional>
     <attribute name="new_connection_timeout">
      <data type="positiveInteger"/>
     </attribute>
    </optional>
    <oneOrMore>
     <element name="lockserver">
      <attribute name="name">
       <data type="IDREF"/>
      </attribute>
     </element>
    </oneOrMore> 
   </element>
  </define>
  <define name="gulm_clusternodes">
    <element name="clusternodes">
    <zeroOrMore>
     <element name="clusternode">
      <attribute name="name">
       <data type="ID"/>
      </attribute>
      <optional>
       <attribute name="votes">
        <data type="positiveInteger"/>
       </attribute>
      </optional>
      <optional>
        <ref name="FENCE"/>
      </optional>
     </element>
    </zeroOrMore>
   </element>
  </define>
  
  <define name="SAMBA">
   <element name="smb">
    <choice>
     <group>
      <attribute name="ref"/>
     </group>
     <group>
      <attribute name="name"/>
      <optional>
       <attribute name="workgroup"/>
      </optional>
      <optional>
       <attribute name="__independent_subtree"/>
      </optional>
     </group>
    </choice>
    <optional>
     <ref name="CHILDREN"/>
    </optional>
   </element>
  </define>

  <define name="SYBASE">
   <element name="ASEHAagent">
    <choice>
     <group>
      <attribute name="ref"/>
     </group>
     <group>
      <attribute name="name"/>
      <optional>
       <attribute name="login_file"/>
      </optional>
      <optional>
       <attribute name="interfaces_file"/>
      </optional>
      <optional>
       <attribute name="server_name"/>
      </optional>
      <optional>
       <attribute name="sybase_home"/>
      </optional>
      <optional>
       <attribute name="sybase_ase"/>
      </optional>
      <optional>
       <attribute name="sybase_ocs"/>
      </optional>
      <optional>
       <attribute name="sybase_user"/>
      </optional>
      <optional>
       <attribute name="deep_probe_timeout"/>
      </optional>
      <optional>
       <attribute name="__independent_subtree"/>
      </optional>
     </group>
    </choice>
    <optional>
     <ref name="CHILDREN"/>
    </optional>
   </element>
  </define>

  <define name="APACHE">
   <element name="apache">
    <choice>
     <group>
      <attribute name="ref"/>
     </group>
     <group>
      <attribute name="name"/>
      <optional>
       <attribute name="config_file"/>
      </optional>
      <optional>
       <attribute name="server_root"/>
      </optional>
      <optional>
       <attribute name="httpd_options"/>
      </optional>
      <optional>
       <attribute name="shutdown_wait"/>
      </optional>
      <optional>
       <attribute name="__independent_subtree"/>
      </optional>
     </group>
    </choice>
    <optional>
     <ref name="CHILDREN"/>
    </optional>
   </element>
  </define>

  <define name="POSTGRES">
   <element name="postgres-8">
    <choice>
     <group>
      <attribute name="ref"/>
     </group>
     <group>
      <attribute name="name"/>
      <optional>
       <attribute name="config_file"/>
      </optional>
      <optional>
       <attribute name="postmaster_user"/>
      </optional>
      <optional>
       <attribute name="postmaster_options"/>
      </optional>
      <optional>
       <attribute name="shutdown_wait"/>
      </optional>
      <optional>
       <attribute name="__independent_subtree"/>
      </optional>
     </group>
    </choice>
    <optional>
     <ref name="CHILDREN"/>
    </optional>
   </element>
  </define>

  <define name="TOMCAT">
   <element name="tomcat-5">
    <choice>
     <group>
      <attribute name="ref"/>
     </group>
     <group>
      <attribute name="name"/>
      <optional>
       <attribute name="config_file"/>
      </optional>
      <optional>
       <attribute name="tomcat_user"/>
      </optional>
      <optional>
       <attribute name="catalina_options"/>
      </optional>
      <optional>
       <attribute name="catalina_base"/>
      </optional>
      <optional>
       <attribute name="shutdown_wait"/>
      </optional>
      <optional>
       <attribute name="__independent_subtree"/>
      </optional>
     </group>
    </choice>
    <optional>
     <ref name="CHILDREN"/>
    </optional>
   </element>
  </define>

  <define name="MYSQL">
   <element name="mysql">
    <choice>
     <group>
      <attribute name="ref"/>
     </group>
     <group>
      <attribute name="name"/>
      <optional>
       <attribute name="config_file"/>
      </optional>
      <optional>
       <attribute name="listen_address"/>
      </optional>
      <optional>
       <attribute name="mysql_options"/>
      </optional>
      <optional>
       <attribute name="shutdown_wait"/>
      </optional>
      <optional>
       <attribute name="__independent_subtree"/>
      </optional>
     </group>
    </choice>
    <optional>
     <ref name="CHILDREN"/>
    </optional>
   </element>
  </define>

  <define name="LVM">
   <element name="lvm">
    <choice>
     <group>
      <attribute name="ref"/>
     </group>
     <group>
      <attribute name="name"/>
      <optional>
       <attribute name="lv_name"/>
      </optional>
      <optional>
       <attribute name="vg_name"/>
      </optional>
      <optional>
       <attribute name="__independent_subtree"/>
      </optional>
     </group>
    </choice>
    <optional>
     <ref name="CHILDREN"/>
    </optional>
   </element>
  </define>

  <define name="SAPDB">
   <element name="SAPDatabase">
    <choice>
     <group>
      <attribute name="ref"/>
     </group>
     <group>
      <attribute name="SID"/>
      <optional>
       <attribute name="DIR_EXECUTABLE"/>
      </optional>
      <optional>
       <attribute name="NETSERVICENAME"/>
      </optional>
      <optional>
       <attribute name="DIR_BOOTSTRAP"/>
      </optional>
      <optional>
       <attribute name="DIR_SECSTORE"/>
      </optional>
      <optional>
       <attribute name="DBJ2EE_ONLY"/>
      </optional>
      <optional>
       <attribute name="DBTYPE"/>
      </optional>
      <optional>
       <attribute name="__independent_subtree"/>
      </optional>
     </group>
    </choice>
    <optional>
     <ref name="CHILDREN"/>
    </optional>
   </element>
  </define>

  <define name="SAP">
   <element name="SAPInstance">
    <choice>
     <group>
      <attribute name="ref"/>
     </group>
     <group>
      <attribute name="InstanceName"/>
      <optional>
       <attribute name="DIR_EXECUTABLE"/>
      </optional>
      <optional>
       <attribute name="DIR_PROFILE"/>
      </optional>
      <optional>
       <attribute name="START_PROFILE"/>
      </optional>
      <optional>
       <attribute name="__independent_subtree"/>
      </optional>
     </group>
    </choice>
    <optional>
     <ref name="CHILDREN"/>
    </optional>
   </element>
  </define>

  <define name="OPENLDAP">
   <element name="openldap">
    <choice>
     <group>
      <attribute name="ref"/>
     </group>
     <group>
      <attribute name="name"/>
      <optional>
       <attribute name="config_file"/>
      </optional>
      <optional>
       <attribute name="url_list"/>
      </optional>
      <optional>
       <attribute name="slapd_options"/>
      </optional>
      <optional>
       <attribute name="shutdown_wait"/>
      </optional>
      <optional>
       <attribute name="__independent_subtree"/>
      </optional>
     </group>
    </choice>
    <optional>
     <ref name="CHILDREN"/>
    </optional>
   </element>
  </define>
  
  <define name="IP">
   <element name="ip">
    <choice>
     <group>
      <attribute name="ref"/>
     </group>
     <group>
      <attribute name="address"/>
      <optional>
       <attribute name="monitor_link"/>
      </optional>
      <optional>
       <attribute name="family"/>
      </optional>
      <optional>
       <attribute name="__independent_subtree"/>
      </optional>
     </group>
    </choice>
    <optional>
     <ref name="CHILDREN"/>
    </optional>
   </element>
  </define>

  <define name="FS">
   <element name="fs">
    <choice>
     <group>
      <attribute name="ref"/>
     </group>
     <group>
      <attribute name="name"/>
      <attribute name="mountpoint"/>
      <attribute name="device"/>
      <optional>
       <attribute name="fsid"/>
      </optional>
      <optional>
       <attribute name="fstype"/>
      </optional>
      <optional>
       <attribute name="force_unmount"/>
      </optional>
      <optional>
       <attribute name="self_fence"/>
      </optional>
      <optional>
       <attribute name="force_fsck"/>
      </optional>
      <optional>
       <attribute name="options"/>
      </optional>
      <optional>
       <attribute name="__independent_subtree"/>
      </optional>
     </group>
    </choice>
    <zeroOrMore>
     <choice>
      <ref name="NFSEXPORT"/>
      <ref name="CHILDREN"/>
     </choice>
    </zeroOrMore>
   </element>
  </define> 

  <define name="CLUSTERFS">
   <element name="clusterfs">
    <choice>
     <group>
      <attribute name="ref"/>
     </group>
     <group>
      <attribute name="name"/>
      <attribute name="mountpoint"/>
      <attribute name="device"/>
      <optional>
       <attribute name="fsid"/>
       <attribute name="fstype"/>
      </optional>
      <optional>
       <attribute name="force_unmount"/>
      </optional>
      <optional>
       <attribute name="options"/>
      </optional>
      <optional>
       <attribute name="__independent_subtree"/>
      </optional>
     </group>
    </choice>
    <zeroOrMore>
     <choice>
      <ref name="NFSEXPORT"/>
      <ref name="CHILDREN"/>
     </choice>
    </zeroOrMore>
   </element>
  </define> 

  <define name="NETFS">
   <element name="netfs">
    <choice>
     <group>
      <attribute name="ref"/>
     </group>
     <group>
      <attribute name="name"/>
      <attribute name="mountpoint"/>
      <attribute name="host"/>
      <attribute name="export"/>
      <optional>
       <attribute name="fstype"/>
      </optional>
      <optional>
       <attribute name="force_unmount"/>
      </optional>
      <optional>
       <attribute name="options"/>
      </optional>
      <optional>
       <attribute name="__independent_subtree"/>
      </optional>
     </group>
    </choice>
    <optional>
     <ref name="CHILDREN"/>
    </optional>
   </element>
  </define> 

  <define name="NFSEXPORT">
   <element name="nfsexport">
    <choice>
      <attribute name="ref"/>
      <attribute name="name"/>
      <optional>
       <attribute name="__independent_subtree"/>
      </optional>
    </choice>
    <zeroOrMore>
     <ref name="ALLCHILDREN"/>
    </zeroOrMore>
   </element>
  </define>

  <define name="NFSCLIENT">
   <element name="nfsclient"> 
    <choice>
     <group>
      <attribute name="ref"/>
     </group>
     <group>
      <attribute name="name"/>
      <attribute name="target"/>
      <optional>
       <attribute name="options"/>
      </optional>
      <optional>
       <attribute name="path"/>
      </optional>
      <optional>
       <attribute name="fsid"/>
      </optional>
      <optional>
       <attribute name="__independent_subtree"/>
      </optional>
     </group>
    </choice>
   </element>
  </define>

  <define name="SCRIPT">
   <element name="script">
    <choice>
     <group>
      <attribute name="ref"/>
     </group>
     <group>
      <attribute name="name"/>
      <attribute name="file"/>
      <optional>
       <attribute name="__independent_subtree"/>
      </optional>
     </group>
    </choice>
    <optional>
     <ref name="CHILDREN"/>
    </optional>
   </element>
  </define>

  <define name="CHILD">
  <!-- for recursion to work properly, CHILD may be referenced at CHILDREN only -->
    <zeroOrMore>
     <choice>
      <ref name="SCRIPT"/>
      <ref name="IP"/>
      <ref name="NETFS"/>
      <ref name="CLUSTERFS"/>
      <ref name="FS"/>
      <ref name="SAMBA"/>
      <ref name="OPENLDAP"/>
      <ref name="APACHE"/>
      <ref name="SYBASE"/>
      <ref name="LVM"/>
      <ref name="POSTGRES"/>
      <ref name="TOMCAT"/>
      <ref name="MYSQL"/>
      <ref name="SAP"/>
      <ref name="SAPDB"/>
     </choice>
    </zeroOrMore>
  </define>

  <define name="CHILDREN">
   <zeroOrMore>
<!--    <ref name="CHILD"/> for now everything can be a child -->
    <ref name="ALLCHILDREN"/>
   </zeroOrMore>
  </define>

  <define name="ALLCHILDREN">
   <zeroOrMore>
    <choice>
     <ref name="CHILD"/>
     <ref name="NFSEXPORT"/>
     <ref name="NFSCLIENT"/>
    </choice>
   </zeroOrMore>
  </define>


 <define name="FENCE">
  <element name="fence">
   <zeroOrMore>
    <element name="method">
     <attribute name="name"/>
     <zeroOrMore>
      <element name="device">
       <attribute name="name">
        <data type="IDREF"/>
       </attribute>
       <choice>
        <!-- DRAC -->
        <group>
         <optional>
          <attribute name="action"/>
         </optional>
         <optional>
          <attribute name="modulename"/>
         </optional>
        </group>
        <!-- Node Assassin -->
        <group>
         <attribute name="port"/>
         <attribute name="action"/>
        </group>
        <!-- WTI, Brocade, Vixel, McData, SANBox2 -->
        <group>
         <attribute name="port"/>
         <optional>
          <attribute name="option"/>
         </optional>
        </group>
        <!-- APC -->
        <group>
         <attribute name="port"/>
         <optional>
          <attribute name="switch"/>
         </optional>
         <optional>
          <attribute name="option"/>
         </optional>
        </group>
        <!-- BladeCenter -->
        <group>
         <attribute name="blade"/>
         <optional>
          <attribute name="option"/>
         </optional>
        </group>
        <!-- xCAT, manual -->
        <group>
         <attribute name="nodename"/>
         <optional>
          <attribute name="option"/>
         </optional>
        </group>
	<!-- GNBD -->
        <group>
         <attribute name="nodename"/>
	 <optional>
	  <attribute name="ipaddr"/>
	 </optional>
         <optional>
          <attribute name="option"/>
         </optional>
        </group>
        <!-- bullpap -->
        <group>
         <attribute name="domain"/>
         <optional>
          <attribute name="option"/>
         </optional>
        </group>
        <!-- Egenera -->
        <group>
         <attribute name="lpan"/>
         <attribute name="pserver"/>
         <optional>
          <attribute name="option"/>
         </optional>
        </group>
        <!-- ILO, ipmilan -->
        <group>
         <optional>
          <empty/>
         </optional>
         <optional>
          <attribute name="lanplus"/>
         </optional>
         <optional>
          <attribute name="option"/>
         </optional>
        </group>
        <!-- scsi reservations -->
        <group>
         <optional>
          <attribute name="node"/>
         </optional>
        </group>
        <!-- xvm -->
        <group>
         <optional>
          <attribute name="domain"/>
         </optional>
        </group>
       </choice>
      </element>
     </zeroOrMore>
    </element>
   </zeroOrMore>
  </element>
 </define>

</grammar>

 

Any questions, feedback, advice, complaints or meanderings are welcome.
Alteeve's Niche! Enterprise Support:
Alteeve Support
Community Support
© Alteeve's Niche! Inc. 1997-2024   Anvil! "Intelligent Availability®" Platform
legal stuff: All info is provided "As-Is". Do not use anything here unless you are willing and able to take responsibility for your own actions.