Cluster.ng

From Alteeve Wiki
Revision as of 01:52, 15 March 2010 by Digimer (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

 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.