public inbox for cluster-cvs@sourceware.org
help / color / mirror / Atom feed
* cluster: STABLE3 - config: preliminary support for config validation
@ 2009-09-03 12:34 Fabio M. Di Nitto
0 siblings, 0 replies; only message in thread
From: Fabio M. Di Nitto @ 2009-09-03 12:34 UTC (permalink / raw)
To: cluster-cvs-relay
Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=8a7f5a96f6838df9b862f741559dc58d0675adc2
Commit: 8a7f5a96f6838df9b862f741559dc58d0675adc2
Parent: 77d871cbdd4722f91a50b374dccf6e39a3b3c9e7
Author: Fabio M. Di Nitto <fdinitto@redhat.com>
AuthorDate: Thu Sep 3 14:29:35 2009 +0200
Committer: Fabio M. Di Nitto <fdinitto@redhat.com>
CommitterDate: Thu Sep 3 14:29:35 2009 +0200
config: preliminary support for config validation
add ccs_config_dump tool. It prints the current config as stored in the
objdb in XML format.
add ccs_config_validate tool to perform XML <-> RelaxNG schema check.
rename cluster.rng into cluster.rng.in for future. It simplifies the Makefile
and makes it ready for automatic generation at build time.
add new install/uninstall target for files in ${sharedir}
Signed-off-by: Fabio M. Di Nitto <fdinitto@redhat.com>
---
config/tools/xml/Makefile | 39 +-
config/tools/xml/ccs_config_dump.c | 78 +
config/tools/xml/ccs_config_validate.in | 23 +
config/tools/xml/cluster.rng | 2806 -------------------------------
config/tools/xml/cluster.rng.in | 2806 +++++++++++++++++++++++++++++++
make/install.mk | 4 +
make/uninstall.mk | 3 +
7 files changed, 2945 insertions(+), 2814 deletions(-)
diff --git a/config/tools/xml/Makefile b/config/tools/xml/Makefile
index b301eae..31a2aab 100644
--- a/config/tools/xml/Makefile
+++ b/config/tools/xml/Makefile
@@ -1,14 +1,37 @@
include ../../../make/defines.mk
-TARGET = cluster.rng
+TARGET1 = ccs_config_dump
+TARGET2 = ccs_config_validate
+TARGET3 = cluster.rng
-all:
+SBINDIRT = $(TARGET1) $(TARGET2)
+SHAREDIRT = $(TARGET3)
-clean:
+all: $(TARGET1) $(TARGET2) $(TARGET3)
-install:
- install -d ${sharedir}
- install -m644 ${TARGET} ${sharedir}
+include $(OBJDIR)/make/cobj.mk
+include $(OBJDIR)/make/clean.mk
+include $(OBJDIR)/make/install.mk
+include $(OBJDIR)/make/uninstall.mk
-uninstall:
- ${UNINSTALL} ${TARGET} ${sharedir}
+OBJS = ccs_config_dump.o
+
+CFLAGS += -I${corosyncincdir}
+CFLAGS += -I${incdir}
+
+LDFLAGS += -L${corosynclibdir} -lconfdb
+LDFLAGS += -L${libdir}
+
+${TARGET1}: ${OBJS}
+ $(CC) -o $@ $^ $(LDFLAGS)
+
+${TARGET2}: $(S)/${TARGET2}.in
+ cat $(S)/$(TARGET2).in | sed \
+ -e 's#@SBINDIR@#${sbindir}#g' \
+ -e 's#@SHAREDIR@#${sharedir}#g' \
+ > $(TARGET2)
+
+${TARGET3}: $(S)/${TARGET3}.in
+ cp $(S)/${TARGET3}.in ${TARGET3}
+
+clean: generalclean
diff --git a/config/tools/xml/ccs_config_dump.c b/config/tools/xml/ccs_config_dump.c
new file mode 100644
index 0000000..7723c40
--- /dev/null
+++ b/config/tools/xml/ccs_config_dump.c
@@ -0,0 +1,78 @@
+#include <stdio.h>
+#include <limits.h>
+#include <corosync/corotypes.h>
+#include <corosync/confdb.h>
+
+static confdb_callbacks_t callbacks = {};
+
+static int dump_objdb_buff(confdb_handle_t dump_handle, hdb_handle_t cluster_handle,
+ hdb_handle_t parent_object_handle)
+{
+ hdb_handle_t object_handle;
+ char object_name[PATH_MAX], key_name[PATH_MAX], key_value[PATH_MAX];
+ size_t key_value_len = 0, key_name_len = 0, object_name_len = 0;
+
+ if (confdb_key_iter_start(dump_handle, parent_object_handle) != CS_OK)
+ return -1;
+
+ while (confdb_key_iter(dump_handle, parent_object_handle, key_name,
+ &key_name_len, key_value,
+ &key_value_len) == CS_OK) {
+ key_name[key_name_len] = '\0';
+ key_value[key_value_len] = '\0';
+ printf(" %s=\"%s\"", key_name, key_value);
+ }
+
+ if (parent_object_handle > 0)
+ printf(">\n");
+
+ if (confdb_object_iter_start(dump_handle, parent_object_handle) != CS_OK)
+ return -1;
+
+ while (confdb_object_iter(dump_handle, parent_object_handle,
+ &object_handle, object_name,
+ &object_name_len) == CS_OK) {
+ hdb_handle_t parent;
+
+ if (confdb_object_parent_get(dump_handle, object_handle, &parent) != CS_OK)
+ return -1;
+
+ object_name[object_name_len] = '\0';
+ printf("<%s", object_name);
+
+ if(dump_objdb_buff(dump_handle, cluster_handle, object_handle))
+ return -1;
+
+ if (object_handle != parent_object_handle)
+ printf("</%s>\n", object_name);
+ else
+ printf(">\n");
+ }
+ return 0;
+}
+
+int main(void) {
+ confdb_handle_t handle = 0;
+ hdb_handle_t cluster_handle;
+
+ if (confdb_initialize(&handle, &callbacks) != CS_OK)
+ return -1;
+
+ if (confdb_object_find_start(handle, OBJECT_PARENT_HANDLE) != CS_OK)
+ return -1;
+
+ if (confdb_object_find(handle, OBJECT_PARENT_HANDLE, "cluster", strlen("cluster"), &cluster_handle) != CS_OK)
+ return -1;
+
+ printf("<?xml version=\"1.0\"?>\n<cluster");
+
+ if (dump_objdb_buff(handle, cluster_handle, cluster_handle))
+ return -1;
+
+ printf("</cluster>\n");
+
+ if (confdb_finalize(handle) != CS_OK)
+ return -1;
+
+ return 0;
+}
diff --git a/config/tools/xml/ccs_config_validate.in b/config/tools/xml/ccs_config_validate.in
new file mode 100644
index 0000000..6891cd4
--- /dev/null
+++ b/config/tools/xml/ccs_config_validate.in
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+set -e
+
+# rpm based distros
+if [ -d /etc/sysconfig ]; then
+ [ -f /etc/sysconfig/cluster ] && . /etc/sysconfig/cluster
+ [ -f /etc/sysconfig/cman ] && . /etc/sysconfig/cman
+fi
+
+# deb based distros
+if [ -d /etc/default ]; then
+ [ -f /etc/default/cluster ] && . /etc/default/cluster
+ [ -f /etc/default/cman ] && . /etc/default/cman
+fi
+
+[ -z "$CONFIG_LOADER" ] && CONFIG_LOADER=xmlconfig
+export COROSYNC_DEFAULT_CONFIG_IFACE=$CONFIG_LOADER:cmanpreconfig
+
+ccs_config_dump | xmllint \
+ --relaxng @SHAREDIR@/cluster.rng \
+ - >/dev/null
+exit $?
diff --git a/config/tools/xml/cluster.rng b/config/tools/xml/cluster.rng
deleted file mode 100644
index 318afd6..0000000
--- a/config/tools/xml/cluster.rng
+++ /dev/null
@@ -1,2806 +0,0 @@
-<grammar datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
-xmlns="http://relaxng.org/ns/structure/1.0"
-xmlns:rha="http://redhat.com/~pkennedy/annotation_namespace/cluster_conf_annot_namespace">
-
-<!-- The cluster.conf schema follows this outline:
-
-cluster
-- cman
-- totem
-- quorumd
-- fence_daemon
-- fence_xvmd
-- dlm
-- gfs_controld
-- group
-- logging
-- clusternodes
-- fencedevices
-- rm
-
-Element defnitions:
-- Resource
-- Fence
-
-To validate your cluster.conf against this schema, run:
-
- xmllint \-\-relaxng cluster.rng /path/to/cluster.conf
-
--->
-
-<start>
-<element name="cluster" rha:description="The cluster element is the
- top-level element and contains attributes that define the cluster
- name and the configuration version number.">
- <attribute name="name" rha:description="Specifies a unique cluster name;
- it can be up to 16 characters long." rha:sample="my_cluster"/>
- <attribute name="config_version" rha:description="Identifies the
- revision level of the cluster.conf file. To propagate a revised
- configuration file, this value must be advanced to a value higher
- than the current value." rha:sample="1" rha:default="1"/>
- <optional>
- <attribute name="alias" rha:description="Pretty name for cluster that
- is not parsed by cluster tag software; only the Conga and
- system-config-cluster GUIs use this value."
- rha:sample="My Cluster"/>
- </optional>
- <interleave>
-
-<!-- cman block -->
- <optional>
- <element name="cman" rha:description="The cman element contains
- attributes that define the following cluster-wide parameters and
- behaviors: whether the cluster is a two-node cluster, expected
- votes, user-specified multicast address, and logging.">
- <optional>
- <attribute name="two_node" rha:description="The two_node attribute
- allows you to configure a cluster with only two
- nodes. Ordinarily, the loss of quorum after one of two nodes
- fails prevents the remaining node from continuing (if both
- nodes have one vote.) To enable a two-node cluster, set the
- two_node value equal to 1. If the two_node value is enabled,
- the expected_votes value must be set to 1." rha:sample="1"/>
- </optional>
- <optional>
- <attribute name="expected_votes" rha:description="The expected
- votes value is used by cman to determine quorum. The cluster
- is quorate if the sum of votes of members is over
- half of the expected votes value. By default, cman sets the
- expected votes value to be the sum of votes of all nodes listed
- in cluster.conf. This can be overriden by setting an explicit
- expected_votes value." rha:sample="4">
- <data type="positiveInteger"/>
- </attribute>
- </optional>
- <optional>
- <attribute name="quorum_dev_poll" rha:description="The amount of time
- after a qdisk poll, in milliseconds, before a quorum disk is
- considered dead. The quorum disk daemon, qdisk, periodically
- sends hello messages to cman and ais, indicating that qdisk
- is present. If qdisk takes more time to send a hello message
- to cman and ais than by quorum_dev_poll, then cman declares
- qdisk dead and prints a message indicating that connection to
- the quorum device has been lost." rha:sample="50000"/>
- </optional>
- <!--FIXME: Clarify the following. What is meant by "service"? Also, is
- there a default value? What is a good sample value?-->
- <optional>
- <attribute name="shutdown_timeout" rha:description="Timeout period,
- in milliseconds, to allow a service to respond during a
- shutdown." rha:sample="5000"/>
- </optional>
- <optional>
- <attribute name="ccsd_poll" rha:description="" rha:sample=""
- rha:default="1000"/>
- </optional>
- <optional>
- <attribute name="debug_mask" rha:description="" rha:sample=""/>
- </optional>
- <optional>
- <attribute name="port">
- <data type="nonNegativeInteger"/>
- </attribute>
- </optional>
- <optional>
- <attribute name="cluster_id">
- <data type="nonNegativeInteger"/>
- </attribute>
- </optional>
- <optional>
- <attribute name="broadcast">
- <data type="nonNegativeInteger"/>
- </attribute>
- </optional>
- <optional>
- <attribute name="keyfile" rha:description=""/>
- </optional>
- <optional>
- <attribute name="disable_openais"/>
- </optional>
- <optional>
- <element name="multicast" rha:description="The multicast element
- provides the ability for a user to specify a multicast address
- instead of using the multicast address generated by cman. If
- a user does not specify a multicast address, cman creates one. It
- forms the upper 16 bits of the multicast address with 239.192 and
- forms the lower 16 bits based on the cluster ID."> <attribute
- name="addr" rha:description="A multicast address specified
- by a user. If you do specify a multicast address, you should
- use the 239.192.x.x series that cman uses. Otherwise, using a
- multicast address outside that range may cause unpredictable
- results. For example, using 224.0.0.x (All hosts on the network)
- may not be routed correctly, or even routed at all by some
- hardware." rha:sample="239.192.0.1"/>
- </element>
- </optional>
- </element>
- </optional>
-<!-- end cman block -->
-
-<!-- totem block -->
- <optional>
- <element name="totem" rha:description="OpenAIS msg transport
- protocol">
- <optional>
- <attribute name="consensus" rha:description="This is a timeout value
- that specifies how many milliseconds to wait for consensus
- to be achieved before starting a new round of membership
- configuration." rha:default="200" rha:sample="235"/>
- </optional>
- <optional>
- <attribute name="join" rha:description="This is a timeout value that
- specifies how many milliseconds to wait for join messages in
- the membership protocol." rha:default="100" rha:sample="95"/>
- </optional>
- <optional>
- <attribute name="token" rha:description="This is a timeout value
- that specifies how many milliseconds elapse before a
- token loss is declared after not receiving a token. This
- is the time spent detecting a failure of a processor in
- the current configuration. Reforming a new configuration
- takes about 50 milliseconds in addition to this
- timeout." rha:default="5000" rha:sample="5300"/>
- </optional>
- <optional>
- <attribute name="token_retransmits_before_loss_const"
- rha:description="This value identifies how many token retransmits
- should be attempted before forming a new configuration. If
- this value is set, retransmit and hold will be automatically
- calculated from retransmits_before_loss and token." rha:default="4"
- rha:sample="5"/>
- </optional>
- <!-- FIXME: The following description was adapted from the man page.
- It may be tool long for the schema docuement. Consider cutting text
- after the second sentence and referring the reader to the openais.conf
- man page. -->
- <optional>
- <attribute name="rrp_mode" rha:description="This attribute
- specifies the redundant ring protocol mode. Its value can be
- set to active, passive, or none. Active replication offers
- slightly lower latency from transmit to delivery in faulty
- network environments but with less performance. Passive
- replication may nearly double the speed of the totem protocol
- if the protocol doesn't become cpu bound. The final option is
- none, in which case only one network interface is used to
- operate the totem protocol. If only one interface directive is
- specified, none is automatically chosen. If multiple interface
- directives are specified, only active or passive may be
- chosen." rha:sample="active"/>
- </optional>
- <optional>
- <attribute name="secauth" rha:description="This attribute specifies
- that HMAC/SHA1 authentication should be used to authenticate all
- messages. It further specifies that all data should be encrypted
- with the sober128 encryption algorithm to protect data from
- eavesdropping. For more information setting this value, refer
- the the openais.conf man page." rha:default="on" rha:sample=""/>
- </optional>
- <optional>
- <attribute name="keyfile" rha:description="" rha:sample=""/>
- </optional>
- <!-- multicast address -->
- <zeroOrMore>
- <element name="interface" rha:description="" rha:sample="">
- <optional>
- <attribute name="ringnumber" rha:description="" rha:sample=""/>
- </optional>
- <optional>
- <attribute name="bindnetaddr" rha:description="" rha:sample=""/>
- </optional>
- <optional>
- <attribute name="mcastaddr" rha:description="" rha:sample=""/>
- </optional>
- <optional>
- <attribute name="mcastport" rha:description="" rha:sample=""/>
- </optional>
- <optional>
- <attribute name="broadcast" rha:description="" rha:sample=""/>
- </optional>
- </element>
- </zeroOrMore>
- </element>
- </optional>
-<!-- end totem block -->
-
-<!-- quorumd block -->
- <optional>
- <element name="quorumd" rha:description="This element and its
- attributes define parameters for the quorum disk daemon,
- quorumd.">
- <optional>
- <attribute name="interval" rha:description="The frequency of
- read/write cycles, in seconds." rha:sample=""/>
- </optional>
- <optional>
- <attribute name="tko" rha:description="The number of cycles a node
- must miss to be declared dead." rha:sample=""/>
- </optional>
- <optional>
- <attribute name="votes" rha:description="The number of votes the
- quorum daemon advertises to CMAN when it has a high enough
- score." rha:sample=""/>
- </optional>
- <optional>
- <attribute name="min_score" rha:description="The minimum score for a
- node to be considered alive. If omitted or set to 0, the default
- function, floor((n+1)/2), is used, where n is the sum of the
- heuristics scores. The Minimum Score value must never exceed the
- sum of the heuristic scores; otherwise, the quorum disk cannot
- be available." rha:sample=""/>
- </optional>
- <optional>
- <attribute name="device" rha:description="The storage device the
- quorum daemon uses. The device must be the same on all
- nodes." rha:sample=""/>
- </optional>
- <optional>
- <attribute name="label" rha:description="Specifies the quorum disk
- label created by the mkqdisk utility. If this field contains an
- entry, the label overrides the Device field. If this field is
- used, the quorum daemon reads /proc/partitions and checks for
- qdisk signatures on every block device found, comparing the
- label against the specified label. This is useful in configurations
- where the quorum device name differs among nodes." rha:sample=""/>
- </optional>
- <optional>
- <attribute name="status_file" rha:description="" rha:sample=""/>
- </optional>
- <optional>
- <attribute name="scheduler" rha:description="" rha:sample=""/>
- </optional>
- <optional>
- <attribute name="reboot" rha:description="" rha:sample=""/>
- </optional>
- <optional>
- <attribute name="priority" rha:description="" rha:sample=""/>
- </optional>
- <optional>
- <attribute name="stop_cman" rha:description="" rha:sample=""/>
- </optional>
- <optional>
- <attribute name="paranoid" rha:description="" rha:sample=""/>
- </optional>
- <optional>
- <attribute name="allow_kill" rha:description="" rha:sample=""/>
- </optional>
- <optional>
- <attribute name="max_error_cycles" rha:description="" rha:sample=""/>
- </optional>
- <zeroOrMore>
- <element name="heuristic" rha:description="">
- <attribute name="program" rha:description="The program used to
- determine if this heuristic is alive. This can be anything that
- can be executed by /bin/sh -c. A return value of 0 indicates
- success; anything else indicates failure." rha:sample=""/>
- <optional>
- <attribute name="score" rha:description="The weight of this
- heuristic. Be careful when determining scores for
- heuristics." rha:default="1" rha:sample=""/>
- </optional>
- <optional>
- <attribute name="interval" rha:description="The frequency (in
- seconds) at which the heuristic is polled." rha:default="2"
- rha:sample=""/>
- </optional>
- <optional>
- <attribute name="tko" rha:description="" rha:sample=""/>
- </optional>
- </element>
- </zeroOrMore>
- </element>
- </optional>
-<!-- end quorumd block -->
-
-<!-- fence_daemon block -->
- <optional>
- <element name="fence_daemon" rha:description="This element and its
- attributes define cluster-wide parameters for basic fence timing
- properties used when a node joins a cluster or is fenced from
- the cluster.">
- <optional>
- <attribute name="post_join_delay" rha:description="The number of
- seconds the fence daemon (fenced) waits before fencing a node
- after the node joins the fence domain. A typical setting for
- post_join_delay is between 20 and 30 seconds, but can vary
- according to cluster and network performance requirements."
- rha:default="3" rha:sample="20"/>
- </optional>
- <optional>
- <attribute name="post_fail_delay" rha:description="The the number of
- seconds the fence daemon (fenced) waits before fencing
- a node (a member of the fence domain) after the node has
- failed." rha:default="0" rha:sample="2"/>
- </optional>
- <optional>
- <attribute name="override_path" rha:description="The location of a
- FIFO used for communication between fenced and fence_ack_manual"
- rha:default="/var/run/cluster/fenced_override"
- rha:sample="/opt/cluster/fenced_override"/>
- </optional>
- <optional>
- <attribute name="override_time" rha:description="The location of a
- FIFO used for communication between fenced and fence_ack_manual"
- rha:default="/var/run/cluster/fenced_override"
- rha:sample="/opt/cluster/fenced_override"/>
- </optional>
- <optional>
- <attribute name="clean_start" rha:description="Clean-start is used
- to prevent any startup fencing the daemon might do." rha:default="0"
- rha:sample="1"/>
- </optional>
- <optional>
- <attribute name="skip_undefined" rha:description="Do not do startup
- fencing of nodes with no fence methods defined." rha:default="0"
- rha:sample="1"/>
- </optional>
- </element>
- </optional>
-<!-- end fence_daemon block -->
-
-<!-- fence_xvmd block -->
- <optional>
- <element name="fence_xvmd" rha:description="Fence_xvm daemon. The
- fence_xvmd fence device is an I/O fencing host that resides
- on dom0 and is used in conjunction with the fence_xvm fencing
- agent. Together, these two programs fence Xen virtual machines
- that are in a cluster. There is a requirement that the parent
- dom0s are also a part of their own CMAN/OpenAIS based cluster,
- and that the dom0 cluster does not share any members with the domU
- cluster. Furthermore, the dom0 cluster is required to have fencing
- if domU recovery is expected to be automatic.">
- <optional>
- <attribute name="debug" rha:description="" rha:sample="">
- <data type="integer"/>
- </attribute>
- </optional>
- <optional>
- <attribute name="port" rha:description="" rha:sample="">
- <data type="integer"/>
- </attribute>
- </optional>
- <optional>
- <attribute name="use_uuid" rha:description="" rha:sample="">
- <data type="boolean"/>
- </attribute>
- </optional>
- <optional>
- <attribute name="multicast_address" rha:description="" rha:sample="">
- <data type="string"/>
- </attribute>
- </optional>
- <optional>
- <attribute name="auth" rha:description="" rha:sample="">
- <data type="string"/>
- </attribute>
- </optional>
- <optional>
- <attribute name="hash" rha:description="" rha:sample="">
- <data type="string"/>
- </attribute>
- </optional>
- <optional>
- <attribute name="uri" rha:description="" rha:sample="">
- <data type="string"/>
- </attribute>
- </optional>
- <optional>
- <attribute name="key_file" rha:description="" rha:sample="">
- <data type="string"/>
- </attribute>
- </optional>
- <optional>
- <attribute name="multicast_interface" rha:description="" rha:sample="">
- <data type="string"/>
- </attribute>
- </optional>
- </element>
- </optional>
-<!-- end fence_xvmd block -->
-
-<!-- dlm block -->
- <optional>
- <element name="dlm" rha:description="">
- <optional>
- <attribute name="log_debug" rha:description="Enable dlm
- kernel debug messages." rha:default="0" rha:sample="1"/>
- </optional>
- <optional>
- <attribute name="timewarn" rha:description="The number of centiseconds
- a lock is blocked before a warning is sent to userland, for lockspaces
- created with TIMEWARN flag." rha:default="500" rha:sample="100"/>
- </optional>
- <optional>
- <attribute name="protocol" rha:description="The network protocol
- used by the dlm." rha:default="tcp" rha:sample="sctp"/>
- </optional>
- <optional>
- <attribute name="enable_fencing" rha:description="Enable fencing recovery
- dependency." rha:default="1" rha:sample="0"/>
- </optional>
- <optional>
- <attribute name="enable_quorum" rha:description="Enable quorum recovery
- dependency." rha:default="1" rha:sample="0"/>
- </optional>
- <optional>
- <attribute name="enable_deadlk" rha:description="Enable deadlock detection
- code." rha:default="0" rha:sample="1"/>
- </optional>
- <optional>
- <attribute name="enable_plock" rha:description="Enable posix lock code for
- cluster fs." rha:default="1" rha:sample="0"/>
- </optional>
- <optional>
- <attribute name="plock_debug" rha:description="Enable posix lock debugging."
- rha:default="0" rha:sample="1"/>
- </optional>
- <optional>
- <attribute name="plock_rate_limit" rha:description="The maximum
- number of plock operations that will be sent every second. This is
- used to prevent potentially excessive network load. For best
- performance it is recommended to disable this rate limiting by
- setting the value to 0." rha:sample="10000" rha:default="100"/>
- </optional>
- <optional>
- <attribute name="plock_ownership" rha:description="Enabling this
- option by setting to 1 optimizes plock performance for repeated
- locking of the same locks by processes on a single node.
- All dlm_controld daemons in the cluster must be stopped before
- changing this value." rha:sample="0" rha:default="1"/>
- </optional>
- <optional>
- <attribute name="drop_resources_time" rha:description="For tuning the
- plock_ownership resource caching. This is the frequence of
- attempts in milliseconds to drop unused resources from the
- cache." rha:sample="5000" rha:default="10000"/>
- </optional>
- <optional>
- <attribute name="drop_resources_count" rha:description="For tuning
- the plock_ownership resource caching. This is the maximum number
- of resources to drop from the cache each time." rha:sample="100"
- rha:default="10"/>
- </optional>
- <optional>
- <attribute name="drop_resources_age" rha:description="For tuning the
- plock_ownership resource caching. This is the time in milliseconds
- that a cached resource should be unused before consideration for
- dropping." rha:sample="5000" rha:default="10000"/>
- </optional>
- <optional>
- <zeroOrMore>
- <element name="lockspace" rha:description="Individual lockspace
- configuration.">
- <attribute name="name" rha:description="The name of the lockspace."
- rha:sample="foo"/>
- <optional>
- <attribute name="nodir" rha:description="The lockspace will not use a
- resource directory when this is set to 1." rha:default="0"
- rha:sample="1"/>
- </optional>
- <optional>
- <zeroOrMore>
- <element name="master" rha:description="Define a particular node to be
- responsible for a certain amount of lock mastering.">
- <attribute name="name" rha:description="The name of the node that
- should be mastering resources/locks. This needs to match one of
- the nodes defined in clusternodes." rha:sample="node01"/>
- <attribute name="weight" rha:description="The proportion of
- resources/locks this node should master." rha:default="1"
- rha:sample="2"/>
- </element>
- </zeroOrMore>
- </optional>
- </element>
- </zeroOrMore>
- </optional>
- </element>
- </optional>
-<!-- end dlm block -->
-
-<!-- gfs_controld block -->
- <optional>
- <element name="gfs_controld" rha:description="This element and its
- attributes configure the gfs_controld daemon.">
- <optional>
- <attribute name="enable_withdraw" rha:description="Enable the code that
- handles gfs withdraw." rha:default="1" rha:sample="0"/>
- </optional>
- <optional>
- <attribute name="enable_plock" rha:description="Enable posix lock code for
- cluster fs. gfs_controld only handles plocks when daemons run in compat
- mode, otherwise dlm_controld processes plocks." rha:default="1"
- rha:sample="0"/>
- </optional>
- <optional>
- <attribute name="plock_debug" rha:description="Enable posix lock
- debugging." rha:default="0" rha:sample="1"/>
- </optional>
- <optional>
- <attribute name="plock_rate_limit" rha:description="The maximum
- number of plock operations that will be sent every second. This is
- used to prevent potentially excessive network load. For best
- performance it is recommended to disable this rate limiting by
- setting the value to 0." rha:sample="10000" rha:default="100"/>
- </optional>
- <optional>
- <attribute name="plock_ownership" rha:description="Enabling this
- option by setting to 1 optimizes plock performance for repeated
- locking of the same locks by processes on a single node.
- All gfs_controld daemons in the cluster must be stopped before
- changing this value." rha:sample="1" rha:default="0"/>
- </optional>
- <optional>
- <attribute name="drop_resources_time" rha:description="For tuning the
- plock_ownership resource caching. This is the frequence of
- attempts in milliseconds to drop unused resources from the
- cache." rha:sample="5000" rha:default="10000"/>
- </optional>
- <optional>
- <attribute name="drop_resources_count" rha:description="For tuning
- the plock_ownership resource caching. This is the maximum number
- of resources to drop from the cache each time." rha:sample="100"
- rha:default="10"/>
- </optional>
- <optional>
- <attribute name="drop_resources_age" rha:description="For tuning the
- plock_ownership resource caching. This is the time in milliseconds
- that a cached resource should be unused before consideration for
- dropping." rha:sample="5000" rha:default="10000"/>
- </optional>
- </element>
- </optional>
-<!-- end gfs_controld block -->
-
-<!-- group block -->
- <optional>
- <element name="group" rha:description="">
- <optional>
- <attribute name="groupd_compat" rha:description="Enable compatibility with
- cluster2 (RHEL5) nodes" rha:default="0" rha:sample="1"/>
- </optional>
- </element>
- </optional>
-<!-- end group block -->
-
-<!-- logging block -->
- <optional>
- <element name="logging" rha:description="Global logging config applies
- to all daemons.">
- <optional>
- <attribute name="to_syslog" rha:description="enable/disable messages to
- syslog" rha:default="yes"/>
- </optional>
- <optional>
- <attribute name="to_logfile" rha:description="enable/disable messages to
- log file" rha:default="yes"/>
- </optional>
- <optional>
- <attribute name="syslog_facility" rha:description="facility used for
- syslog messages" rha:default="daemon"/>
- </optional>
- <optional>
- <attribute name="syslog_priority" rha:description="messages at this level
- and up will be sent to syslog" rha:default="info"/>
- </optional>
- <optional>
- <attribute name="logfile_priority" rha:description="messages at this level
- and up will be written to log file" rha:default="info"/>
- </optional>
- <optional>
- <attribute name="logfile" rha:description="the log file name"
- rha:default="/var/log/cluster/daemon_name.log"/>
- </optional>
- <optional>
- <attribute name="debug" rha:description="turn on debugging, a shortcut for
- setting logfile_priority to debug" rha:sample="on"/>
- </optional>
- <optional>
- <element name="logging_daemon" rha:description="Per-daemon logging
- config overrides global settings for named daemon.">
- <attribute name="name" rha:description="daemon name" rha:sample="fenced"/>
- <optional>
- <attribute name="subsys" rha:description="corosync subsystem name"
- rha:sample="CMAN"/>
- </optional>
- <optional>
- <attribute name="to_syslog" rha:description="same as global"/>
- </optional>
- <optional>
- <attribute name="to_logfile" rha:description="same as global"/>
- </optional>
- <optional>
- <attribute name="syslog_facility" rha:description="same as global"/>
- </optional>
- <optional>
- <attribute name="syslog_priority" rha:description="same as global"/>
- </optional>
- <optional>
- <attribute name="logfile_priority" rha:description="same as global"/>
- </optional>
- <optional>
- <attribute name="logfile" rha:description="same as global"/>
- </optional>
- <optional>
- <attribute name="debug" rha:description="same as global"/>
- </optional>
- </element>
- </optional>
- </element>
- </optional>
-<!-- end logging block -->
-
-<!-- clusternode block -->
- <element name="clusternodes" rha:description="This element defines the
- cluster nodes configuration; it contains one clusternode element
- per node.">
- <zeroOrMore>
- <element name="clusternode" rha:description="This element and its
- attributes define a cluster node, specifying node name, node ID,
- number of quorum votes, and fencing method for that node. There
- is one clusernode element per node in a cluster.">
- <attribute name="name" rha:description="The hostname or the IP
- address of the node." rha:sample="node-01">
- <data type="ID"/>
- </attribute>
- <optional>
- <attribute name="votes" rha:description="The number of votes a
- node can cast" rha:sample="2" rha:default="1">
- <data type="positiveInteger"/>
- </attribute>
- </optional>
- <optional>
- <attribute name="nodeid" rha:description="Each node requires
- a unique integer value as its node ID." rha:sample="1">
- <data type="positiveInteger"/>
- </attribute>
- </optional>
- <optional>
- <attribute name="weight" rha:description="" rha:sample=""/>
- </optional>
- <optional>
- <element name="altname" rha:description="">
- <optional>
- <attribute name="name" rha:description="" rha:sample=""/>
- </optional>
- <optional>
- <attribute name="port" rha:description="" rha:sample=""/>
- </optional>
- <optional>
- <attribute name="mcast" rha:description="" rha:sample=""/>
- </optional>
- </element>
- </optional>
- <interleave>
- <optional>
- <ref name="FENCE"/>
- </optional>
- <optional>
- <ref name="UNFENCE"/>
- </optional>
- </interleave>
- </element>
- </zeroOrMore>
- </element>
-<!-- end clusternode block -->
-
-<!-- fencedevices block -->
- <optional>
- <element name="fencedevices" rha:description="This element and its
- attributes define the fence devices in the cluster. Parameters
- vary according to the type of fence device. For example, for a
- power controller used as a fence device, the cluster configuration
- defines the name of the power controller, its IP address, login,
- and password.">
- <zeroOrMore>
- <element name="fencedevice" rha:description="The fencedevice element
- and its attributes define each fence device in a
- cluster. Parameters for each fence device vary according to the
- type of fence device.">
- <attribute name="name" rha:description="This is a reference
- name that you assign to a fence device. It is specific to a
- cluster configuration file. It is required
- when configuring a fence method for a node (refer
- to the method and device elements in the clusternode
- element)." rha:sample="apc_123">
- <data type="ID"/>
- </attribute>
- <attribute name="agent" rha:description="Specifies a fence agent to
- be used." rha:sample="fence_apc"/>
- <optional>
- <choice>
- <!-- begin specific fence devices -->
-
- <!-- begin non-generated device definitions -->
- <!-- RPS10 -->
- <group rha:description="RPS10 Serial Switch" >
- <attribute name="device" rha:description="The device the switch
- is connected to on the controlling host."
- rha:sample="/dev/ttys2"/>
- <attribute name="port" rha:description="The switch outlet
- number." rha:sample="2"/>
- </group>
- <!--FIXME: Determine if the following group should exclude
- the auth and lanplus attributes. Those attributes apply only to
- the impilan fence device.-->
- <!-- Brocade, McData, SANBox2, Bladecenter,bullpap, ipmilan -->
- <group>
- <attribute name="ipaddr" rha:description="IP address or the name
- of the device." rha:sample="rack007"/>
- <optional>
- <attribute name="login" rha:description="The login name used to
- access the device. " rha:sample="admin"/>
- </optional>
- <optional>
- <attribute name="passwd" rha:description="The password used to
- authenticate the connection to the
- device." rha:sample="pa$$word"/>
- </optional>
- <optional>
- <attribute name="passwd_script" rha:description="The script that
- supplies a password for access to the fence device. Using
- this supersedes the Password parameter." rha:sample=""/>
- </optional>
- <optional>
- <attribute name="auth" rha:description="For IPMI LAN
- only. Authentication Type: none, password,
- md2, or md5" rha:sample=""/>
- </optional>
- <optional>
- <attribute name="lanplus" rha:description="For IPMI LAN only.
- Set value to either True or 1; leave out for false."
- rha:sample="True"/>
- </optional>
- </group>
- <!-- Vixel -->
- <group>
- <optional>
- <attribute name="ipaddr" rha:description="IP address or the
- name of the device." rha:sample="10.1.0.1"/>
- </optional>
- <optional>
- <attribute name="passwd" rha:description="The password used to
- authenticate the connection to the
- device." rha:sample="pa$$word"/>
- </optional>
- <optional>
- <attribute name="passwd_script" rha:description="The script
- that supplies a password for access to the
- fence device. Using this supersedes the Password
- parameter." rha:sample=""/>
- </optional>
- </group>
- <!-- scsi reservations -->
- <group>
- <attribute name="nodename" rha:description="Name of the node to
- be fenced. Refer to fence_scsi(8) for more
- information." rha:sample=""/>
- <attribute name="self" rha:description="" rha:sample=""/>
- </group>
- <!-- GNBD -->
- <group>
- <attribute name="servers" rha:description="The hostname of each
- GNBD to disable. For multiple hostnames, separate each
- hostname with a space." rha:sample=""/>
- </group>
- <!-- Egenera -->
- <!-- FIXME: Note that in the schema web page each is listed as a
- parameter. Likewise for Conga. In addition, Conga shows Ipan
- and pserver parameters. Also, in Conga, the esh parameter is
- an optional ESH path. Presumably those should be attributes in
- the schema. We need more invormation on this. -->
- <group>
- <attribute name="cserver" rha:description="The hostname (and
- optionally the username in the form of username@hostname)
- assigned to the device. Refer to the fence_egenera(8) man
- page for more information." rha:sample=""/>
- </group>
- <!-- FIXME: It appears that xCat is no longer supported. Found no
- fence agents for x Cat in RHEL 5.3. -->
- <!-- xCAT -->
- <group>
- <attribute name="rpowerpath" rha:description="" rha:sample=""/>
- </group>
- <!-- end non-generated device definitions -->
-
- <!-- begin auto-generated device definitions -->
- <!-- fence_alom -->
- <group>
- <optional>
- <attribute name="action"/>
- </optional>
- <optional> <!-- lhh - compat -->
- <attribute name="option"/>
- </optional>
- <attribute name="ipaddr"/>
- <attribute name="login"/>
- <optional>
- <attribute name="passwd"/>
- </optional>
- <optional>
- <attribute name="passwd_script"/>
- </optional>
- <optional>
- <attribute name="secure"/>
- </optional>
- <optional>
- <attribute name="verbose"/>
- </optional>
- </group>
-
- <!-- fence_apc -->
- <group>
- <optional>
- <attribute name="action"/>
- </optional>
- <optional> <!-- lhh - compat -->
- <attribute name="option"/>
- </optional>
- <attribute name="ipaddr"/>
- <attribute name="login"/>
- <optional>
- <attribute name="passwd"/>
- </optional>
- <optional>
- <attribute name="passwd_script"/>
- </optional>
- <optional>
- <attribute name="secure"/>
- </optional>
- <optional>
- <attribute name="switch"/>
- </optional>
- <optional>
- <attribute name="verbose"/>
- </optional>
- </group>
-
- <!-- fence_bladecenter -->
- <group>
- <optional>
- <attribute name="action"/>
- </optional>
- <optional> <!-- lhh - compat -->
- <attribute name="option"/>
- </optional>
- <attribute name="ipaddr"/>
- <attribute name="login"/>
- <optional>
- <attribute name="passwd"/>
- </optional>
- <optional>
- <attribute name="passwd_script"/>
- </optional>
- <optional>
- <attribute name="secure"/>
- </optional>
- <optional>
- <attribute name="identity_file"/>
- </optional>
- <optional>
- <attribute name="verbose"/>
- </optional>
- </group>
-
- <!-- fence_drac5 -->
- <group>
- <optional>
- <attribute name="action"/>
- </optional>
- <optional> <!-- lhh - compat -->
- <attribute name="option"/>
- </optional>
- <attribute name="ipaddr"/>
- <attribute name="login"/>
- <optional>
- <attribute name="passwd"/>
- </optional>
- <optional>
- <attribute name="passwd_script"/>
- </optional>
- <optional>
- <attribute name="secure"/>
- </optional>
- <optional>
- <attribute name="verbose"/>
- </optional>
- </group>
-
- <!-- fence_eps -->
- <group>
- <optional>
- <attribute name="action"/>
- </optional>
- <optional> <!-- lhh - compat -->
- <attribute name="option"/>
- </optional>
- <attribute name="ipaddr"/>
- <optional>
- <attribute name="login"/>
- </optional>
- <optional>
- <attribute name="passwd"/>
- </optional>
- <optional>
- <attribute name="passwd_script"/>
- </optional>
- <optional>
- <attribute name="verbose"/>
- </optional>
- </group>
-
- <!-- fence_ilo -->
- <group>
- <optional>
- <attribute name="action"/>
- </optional>
- <optional> <!-- lhh - compat -->
- <attribute name="option"/>
- </optional>
- <attribute name="ipaddr"/>
- <attribute name="login"/>
- <optional>
- <attribute name="passwd"/>
- </optional>
- <optional>
- <attribute name="passwd_script"/>
- </optional>
- <optional>
- <attribute name="ssl"/>
- </optional>
- <optional>
- <attribute name="verbose"/>
- </optional>
- </group>
-
- <!-- fence_ldom -->
- <group>
- <optional>
- <attribute name="action"/>
- </optional>
- <optional> <!-- lhh - compat -->
- <attribute name="option"/>
- </optional>
- <attribute name="ipaddr"/>
- <attribute name="login"/>
- <optional>
- <attribute name="passwd"/>
- </optional>
- <optional>
- <attribute name="passwd_script"/>
- </optional>
- <optional>
- <attribute name="secure"/>
- </optional>
- <optional>
- <attribute name="identity_file"/>
- </optional>
- <optional>
- <attribute name="verbose"/>
- </optional>
- </group>
-
- <!-- fence_lpar -->
- <group>
- <optional>
- <attribute name="action"/>
- </optional>
- <optional> <!-- lhh - compat -->
- <attribute name="option"/>
- </optional>
- <attribute name="ipaddr"/>
- <attribute name="login"/>
- <optional>
- <attribute name="passwd"/>
- </optional>
- <optional>
- <attribute name="passwd_script"/>
- </optional>
- <optional>
- <attribute name="secure"/>
- </optional>
- <optional>
- <attribute name="partition"/>
- </optional>
- <optional>
- <attribute name="managed"/>
- </optional>
- <optional>
- <attribute name="verbose"/>
- </optional>
- </group>
-
- <!-- fence_virsh -->
- <group>
- <optional>
- <attribute name="action"/>
- </optional>
- <optional> <!-- lhh - compat -->
- <attribute name="option"/>
- </optional>
- <attribute name="ipaddr"/>
- <attribute name="login"/>
- <optional>
- <attribute name="passwd"/>
- </optional>
- <optional>
- <attribute name="passwd_script"/>
- </optional>
- <optional>
- <attribute name="secure"/>
- </optional>
- <optional>
- <attribute name="identity_file"/>
- </optional>
- <optional>
- <attribute name="verbose"/>
- </optional>
- </group>
-
- <!-- fence_vmware -->
- <group>
- <optional>
- <attribute name="action"/>
- </optional>
- <optional> <!-- lhh - compat -->
- <attribute name="option"/>
- </optional>
- <attribute name="ipaddr"/>
- <attribute name="login"/>
- <optional>
- <attribute name="passwd"/>
- </optional>
- <optional>
- <attribute name="passwd_script"/>
- </optional>
- <optional>
- <attribute name="exec"/>
- </optional>
- <optional>
- <attribute name="vmware_type"/>
- </optional>
- <optional>
- <attribute name="secure"/>
- </optional>
- <optional>
- <attribute name="vmware_datacenter"/>
- </optional>
- <optional>
- <attribute name="verbose"/>
- </optional>
- </group>
-
- <!-- fence_wti -->
- <group>
- <optional>
- <attribute name="action"/>
- </optional>
- <optional> <!-- lhh - compat -->
- <attribute name="option"/>
- </optional>
- <attribute name="ipaddr"/>
- <optional>
- <attribute name="login"/>
- </optional>
- <optional>
- <attribute name="passwd"/>
- </optional>
- <optional>
- <attribute name="passwd_script"/>
- </optional>
- <optional>
- <attribute name="secure"/>
- </optional>
- <optional>
- <attribute name="verbose"/>
- </optional>
- </group>
-
- <!-- fence_xvm -->
- <group>
- <optional>
- <attribute name="debug"/>
- </optional>
- <optional>
- <attribute name="ip_family"/>
- </optional>
- <optional>
- <attribute name="multicast_address"/>
- </optional>
- <optional>
- <attribute name="port"/>
- </optional>
- <optional>
- <attribute name="multicast_ttl"/>
- </optional>
- <optional>
- <attribute name="retrans"/>
- </optional>
- <optional>
- <attribute name="auth"/>
- </optional>
- <optional>
- <attribute name="hash"/>
- </optional>
- <optional>
- <attribute name="key_file"/>
- </optional>
- <optional>
- <attribute name="domain"/>
- </optional>
- <optional>
- <attribute name="use_uuid"/>
- </optional>
- <optional>
- <attribute name="option"/>
- </optional>
- <optional>
- <attribute name="timeout"/>
- </optional>
- </group>
- <!-- end auto-generated device definitions -->
-
- <group>
- <optional>
- <empty/>
- </optional>
- </group>
-
- <!-- end specific fence devices -->
- </choice>
- </optional>
- </element>
- </zeroOrMore>
- </element>
- </optional>
-<!-- end fencedevices block -->
-
-<!-- rm block -->
- <optional>
- <element name="rm" rha:description="This element and its attributes
- define resources (for example an IP address) required to create HA
- cluster services, the HA cluster services themselves, and failover
- domains for the HA cluster services.">
- <optional>
- <!-- FIXME: The following text needs clarifying. What is meant by
- "...for all levels less than the selected."? -->
- <attribute name="log_level" rha:description="An integer 0-7,
- inclusive, for all levels less than the selected.
- 0, system is unusable, emergency;
- 1, action must be taken immediately;
- 2, critical conditions;
- 3, error conditions;
- 4, warning conditions;
- 5, normal but significant condition;
- 6, informational;
- 7, debug-level messages." rha:sample="6">
- <data type="integer"/>
- </attribute>
- </optional>
- <optional>
- <attribute name="status_child_max" rha:description="" rha:sample="">
- <data type="integer"/>
- </attribute>
- </optional>
- <optional>
- <attribute name="status_poll_interval" rha:description=""
- rha:sample="">
- <data type="integer"/>
- </attribute>
- </optional>
- <optional>
- <attribute name="transition_throttling" rha:description=""
- rha:sample="">
- <data type="integer"/>
- </attribute>
- </optional>
- <optional>
- <attribute name="central_processing" rha:description=""
- rha:sample="">
- <data type="integer"/>
- </attribute>
- </optional>
- <optional>
- <attribute name="log_facility" rha:description="The facility is one
- of the following keywords: auth, authpriv, cron, daemon, kern,
- lpr, mail, news, syslog, user, uucp and local0 through local7"
- rha:sample="local4">
- <data type="string"/>
- </attribute>
- </optional>
- <interleave>
- <optional>
- <element name="failoverdomains" rha:description="">
- <zeroOrMore>
- <element name="failoverdomain" rha:description="Specifies
- properties of a specific failover domain">
- <attribute name="name" rha:description="The name of the failover
- domain." rha:sample="foo"/>
- <optional>
- <attribute name="ordered" rha:description="Set value to 1 if
- the failover domain is ordered; set value to 0 if
- unordered." rha:default="0" rha:sample="1"/>
- </optional>
- <optional>
- <attribute name="restricted" rha:description="Set value to 1 if
- the failover domain is restricted; set value to 0 if
- unrestricted." rha:default="0" rha:sample="1"/>
- </optional>
- <optional>
- <attribute name="nofailback" rha:description="" rha:sample=""/>
- </optional>
- <zeroOrMore>
- <element name="failoverdomainnode" rha:description="A node in
- a failover domain">
- <optional>
- <attribute name="priority" rha:description="A number
- specifying the priority; lower numbers having higher
- priority"
- rha:sample="1"/>
- </optional>
- <attribute name="name" rha:description="Name of the node."
- rha:sample="member2"/>
- </element>
- </zeroOrMore>
- </element>
- </zeroOrMore>
- </element>
- </optional> <!-- End of failoverdomains block -->
- <optional>
- <element name="events" rha:description="">
- <zeroOrMore>
- <element name="event" rha:description="">
- <attribute name="name" rha:description="" rha:sample=""/>
- <optional>
- <text/>
- </optional>
- <optional>
- <attribute name="file" rha:description="" rha:sample=""/>
- </optional>
- <optional>
- <attribute name="priority" rha:description="" rha:sample=""/>
- </optional>
- <optional>
- <attribute name="class" rha:description="" rha:sample=""/>
- </optional>
- <!-- Service event class attributes -->
- <optional>
- <attribute name="service" rha:description="" rha:sample=""/>
- </optional>
- <optional>
- <attribute name="service_state" rha:description="" rha:sample=""/>
- </optional>
- <optional>
- <attribute name="service_owner" rha:description="" rha:sample=""/>
- </optional>
- <!-- Node event -->
- <optional>
- <attribute name="node" rha:description="" rha:sample=""/>
- </optional>
- <optional>
- <attribute name="node_id" rha:description="" rha:sample=""/>
- </optional>
- <optional>
- <attribute name="node_state" rha:description="" rha:sample=""/>
- </optional>
- <optional>
- <attribute name="node_clean" rha:description="" rha:sample=""/>
- </optional>
- <optional>
- <attribute name="node_local" rha:description="" rha:sample=""/>
- </optional>
- <!-- Config event attributes -->
- <!-- NOT USED -->
- </element>
- </zeroOrMore>
- </element>
- </optional> <!-- End of events block -->
- <optional>
- <element name="resources" rha:description="">
- <zeroOrMore>
- <ref name="CHILDREN"/>
- </zeroOrMore>
- </element>
- </optional>
- <zeroOrMore>
- <ref name="SERVICE"/>
- </zeroOrMore>
- <zeroOrMore>
- <ref name="VM"/>
- </zeroOrMore>
- </interleave>
- </element>
- </optional>
-
- </interleave>
-</element> <!-- cluster end -->
-</start>
-
-
-<!--Beginning of resource definitions-->
-<!-- Autogenerated. Paste in to cluster.ng in the 'resources' section -->
-
- <define name="SERVICE">
- <element name="service">
- <!-- Defines a services. -->
- <choice>
- <group>
- <!-- rgmanager specific stuff -->
- <attribute name="ref"/>
- </group>
- <group>
- <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="nfslock"/>
- </optional>
- <optional>
- <attribute name="nfs_client_cache"/>
- </optional>
- <optional>
- <attribute name="recovery"/>
- </optional>
- <optional>
- <attribute name="depend"/>
- </optional>
- <optional>
- <attribute name="depend_mode"/>
- </optional>
- <optional>
- <attribute name="max_restarts"/>
- </optional>
- <optional>
- <attribute name="restart_expire_time"/>
- </optional>
- <optional>
- <attribute name="priority"/>
- </optional>
- </group>
- </choice>
- <optional>
- <attribute name="__independent_subtree"/>
- </optional>
- <optional>
- <attribute name="__enforce_timeouts"/>
- </optional>
- <optional>
- <ref name="CHILDREN"/>
- </optional>
- </element>
- </define>
-
-
- <define name="IP">
- <element name="ip">
- <!-- This is an IP address. -->
- <choice>
- <group>
- <!-- rgmanager specific stuff -->
- <attribute name="ref"/>
- </group>
- <group>
- <attribute name="address"/>
- <optional>
- <attribute name="family"/>
- </optional>
- <optional>
- <attribute name="monitor_link"/>
- </optional>
- <optional>
- <attribute name="nfslock"/>
- </optional>
- <optional>
- <attribute name="sleeptime"/>
- </optional>
- </group>
- </choice>
- <optional>
- <attribute name="__independent_subtree"/>
- </optional>
- <optional>
- <attribute name="__enforce_timeouts"/>
- </optional>
- <optional>
- <ref name="CHILDREN"/>
- </optional>
- </element>
- </define>
-
-
- <define name="NFSCLIENT">
- <element name="nfsclient">
- <!-- Defines an NFS client. -->
- <choice>
- <group>
- <!-- rgmanager specific stuff -->
- <attribute name="ref"/>
- </group>
- <group>
- <attribute name="name"/>
- <attribute name="target"/>
- <optional>
- <attribute name="path"/>
- </optional>
- <optional>
- <attribute name="svcname"/>
- </optional>
- <optional>
- <attribute name="fsid"/>
- </optional>
- <optional>
- <attribute name="options"/>
- </optional>
- <optional>
- <attribute name="allow_recover"/>
- </optional>
- <optional>
- <attribute name="service_name"/>
- </optional>
- <optional>
- <attribute name="use_cache"/>
- </optional>
- </group>
- </choice>
- <optional>
- <attribute name="__independent_subtree"/>
- </optional>
- <optional>
- <attribute name="__enforce_timeouts"/>
- </optional>
- <optional>
- <ref name="CHILDREN"/>
- </optional>
- </element>
- </define>
-
-
- <define name="NFSEXPORT">
- <element name="nfsexport">
- <!-- This defines an NFS export. -->
- <choice>
- <group>
- <!-- rgmanager specific stuff -->
- <attribute name="ref"/>
- </group>
- <group>
- <attribute name="name"/>
- <optional>
- <attribute name="device"/>
- </optional>
- <optional>
- <attribute name="path"/>
- </optional>
- <optional>
- <attribute name="fsid"/>
- </optional>
- </group>
- </choice>
- <optional>
- <attribute name="__independent_subtree"/>
- </optional>
- <optional>
- <attribute name="__enforce_timeouts"/>
- </optional>
- <optional>
- <ref name="CHILDREN"/>
- </optional>
- </element>
- </define>
-
-
- <define name="SCRIPT">
- <element name="script">
- <!-- LSB-compliant init script as a clustered resource. -->
- <choice>
- <group>
- <!-- rgmanager specific stuff -->
- <attribute name="ref"/>
- </group>
- <group>
- <attribute name="name"/>
- <attribute name="file"/>
- <optional>
- <attribute name="service_name"/>
- </optional>
- </group>
- </choice>
- <optional>
- <attribute name="__independent_subtree"/>
- </optional>
- <optional>
- <attribute name="__enforce_timeouts"/>
- </optional>
- <optional>
- <ref name="CHILDREN"/>
- </optional>
- </element>
- </define>
-
-
- <define name="NETFS">
- <element name="netfs">
- <!-- Defines an NFS/CIFS file system mount. -->
- <choice>
- <group>
- <!-- rgmanager specific stuff -->
- <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="no_unmount"/>
- </optional>
- <optional>
- <attribute name="force_unmount"/>
- </optional>
- <optional>
- <attribute name="options"/>
- </optional>
- </group>
- </choice>
- <optional>
- <attribute name="__independent_subtree"/>
- </optional>
- <optional>
- <attribute name="__enforce_timeouts"/>
- </optional>
- <optional>
- <ref name="CHILDREN"/>
- </optional>
- </element>
- </define>
-
-
- <define name="CLUSTERFS">
- <element name="clusterfs">
- <!-- Defines a cluster file system mount. -->
- <choice>
- <group>
- <!-- rgmanager specific stuff -->
- <attribute name="ref"/>
- </group>
- <group>
- <attribute name="name"/>
- <attribute name="mountpoint"/>
- <attribute name="device"/>
- <optional>
- <attribute name="fstype"/>
- </optional>
- <optional>
- <attribute name="force_unmount"/>
- </optional>
- <optional>
- <attribute name="options"/>
- </optional>
- <optional>
- <attribute name="self_fence"/>
- </optional>
- <optional>
- <attribute name="fsid"/>
- </optional>
- <optional>
- <attribute name="nfslock"/>
- </optional>
- </group>
- </choice>
- <optional>
- <attribute name="__independent_subtree"/>
- </optional>
- <optional>
- <attribute name="__enforce_timeouts"/>
- </optional>
- <optional>
- <ref name="CHILDREN"/>
- </optional>
- </element>
- </define>
-
-
- <define name="SMB">
- <element name="smb">
- <!-- Dynamic smbd/nmbd resource agent -->
- <choice>
- <group>
- <!-- rgmanager specific stuff -->
- <attribute name="ref"/>
- </group>
- <group>
- <attribute name="name"/>
- <optional>
- <attribute name="workgroup"/>
- </optional>
- <optional>
- <attribute name="service_name"/>
- </optional>
- </group>
- </choice>
- <optional>
- <attribute name="__independent_subtree"/>
- </optional>
- <optional>
- <attribute name="__enforce_timeouts"/>
- </optional>
- <optional>
- <ref name="CHILDREN"/>
- </optional>
- </element>
- </define>
-
-
- <define name="APACHE">
- <element name="apache">
- <!-- Defines an Apache web server -->
- <choice>
- <group>
- <!-- rgmanager specific stuff -->
- <attribute name="ref"/>
- </group>
- <group>
- <attribute name="name"/>
- <optional>
- <attribute name="server_root"/>
- </optional>
- <optional>
- <attribute name="config_file"/>
- </optional>
- <optional>
- <attribute name="httpd_options"/>
- </optional>
- <optional>
- <attribute name="shutdown_wait"/>
- </optional>
- <optional>
- <attribute name="service_name"/>
- </optional>
- </group>
- </choice>
- <optional>
- <attribute name="__independent_subtree"/>
- </optional>
- <optional>
- <attribute name="__enforce_timeouts"/>
- </optional>
- <optional>
- <ref name="CHILDREN"/>
- </optional>
- </element>
- </define>
-
-
- <define name="OPENLDAP">
- <element name="openldap">
- <!-- Defines an Open LDAP server -->
- <choice>
- <group>
- <!-- rgmanager specific stuff -->
- <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="service_name"/>
- </optional>
- </group>
- </choice>
- <optional>
- <attribute name="__independent_subtree"/>
- </optional>
- <optional>
- <attribute name="__enforce_timeouts"/>
- </optional>
- <optional>
- <ref name="CHILDREN"/>
- </optional>
- </element>
- </define>
-
-
- <define name="SAMBA">
- <element name="samba">
- <!-- Dynamic smbd/nmbd resource agent -->
- <choice>
- <group>
- <!-- rgmanager specific stuff -->
- <attribute name="ref"/>
- </group>
- <group>
- <attribute name="name"/>
- <optional>
- <attribute name="config_file"/>
- </optional>
- <optional>
- <attribute name="smbd_options"/>
- </optional>
- <optional>
- <attribute name="nmbd_options"/>
- </optional>
- <optional>
- <attribute name="shutdown_wait"/>
- </optional>
- <optional>
- <attribute name="service_name"/>
- </optional>
- </group>
- </choice>
- <optional>
- <attribute name="__independent_subtree"/>
- </optional>
- <optional>
- <attribute name="__enforce_timeouts"/>
- </optional>
- <optional>
- <ref name="CHILDREN"/>
- </optional>
- </element>
- </define>
-
-
- <define name="MYSQL">
- <element name="mysql">
- <!-- Defines a MySQL database server -->
- <choice>
- <group>
- <!-- rgmanager specific stuff -->
- <attribute name="ref"/>
- </group>
- <group>
- <attribute name="name"/>
- <optional>
- <attribute name="config_file"/>
- </optional>
- <optional>
- <attribute name="listen_address"/>
- </optional>
- <optional>
- <attribute name="mysqld_options"/>
- </optional>
- <optional>
- <attribute name="startup_wait"/>
- </optional>
- <optional>
- <attribute name="shutdown_wait"/>
- </optional>
- <optional>
- <attribute name="service_name"/>
- </optional>
- </group>
- </choice>
- <optional>
- <attribute name="__independent_subtree"/>
- </optional>
- <optional>
- <attribute name="__enforce_timeouts"/>
- </optional>
- <optional>
- <ref name="CHILDREN"/>
- </optional>
- </element>
- </define>
-
-
- <define name="POSTGRES-8">
- <element name="postgres-8">
- <!-- Defines a PostgreSQL server -->
- <choice>
- <group>
- <!-- rgmanager specific stuff -->
- <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="service_name"/>
- </optional>
- </group>
- </choice>
- <optional>
- <attribute name="__independent_subtree"/>
- </optional>
- <optional>
- <attribute name="__enforce_timeouts"/>
- </optional>
- <optional>
- <ref name="CHILDREN"/>
- </optional>
- </element>
- </define>
-
-
- <define name="TOMCAT-5">
- <element name="tomcat-5">
- <!-- Defines a Tomcat server -->
- <choice>
- <group>
- <!-- rgmanager specific stuff -->
- <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="service_name"/>
- </optional>
- </group>
- </choice>
- <optional>
- <attribute name="__independent_subtree"/>
- </optional>
- <optional>
- <attribute name="__enforce_timeouts"/>
- </optional>
- <optional>
- <ref name="CHILDREN"/>
- </optional>
- </element>
- </define>
-
-
- <define name="LVM">
- <element name="lvm">
- <!-- LVM Failover script -->
- <choice>
- <group>
- <!-- rgmanager specific stuff -->
- <attribute name="ref"/>
- </group>
- <group>
- <attribute name="name"/>
- <attribute name="vg_name"/>
- <optional>
- <attribute name="lv_name"/>
- </optional>
- <optional>
- <attribute name="self_fence"/>
- </optional>
- <optional>
- <attribute name="nfslock"/>
- </optional>
- </group>
- </choice>
- <optional>
- <attribute name="__independent_subtree"/>
- </optional>
- <optional>
- <attribute name="__enforce_timeouts"/>
- </optional>
- <optional>
- <ref name="CHILDREN"/>
- </optional>
- </element>
- </define>
-
-
- <define name="VM">
- <element name="vm">
- <!-- Defines a Virtual Machine -->
- <choice>
- <group>
- <!-- rgmanager specific stuff -->
- <attribute name="ref"/>
- </group>
- <group>
- <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="migration_mapping"/>
- </optional>
- <optional>
- <attribute name="use_virsh"/>
- </optional>
- <optional>
- <attribute name="xmlfile"/>
- </optional>
- <optional>
- <attribute name="migrate"/>
- </optional>
- <optional>
- <attribute name="snapshot"/>
- </optional>
- <optional>
- <attribute name="depend"/>
- </optional>
- <optional>
- <attribute name="depend_mode"/>
- </optional>
- <optional>
- <attribute name="max_restarts"/>
- </optional>
- <optional>
- <attribute name="restart_expire_time"/>
- </optional>
- <optional>
- <attribute name="hypervisor"/>
- </optional>
- <optional>
- <attribute name="hypervisor_uri"/>
- </optional>
- <optional>
- <attribute name="migration_uri"/>
- </optional>
- </group>
- </choice>
- <optional>
- <attribute name="__independent_subtree"/>
- </optional>
- <optional>
- <attribute name="__enforce_timeouts"/>
- </optional>
- <optional>
- <ref name="CHILDREN"/>
- </optional>
- </element>
- </define>
-
-
- <define name="SAPINSTANCE">
- <element name="SAPInstance">
- <!-- SAP instance resource agent -->
- <choice>
- <group>
- <!-- rgmanager specific stuff -->
- <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="START_WAITTIME"/>
- </optional>
- <optional>
- <attribute name="AUTOMATIC_RECOVER"/>
- </optional>
- <optional>
- <attribute name="PRE_START_USEREXIT"/>
- </optional>
- <optional>
- <attribute name="POST_START_USEREXIT"/>
- </optional>
- <optional>
- <attribute name="PRE_STOP_USEREXIT"/>
- </optional>
- <optional>
- <attribute name="POST_STOP_USEREXIT"/>
- </optional>
- </group>
- </choice>
- <optional>
- <attribute name="__independent_subtree"/>
- </optional>
- <optional>
- <attribute name="__enforce_timeouts"/>
- </optional>
- <optional>
- <ref name="CHILDREN"/>
- </optional>
- </element>
- </define>
-
-
- <define name="SAPDATABASE">
- <element name="SAPDatabase">
- <!-- SAP database resource agent -->
- <choice>
- <group>
- <!-- rgmanager specific stuff -->
- <attribute name="ref"/>
- </group>
- <group>
- <attribute name="SID"/>
- <optional>
- <attribute name="DIR_EXECUTABLE"/>
- </optional>
- <attribute name="DBTYPE"/>
- <optional>
- <attribute name="NETSERVICENAME"/>
- </optional>
- <optional>
- <attribute name="DBJ2EE_ONLY"/>
- </optional>
- <optional>
- <attribute name="JAVA_HOME"/>
- </optional>
- <optional>
- <attribute name="STRICT_MONITORING"/>
- </optional>
- <optional>
- <attribute name="AUTOMATIC_RECOVER"/>
- </optional>
- <optional>
- <attribute name="DIR_BOOTSTRAP"/>
- </optional>
- <optional>
- <attribute name="DIR_SECSTORE"/>
- </optional>
- <optional>
- <attribute name="DB_JARS"/>
- </optional>
- <optional>
- <attribute name="PRE_START_USEREXIT"/>
- </optional>
- <optional>
- <attribute name="POST_START_USEREXIT"/>
- </optional>
- <optional>
- <attribute name="PRE_STOP_USEREXIT"/>
- </optional>
- <optional>
- <attribute name="POST_STOP_USEREXIT"/>
- </optional>
- </group>
- </choice>
- <optional>
- <attribute name="__independent_subtree"/>
- </optional>
- <optional>
- <attribute name="__enforce_timeouts"/>
- </optional>
- <optional>
- <ref name="CHILDREN"/>
- </optional>
- </element>
- </define>
-
-
- <define name="NAMED">
- <element name="named">
- <!-- Defines an instance of named server -->
- <choice>
- <group>
- <!-- rgmanager specific stuff -->
- <attribute name="ref"/>
- </group>
- <group>
- <attribute name="name"/>
- <optional>
- <attribute name="config_file"/>
- </optional>
- <optional>
- <attribute name="named_sdb"/>
- </optional>
- <optional>
- <attribute name="named_working_dir"/>
- </optional>
- <optional>
- <attribute name="named_options"/>
- </optional>
- <optional>
- <attribute name="shutdown_wait"/>
- </optional>
- <optional>
- <attribute name="service_name"/>
- </optional>
- </group>
- </choice>
- <optional>
- <attribute name="__independent_subtree"/>
- </optional>
- <optional>
- <attribute name="__enforce_timeouts"/>
- </optional>
- <optional>
- <ref name="CHILDREN"/>
- </optional>
- </element>
- </define>
-
-
- <define name="ASEHAAGENT">
- <element name="ASEHAagent">
- <!-- Sybase ASE Failover Instance -->
- <choice>
- <group>
- <!-- rgmanager specific stuff -->
- <attribute name="ref"/>
- </group>
- <group>
- <attribute name="name"/>
- <attribute name="sybase_home"/>
- <attribute name="sybase_ase"/>
- <attribute name="sybase_ocs"/>
- <attribute name="server_name"/>
- <attribute name="login_file"/>
- <attribute name="interfaces_file"/>
- <attribute name="sybase_user"/>
- <attribute name="shutdown_timeout"/>
- <attribute name="start_timeout"/>
- <attribute name="deep_probe_timeout"/>
- </group>
- </choice>
- <optional>
- <attribute name="__independent_subtree"/>
- </optional>
- <optional>
- <attribute name="__enforce_timeouts"/>
- </optional>
- <optional>
- <ref name="CHILDREN"/>
- </optional>
- </element>
- </define>
-
-
- <define name="FS">
- <element name="fs">
- <!-- Defines a file system mount. -->
- <choice>
- <group>
- <!-- rgmanager specific stuff -->
- <attribute name="ref"/>
- </group>
- <group>
- <attribute name="name"/>
- <attribute name="mountpoint"/>
- <attribute name="device"/>
- <optional>
- <attribute name="fstype"/>
- </optional>
- <optional>
- <attribute name="force_unmount"/>
- </optional>
- <optional>
- <attribute name="quick_status"/>
- </optional>
- <optional>
- <attribute name="self_fence"/>
- </optional>
- <optional>
- <attribute name="nfslock"/>
- </optional>
- <optional>
- <attribute name="fsid"/>
- </optional>
- <optional>
- <attribute name="force_fsck"/>
- </optional>
- <optional>
- <attribute name="options"/>
- </optional>
- </group>
- </choice>
- <optional>
- <attribute name="__independent_subtree"/>
- </optional>
- <optional>
- <attribute name="__enforce_timeouts"/>
- </optional>
- <optional>
- <ref name="CHILDREN"/>
- </optional>
- </element>
- </define>
-
-
- <define name="ORACLEDB">
- <element name="oracledb">
- <!-- Oracle 10g Failover Instance -->
- <choice>
- <group>
- <!-- rgmanager specific stuff -->
- <attribute name="ref"/>
- </group>
- <group>
- <attribute name="name"/>
- <optional>
- <attribute name="listener_name"/>
- </optional>
- <attribute name="user"/>
- <attribute name="home"/>
- <optional>
- <attribute name="type"/>
- </optional>
- <optional>
- <attribute name="vhost"/>
- </optional>
- </group>
- </choice>
- <optional>
- <attribute name="__independent_subtree"/>
- </optional>
- <optional>
- <attribute name="__enforce_timeouts"/>
- </optional>
- <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="SERVICE"/>
- <ref name="IP"/>
- <ref name="NFSCLIENT"/>
- <ref name="NFSEXPORT"/>
- <ref name="SCRIPT"/>
- <ref name="NETFS"/>
- <ref name="CLUSTERFS"/>
- <ref name="SMB"/>
- <ref name="APACHE"/>
- <ref name="OPENLDAP"/>
- <ref name="SAMBA"/>
- <ref name="MYSQL"/>
- <ref name="POSTGRES-8"/>
- <ref name="TOMCAT-5"/>
- <ref name="LVM"/>
- <ref name="VM"/>
- <ref name="SAPINSTANCE"/>
- <ref name="SAPDATABASE"/>
- <ref name="NAMED"/>
- <ref name="ASEHAAGENT"/>
- <ref name="FS"/>
- <ref name="ORACLEDB"/>
- <ref name="RESOURCEACTION"/>
- </choice>
- </zeroOrMore>
- </define>
-
- <define name="CHILDREN">
- <zeroOrMore>
- <choice>
- <ref name="CHILD"/>
- </choice>
- </zeroOrMore>
- </define>
-
- <define name="RESOURCEACTION">
- <zeroOrMore>
- <element name="action">
- <attribute name="name"/>
- <optional>
- <attribute name="depth"/>
- </optional>
- <optional>
- <attribute name="interval"/>
- </optional>
- <optional>
- <attribute name="timeout"/>
- </optional>
- </element>
- </zeroOrMore>
- </define>
-
-<!-- End autogenerated resources definitions -->
-<!--End of resource definitions-->
-
-<!-- begin node fence definitions -->
-
- <define name="FENCE">
- <element name="fence" rha:description="The fence element specifies how
- a node is fenced. Its elements and attributes identify fence device
- (or devices) to use and the parameters specific to each fence device
- (for example, IP address and port number in an APC fence device)">
- <zeroOrMore>
- <element name="method" rha:description="Typically, there is a single
- method used to fence each node (the name given to the method is
- not significant). A method refers to a specific device listed in
- the fencedevices section (a separate section from the clusternode
- section), and then lists any node-specific parameters related
- to using the device.">
- <attribute name="name" rha:description="" rha:sample="apc123"/>
- <zeroOrMore>
- <ref name="DEVICE"/>
- </zeroOrMore>
- </element>
- </zeroOrMore>
- </element>
- </define>
-
- <define name="UNFENCE">
- <element name="unfence" rha:description="">
- <zeroOrMore>
- <ref name="DEVICE"/>
- </zeroOrMore>
- </element>
- </define>
-
- <define name="DEVICE">
- <element name="device" rha:description="">
- <attribute name="name" rha:description="" rha:sample="">
- <data type="IDREF"/>
- </attribute>
- <choice>
- <!-- begin node fence specific devices -->
-
- <!-- begin auto-generated device definitions -->
- <!-- fence_alom -->
- <group>
- <optional>
- <attribute name="action"/>
- </optional>
- <optional> <!-- lhh - compat -->
- <attribute name="option"/>
- </optional>
- <attribute name="login"/>
- <optional>
- <attribute name="passwd"/>
- </optional>
- <optional>
- <attribute name="passwd_script"/>
- </optional>
- <optional>
- <attribute name="secure"/>
- </optional>
- <optional>
- <attribute name="verbose"/>
- </optional>
- </group>
-
- <!-- fence_apc -->
- <group>
- <optional>
- <attribute name="action"/>
- </optional>
- <optional> <!-- lhh - compat -->
- <attribute name="option"/>
- </optional>
- <optional>
- <attribute name="passwd"/>
- </optional>
- <optional>
- <attribute name="passwd_script"/>
- </optional>
- <optional>
- <attribute name="secure"/>
- </optional>
- <attribute name="port"/>
- <optional>
- <attribute name="switch"/>
- </optional>
- <optional>
- <attribute name="verbose"/>
- </optional>
- </group>
-
- <!-- fence_bladecenter -->
- <group>
- <optional>
- <attribute name="action"/>
- </optional>
- <optional> <!-- lhh - compat -->
- <attribute name="option"/>
- </optional>
- <optional>
- <attribute name="passwd"/>
- </optional>
- <optional>
- <attribute name="passwd_script"/>
- </optional>
- <optional>
- <attribute name="secure"/>
- </optional>
- <attribute name="port"/>
- <optional>
- <attribute name="identity_file"/>
- </optional>
- <optional>
- <attribute name="verbose"/>
- </optional>
- </group>
-
- <!-- fence_drac5 -->
- <group>
- <optional>
- <attribute name="action"/>
- </optional>
- <optional> <!-- lhh - compat -->
- <attribute name="option"/>
- </optional>
- <optional>
- <attribute name="passwd"/>
- </optional>
- <optional>
- <attribute name="passwd_script"/>
- </optional>
- <optional>
- <attribute name="secure"/>
- </optional>
- <optional>
- <attribute name="verbose"/>
- </optional>
- </group>
-
- <!-- fence_eps -->
- <group>
- <optional>
- <attribute name="action"/>
- </optional>
- <optional> <!-- lhh - compat -->
- <attribute name="option"/>
- </optional>
- <optional>
- <attribute name="login"/>
- </optional>
- <optional>
- <attribute name="passwd"/>
- </optional>
- <optional>
- <attribute name="passwd_script"/>
- </optional>
- <attribute name="port"/>
- <optional>
- <attribute name="verbose"/>
- </optional>
- </group>
-
- <!-- fence_ilo -->
- <group>
- <optional>
- <attribute name="action"/>
- </optional>
- <optional> <!-- lhh - compat -->
- <attribute name="option"/>
- </optional>
- <optional>
- <attribute name="passwd"/>
- </optional>
- <optional>
- <attribute name="passwd_script"/>
- </optional>
- <optional>
- <attribute name="ssl"/>
- </optional>
- <optional>
- <attribute name="verbose"/>
- </optional>
- </group>
-
- <!-- fence_ldom -->
- <group>
- <optional>
- <attribute name="action"/>
- </optional>
- <optional> <!-- lhh - compat -->
- <attribute name="option"/>
- </optional>
- <optional>
- <attribute name="passwd"/>
- </optional>
- <optional>
- <attribute name="passwd_script"/>
- </optional>
- <optional>
- <attribute name="secure"/>
- </optional>
- <optional>
- <attribute name="identity_file"/>
- </optional>
- <attribute name="port"/>
- <optional>
- <attribute name="verbose"/>
- </optional>
- </group>
-
- <!-- fence_lpar -->
- <group>
- <optional>
- <attribute name="action"/>
- </optional>
- <optional> <!-- lhh - compat -->
- <attribute name="option"/>
- </optional>
- <optional>
- <attribute name="passwd"/>
- </optional>
- <optional>
- <attribute name="passwd_script"/>
- </optional>
- <optional>
- <attribute name="secure"/>
- </optional>
- <optional>
- <attribute name="partition"/>
- </optional>
- <optional>
- <attribute name="managed"/>
- </optional>
- <optional>
- <attribute name="verbose"/>
- </optional>
- </group>
-
- <!-- fence_virsh -->
- <group>
- <optional>
- <attribute name="action"/>
- </optional>
- <optional> <!-- lhh - compat -->
- <attribute name="option"/>
- </optional>
- <optional>
- <attribute name="passwd"/>
- </optional>
- <optional>
- <attribute name="passwd_script"/>
- </optional>
- <optional>
- <attribute name="secure"/>
- </optional>
- <optional>
- <attribute name="identity_file"/>
- </optional>
- <attribute name="port"/>
- <optional>
- <attribute name="verbose"/>
- </optional>
- </group>
-
- <!-- fence_vmware -->
- <group>
- <optional>
- <attribute name="action"/>
- </optional>
- <optional> <!-- lhh - compat -->
- <attribute name="option"/>
- </optional>
- <optional>
- <attribute name="passwd"/>
- </optional>
- <optional>
- <attribute name="passwd_script"/>
- </optional>
- <attribute name="port"/>
- <optional>
- <attribute name="exec"/>
- </optional>
- <optional>
- <attribute name="vmware_type"/>
- </optional>
- <optional>
- <attribute name="secure"/>
- </optional>
- <optional>
- <attribute name="vmware_datacenter"/>
- </optional>
- <optional>
- <attribute name="verbose"/>
- </optional>
- </group>
-
- <!-- fence_wti -->
- <group>
- <optional>
- <attribute name="action"/>
- </optional>
- <optional> <!-- lhh - compat -->
- <attribute name="option"/>
- </optional>
- <optional>
- <attribute name="login"/>
- </optional>
- <optional>
- <attribute name="passwd"/>
- </optional>
- <optional>
- <attribute name="passwd_script"/>
- </optional>
- <optional>
- <attribute name="secure"/>
- </optional>
- <attribute name="port"/>
- <optional>
- <attribute name="verbose"/>
- </optional>
- </group>
-
- <!-- fence_xvm -->
- <group>
- <optional>
- <attribute name="debug"/>
- </optional>
- <optional>
- <attribute name="ip_family"/>
- </optional>
- <optional>
- <attribute name="multicast_address"/>
- </optional>
- <optional>
- <attribute name="port"/>
- </optional>
- <optional>
- <attribute name="multicast_ttl"/>
- </optional>
- <optional>
- <attribute name="retrans"/>
- </optional>
- <optional>
- <attribute name="auth"/>
- </optional>
- <optional>
- <attribute name="hash"/>
- </optional>
- <optional>
- <attribute name="key_file"/>
- </optional>
- <optional>
- <attribute name="domain"/>
- </optional>
- <optional>
- <attribute name="use_uuid"/>
- </optional>
- <optional>
- <attribute name="option"/>
- </optional>
- <optional>
- <attribute name="timeout"/>
- </optional>
- </group>
- <!-- end auto-generated device definitions -->
-
- <!-- begin non-generated device definitions -->
- <!-- Brocade, Vixel, McData, SANBox2 -->
- <group>
- <attribute name="port"/>
- <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>
- <!-- end non-generated device definitions -->
-
- <!-- end node fence specific devices -->
- </choice>
- </element>
- </define>
-<!-- end node fence definitions -->
-
-</grammar>
diff --git a/config/tools/xml/cluster.rng.in b/config/tools/xml/cluster.rng.in
new file mode 100644
index 0000000..318afd6
--- /dev/null
+++ b/config/tools/xml/cluster.rng.in
@@ -0,0 +1,2806 @@
+<grammar datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
+xmlns="http://relaxng.org/ns/structure/1.0"
+xmlns:rha="http://redhat.com/~pkennedy/annotation_namespace/cluster_conf_annot_namespace">
+
+<!-- The cluster.conf schema follows this outline:
+
+cluster
+- cman
+- totem
+- quorumd
+- fence_daemon
+- fence_xvmd
+- dlm
+- gfs_controld
+- group
+- logging
+- clusternodes
+- fencedevices
+- rm
+
+Element defnitions:
+- Resource
+- Fence
+
+To validate your cluster.conf against this schema, run:
+
+ xmllint \-\-relaxng cluster.rng /path/to/cluster.conf
+
+-->
+
+<start>
+<element name="cluster" rha:description="The cluster element is the
+ top-level element and contains attributes that define the cluster
+ name and the configuration version number.">
+ <attribute name="name" rha:description="Specifies a unique cluster name;
+ it can be up to 16 characters long." rha:sample="my_cluster"/>
+ <attribute name="config_version" rha:description="Identifies the
+ revision level of the cluster.conf file. To propagate a revised
+ configuration file, this value must be advanced to a value higher
+ than the current value." rha:sample="1" rha:default="1"/>
+ <optional>
+ <attribute name="alias" rha:description="Pretty name for cluster that
+ is not parsed by cluster tag software; only the Conga and
+ system-config-cluster GUIs use this value."
+ rha:sample="My Cluster"/>
+ </optional>
+ <interleave>
+
+<!-- cman block -->
+ <optional>
+ <element name="cman" rha:description="The cman element contains
+ attributes that define the following cluster-wide parameters and
+ behaviors: whether the cluster is a two-node cluster, expected
+ votes, user-specified multicast address, and logging.">
+ <optional>
+ <attribute name="two_node" rha:description="The two_node attribute
+ allows you to configure a cluster with only two
+ nodes. Ordinarily, the loss of quorum after one of two nodes
+ fails prevents the remaining node from continuing (if both
+ nodes have one vote.) To enable a two-node cluster, set the
+ two_node value equal to 1. If the two_node value is enabled,
+ the expected_votes value must be set to 1." rha:sample="1"/>
+ </optional>
+ <optional>
+ <attribute name="expected_votes" rha:description="The expected
+ votes value is used by cman to determine quorum. The cluster
+ is quorate if the sum of votes of members is over
+ half of the expected votes value. By default, cman sets the
+ expected votes value to be the sum of votes of all nodes listed
+ in cluster.conf. This can be overriden by setting an explicit
+ expected_votes value." rha:sample="4">
+ <data type="positiveInteger"/>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="quorum_dev_poll" rha:description="The amount of time
+ after a qdisk poll, in milliseconds, before a quorum disk is
+ considered dead. The quorum disk daemon, qdisk, periodically
+ sends hello messages to cman and ais, indicating that qdisk
+ is present. If qdisk takes more time to send a hello message
+ to cman and ais than by quorum_dev_poll, then cman declares
+ qdisk dead and prints a message indicating that connection to
+ the quorum device has been lost." rha:sample="50000"/>
+ </optional>
+ <!--FIXME: Clarify the following. What is meant by "service"? Also, is
+ there a default value? What is a good sample value?-->
+ <optional>
+ <attribute name="shutdown_timeout" rha:description="Timeout period,
+ in milliseconds, to allow a service to respond during a
+ shutdown." rha:sample="5000"/>
+ </optional>
+ <optional>
+ <attribute name="ccsd_poll" rha:description="" rha:sample=""
+ rha:default="1000"/>
+ </optional>
+ <optional>
+ <attribute name="debug_mask" rha:description="" rha:sample=""/>
+ </optional>
+ <optional>
+ <attribute name="port">
+ <data type="nonNegativeInteger"/>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="cluster_id">
+ <data type="nonNegativeInteger"/>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="broadcast">
+ <data type="nonNegativeInteger"/>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="keyfile" rha:description=""/>
+ </optional>
+ <optional>
+ <attribute name="disable_openais"/>
+ </optional>
+ <optional>
+ <element name="multicast" rha:description="The multicast element
+ provides the ability for a user to specify a multicast address
+ instead of using the multicast address generated by cman. If
+ a user does not specify a multicast address, cman creates one. It
+ forms the upper 16 bits of the multicast address with 239.192 and
+ forms the lower 16 bits based on the cluster ID."> <attribute
+ name="addr" rha:description="A multicast address specified
+ by a user. If you do specify a multicast address, you should
+ use the 239.192.x.x series that cman uses. Otherwise, using a
+ multicast address outside that range may cause unpredictable
+ results. For example, using 224.0.0.x (All hosts on the network)
+ may not be routed correctly, or even routed at all by some
+ hardware." rha:sample="239.192.0.1"/>
+ </element>
+ </optional>
+ </element>
+ </optional>
+<!-- end cman block -->
+
+<!-- totem block -->
+ <optional>
+ <element name="totem" rha:description="OpenAIS msg transport
+ protocol">
+ <optional>
+ <attribute name="consensus" rha:description="This is a timeout value
+ that specifies how many milliseconds to wait for consensus
+ to be achieved before starting a new round of membership
+ configuration." rha:default="200" rha:sample="235"/>
+ </optional>
+ <optional>
+ <attribute name="join" rha:description="This is a timeout value that
+ specifies how many milliseconds to wait for join messages in
+ the membership protocol." rha:default="100" rha:sample="95"/>
+ </optional>
+ <optional>
+ <attribute name="token" rha:description="This is a timeout value
+ that specifies how many milliseconds elapse before a
+ token loss is declared after not receiving a token. This
+ is the time spent detecting a failure of a processor in
+ the current configuration. Reforming a new configuration
+ takes about 50 milliseconds in addition to this
+ timeout." rha:default="5000" rha:sample="5300"/>
+ </optional>
+ <optional>
+ <attribute name="token_retransmits_before_loss_const"
+ rha:description="This value identifies how many token retransmits
+ should be attempted before forming a new configuration. If
+ this value is set, retransmit and hold will be automatically
+ calculated from retransmits_before_loss and token." rha:default="4"
+ rha:sample="5"/>
+ </optional>
+ <!-- FIXME: The following description was adapted from the man page.
+ It may be tool long for the schema docuement. Consider cutting text
+ after the second sentence and referring the reader to the openais.conf
+ man page. -->
+ <optional>
+ <attribute name="rrp_mode" rha:description="This attribute
+ specifies the redundant ring protocol mode. Its value can be
+ set to active, passive, or none. Active replication offers
+ slightly lower latency from transmit to delivery in faulty
+ network environments but with less performance. Passive
+ replication may nearly double the speed of the totem protocol
+ if the protocol doesn't become cpu bound. The final option is
+ none, in which case only one network interface is used to
+ operate the totem protocol. If only one interface directive is
+ specified, none is automatically chosen. If multiple interface
+ directives are specified, only active or passive may be
+ chosen." rha:sample="active"/>
+ </optional>
+ <optional>
+ <attribute name="secauth" rha:description="This attribute specifies
+ that HMAC/SHA1 authentication should be used to authenticate all
+ messages. It further specifies that all data should be encrypted
+ with the sober128 encryption algorithm to protect data from
+ eavesdropping. For more information setting this value, refer
+ the the openais.conf man page." rha:default="on" rha:sample=""/>
+ </optional>
+ <optional>
+ <attribute name="keyfile" rha:description="" rha:sample=""/>
+ </optional>
+ <!-- multicast address -->
+ <zeroOrMore>
+ <element name="interface" rha:description="" rha:sample="">
+ <optional>
+ <attribute name="ringnumber" rha:description="" rha:sample=""/>
+ </optional>
+ <optional>
+ <attribute name="bindnetaddr" rha:description="" rha:sample=""/>
+ </optional>
+ <optional>
+ <attribute name="mcastaddr" rha:description="" rha:sample=""/>
+ </optional>
+ <optional>
+ <attribute name="mcastport" rha:description="" rha:sample=""/>
+ </optional>
+ <optional>
+ <attribute name="broadcast" rha:description="" rha:sample=""/>
+ </optional>
+ </element>
+ </zeroOrMore>
+ </element>
+ </optional>
+<!-- end totem block -->
+
+<!-- quorumd block -->
+ <optional>
+ <element name="quorumd" rha:description="This element and its
+ attributes define parameters for the quorum disk daemon,
+ quorumd.">
+ <optional>
+ <attribute name="interval" rha:description="The frequency of
+ read/write cycles, in seconds." rha:sample=""/>
+ </optional>
+ <optional>
+ <attribute name="tko" rha:description="The number of cycles a node
+ must miss to be declared dead." rha:sample=""/>
+ </optional>
+ <optional>
+ <attribute name="votes" rha:description="The number of votes the
+ quorum daemon advertises to CMAN when it has a high enough
+ score." rha:sample=""/>
+ </optional>
+ <optional>
+ <attribute name="min_score" rha:description="The minimum score for a
+ node to be considered alive. If omitted or set to 0, the default
+ function, floor((n+1)/2), is used, where n is the sum of the
+ heuristics scores. The Minimum Score value must never exceed the
+ sum of the heuristic scores; otherwise, the quorum disk cannot
+ be available." rha:sample=""/>
+ </optional>
+ <optional>
+ <attribute name="device" rha:description="The storage device the
+ quorum daemon uses. The device must be the same on all
+ nodes." rha:sample=""/>
+ </optional>
+ <optional>
+ <attribute name="label" rha:description="Specifies the quorum disk
+ label created by the mkqdisk utility. If this field contains an
+ entry, the label overrides the Device field. If this field is
+ used, the quorum daemon reads /proc/partitions and checks for
+ qdisk signatures on every block device found, comparing the
+ label against the specified label. This is useful in configurations
+ where the quorum device name differs among nodes." rha:sample=""/>
+ </optional>
+ <optional>
+ <attribute name="status_file" rha:description="" rha:sample=""/>
+ </optional>
+ <optional>
+ <attribute name="scheduler" rha:description="" rha:sample=""/>
+ </optional>
+ <optional>
+ <attribute name="reboot" rha:description="" rha:sample=""/>
+ </optional>
+ <optional>
+ <attribute name="priority" rha:description="" rha:sample=""/>
+ </optional>
+ <optional>
+ <attribute name="stop_cman" rha:description="" rha:sample=""/>
+ </optional>
+ <optional>
+ <attribute name="paranoid" rha:description="" rha:sample=""/>
+ </optional>
+ <optional>
+ <attribute name="allow_kill" rha:description="" rha:sample=""/>
+ </optional>
+ <optional>
+ <attribute name="max_error_cycles" rha:description="" rha:sample=""/>
+ </optional>
+ <zeroOrMore>
+ <element name="heuristic" rha:description="">
+ <attribute name="program" rha:description="The program used to
+ determine if this heuristic is alive. This can be anything that
+ can be executed by /bin/sh -c. A return value of 0 indicates
+ success; anything else indicates failure." rha:sample=""/>
+ <optional>
+ <attribute name="score" rha:description="The weight of this
+ heuristic. Be careful when determining scores for
+ heuristics." rha:default="1" rha:sample=""/>
+ </optional>
+ <optional>
+ <attribute name="interval" rha:description="The frequency (in
+ seconds) at which the heuristic is polled." rha:default="2"
+ rha:sample=""/>
+ </optional>
+ <optional>
+ <attribute name="tko" rha:description="" rha:sample=""/>
+ </optional>
+ </element>
+ </zeroOrMore>
+ </element>
+ </optional>
+<!-- end quorumd block -->
+
+<!-- fence_daemon block -->
+ <optional>
+ <element name="fence_daemon" rha:description="This element and its
+ attributes define cluster-wide parameters for basic fence timing
+ properties used when a node joins a cluster or is fenced from
+ the cluster.">
+ <optional>
+ <attribute name="post_join_delay" rha:description="The number of
+ seconds the fence daemon (fenced) waits before fencing a node
+ after the node joins the fence domain. A typical setting for
+ post_join_delay is between 20 and 30 seconds, but can vary
+ according to cluster and network performance requirements."
+ rha:default="3" rha:sample="20"/>
+ </optional>
+ <optional>
+ <attribute name="post_fail_delay" rha:description="The the number of
+ seconds the fence daemon (fenced) waits before fencing
+ a node (a member of the fence domain) after the node has
+ failed." rha:default="0" rha:sample="2"/>
+ </optional>
+ <optional>
+ <attribute name="override_path" rha:description="The location of a
+ FIFO used for communication between fenced and fence_ack_manual"
+ rha:default="/var/run/cluster/fenced_override"
+ rha:sample="/opt/cluster/fenced_override"/>
+ </optional>
+ <optional>
+ <attribute name="override_time" rha:description="The location of a
+ FIFO used for communication between fenced and fence_ack_manual"
+ rha:default="/var/run/cluster/fenced_override"
+ rha:sample="/opt/cluster/fenced_override"/>
+ </optional>
+ <optional>
+ <attribute name="clean_start" rha:description="Clean-start is used
+ to prevent any startup fencing the daemon might do." rha:default="0"
+ rha:sample="1"/>
+ </optional>
+ <optional>
+ <attribute name="skip_undefined" rha:description="Do not do startup
+ fencing of nodes with no fence methods defined." rha:default="0"
+ rha:sample="1"/>
+ </optional>
+ </element>
+ </optional>
+<!-- end fence_daemon block -->
+
+<!-- fence_xvmd block -->
+ <optional>
+ <element name="fence_xvmd" rha:description="Fence_xvm daemon. The
+ fence_xvmd fence device is an I/O fencing host that resides
+ on dom0 and is used in conjunction with the fence_xvm fencing
+ agent. Together, these two programs fence Xen virtual machines
+ that are in a cluster. There is a requirement that the parent
+ dom0s are also a part of their own CMAN/OpenAIS based cluster,
+ and that the dom0 cluster does not share any members with the domU
+ cluster. Furthermore, the dom0 cluster is required to have fencing
+ if domU recovery is expected to be automatic.">
+ <optional>
+ <attribute name="debug" rha:description="" rha:sample="">
+ <data type="integer"/>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="port" rha:description="" rha:sample="">
+ <data type="integer"/>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="use_uuid" rha:description="" rha:sample="">
+ <data type="boolean"/>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="multicast_address" rha:description="" rha:sample="">
+ <data type="string"/>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="auth" rha:description="" rha:sample="">
+ <data type="string"/>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="hash" rha:description="" rha:sample="">
+ <data type="string"/>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="uri" rha:description="" rha:sample="">
+ <data type="string"/>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="key_file" rha:description="" rha:sample="">
+ <data type="string"/>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="multicast_interface" rha:description="" rha:sample="">
+ <data type="string"/>
+ </attribute>
+ </optional>
+ </element>
+ </optional>
+<!-- end fence_xvmd block -->
+
+<!-- dlm block -->
+ <optional>
+ <element name="dlm" rha:description="">
+ <optional>
+ <attribute name="log_debug" rha:description="Enable dlm
+ kernel debug messages." rha:default="0" rha:sample="1"/>
+ </optional>
+ <optional>
+ <attribute name="timewarn" rha:description="The number of centiseconds
+ a lock is blocked before a warning is sent to userland, for lockspaces
+ created with TIMEWARN flag." rha:default="500" rha:sample="100"/>
+ </optional>
+ <optional>
+ <attribute name="protocol" rha:description="The network protocol
+ used by the dlm." rha:default="tcp" rha:sample="sctp"/>
+ </optional>
+ <optional>
+ <attribute name="enable_fencing" rha:description="Enable fencing recovery
+ dependency." rha:default="1" rha:sample="0"/>
+ </optional>
+ <optional>
+ <attribute name="enable_quorum" rha:description="Enable quorum recovery
+ dependency." rha:default="1" rha:sample="0"/>
+ </optional>
+ <optional>
+ <attribute name="enable_deadlk" rha:description="Enable deadlock detection
+ code." rha:default="0" rha:sample="1"/>
+ </optional>
+ <optional>
+ <attribute name="enable_plock" rha:description="Enable posix lock code for
+ cluster fs." rha:default="1" rha:sample="0"/>
+ </optional>
+ <optional>
+ <attribute name="plock_debug" rha:description="Enable posix lock debugging."
+ rha:default="0" rha:sample="1"/>
+ </optional>
+ <optional>
+ <attribute name="plock_rate_limit" rha:description="The maximum
+ number of plock operations that will be sent every second. This is
+ used to prevent potentially excessive network load. For best
+ performance it is recommended to disable this rate limiting by
+ setting the value to 0." rha:sample="10000" rha:default="100"/>
+ </optional>
+ <optional>
+ <attribute name="plock_ownership" rha:description="Enabling this
+ option by setting to 1 optimizes plock performance for repeated
+ locking of the same locks by processes on a single node.
+ All dlm_controld daemons in the cluster must be stopped before
+ changing this value." rha:sample="0" rha:default="1"/>
+ </optional>
+ <optional>
+ <attribute name="drop_resources_time" rha:description="For tuning the
+ plock_ownership resource caching. This is the frequence of
+ attempts in milliseconds to drop unused resources from the
+ cache." rha:sample="5000" rha:default="10000"/>
+ </optional>
+ <optional>
+ <attribute name="drop_resources_count" rha:description="For tuning
+ the plock_ownership resource caching. This is the maximum number
+ of resources to drop from the cache each time." rha:sample="100"
+ rha:default="10"/>
+ </optional>
+ <optional>
+ <attribute name="drop_resources_age" rha:description="For tuning the
+ plock_ownership resource caching. This is the time in milliseconds
+ that a cached resource should be unused before consideration for
+ dropping." rha:sample="5000" rha:default="10000"/>
+ </optional>
+ <optional>
+ <zeroOrMore>
+ <element name="lockspace" rha:description="Individual lockspace
+ configuration.">
+ <attribute name="name" rha:description="The name of the lockspace."
+ rha:sample="foo"/>
+ <optional>
+ <attribute name="nodir" rha:description="The lockspace will not use a
+ resource directory when this is set to 1." rha:default="0"
+ rha:sample="1"/>
+ </optional>
+ <optional>
+ <zeroOrMore>
+ <element name="master" rha:description="Define a particular node to be
+ responsible for a certain amount of lock mastering.">
+ <attribute name="name" rha:description="The name of the node that
+ should be mastering resources/locks. This needs to match one of
+ the nodes defined in clusternodes." rha:sample="node01"/>
+ <attribute name="weight" rha:description="The proportion of
+ resources/locks this node should master." rha:default="1"
+ rha:sample="2"/>
+ </element>
+ </zeroOrMore>
+ </optional>
+ </element>
+ </zeroOrMore>
+ </optional>
+ </element>
+ </optional>
+<!-- end dlm block -->
+
+<!-- gfs_controld block -->
+ <optional>
+ <element name="gfs_controld" rha:description="This element and its
+ attributes configure the gfs_controld daemon.">
+ <optional>
+ <attribute name="enable_withdraw" rha:description="Enable the code that
+ handles gfs withdraw." rha:default="1" rha:sample="0"/>
+ </optional>
+ <optional>
+ <attribute name="enable_plock" rha:description="Enable posix lock code for
+ cluster fs. gfs_controld only handles plocks when daemons run in compat
+ mode, otherwise dlm_controld processes plocks." rha:default="1"
+ rha:sample="0"/>
+ </optional>
+ <optional>
+ <attribute name="plock_debug" rha:description="Enable posix lock
+ debugging." rha:default="0" rha:sample="1"/>
+ </optional>
+ <optional>
+ <attribute name="plock_rate_limit" rha:description="The maximum
+ number of plock operations that will be sent every second. This is
+ used to prevent potentially excessive network load. For best
+ performance it is recommended to disable this rate limiting by
+ setting the value to 0." rha:sample="10000" rha:default="100"/>
+ </optional>
+ <optional>
+ <attribute name="plock_ownership" rha:description="Enabling this
+ option by setting to 1 optimizes plock performance for repeated
+ locking of the same locks by processes on a single node.
+ All gfs_controld daemons in the cluster must be stopped before
+ changing this value." rha:sample="1" rha:default="0"/>
+ </optional>
+ <optional>
+ <attribute name="drop_resources_time" rha:description="For tuning the
+ plock_ownership resource caching. This is the frequence of
+ attempts in milliseconds to drop unused resources from the
+ cache." rha:sample="5000" rha:default="10000"/>
+ </optional>
+ <optional>
+ <attribute name="drop_resources_count" rha:description="For tuning
+ the plock_ownership resource caching. This is the maximum number
+ of resources to drop from the cache each time." rha:sample="100"
+ rha:default="10"/>
+ </optional>
+ <optional>
+ <attribute name="drop_resources_age" rha:description="For tuning the
+ plock_ownership resource caching. This is the time in milliseconds
+ that a cached resource should be unused before consideration for
+ dropping." rha:sample="5000" rha:default="10000"/>
+ </optional>
+ </element>
+ </optional>
+<!-- end gfs_controld block -->
+
+<!-- group block -->
+ <optional>
+ <element name="group" rha:description="">
+ <optional>
+ <attribute name="groupd_compat" rha:description="Enable compatibility with
+ cluster2 (RHEL5) nodes" rha:default="0" rha:sample="1"/>
+ </optional>
+ </element>
+ </optional>
+<!-- end group block -->
+
+<!-- logging block -->
+ <optional>
+ <element name="logging" rha:description="Global logging config applies
+ to all daemons.">
+ <optional>
+ <attribute name="to_syslog" rha:description="enable/disable messages to
+ syslog" rha:default="yes"/>
+ </optional>
+ <optional>
+ <attribute name="to_logfile" rha:description="enable/disable messages to
+ log file" rha:default="yes"/>
+ </optional>
+ <optional>
+ <attribute name="syslog_facility" rha:description="facility used for
+ syslog messages" rha:default="daemon"/>
+ </optional>
+ <optional>
+ <attribute name="syslog_priority" rha:description="messages at this level
+ and up will be sent to syslog" rha:default="info"/>
+ </optional>
+ <optional>
+ <attribute name="logfile_priority" rha:description="messages at this level
+ and up will be written to log file" rha:default="info"/>
+ </optional>
+ <optional>
+ <attribute name="logfile" rha:description="the log file name"
+ rha:default="/var/log/cluster/daemon_name.log"/>
+ </optional>
+ <optional>
+ <attribute name="debug" rha:description="turn on debugging, a shortcut for
+ setting logfile_priority to debug" rha:sample="on"/>
+ </optional>
+ <optional>
+ <element name="logging_daemon" rha:description="Per-daemon logging
+ config overrides global settings for named daemon.">
+ <attribute name="name" rha:description="daemon name" rha:sample="fenced"/>
+ <optional>
+ <attribute name="subsys" rha:description="corosync subsystem name"
+ rha:sample="CMAN"/>
+ </optional>
+ <optional>
+ <attribute name="to_syslog" rha:description="same as global"/>
+ </optional>
+ <optional>
+ <attribute name="to_logfile" rha:description="same as global"/>
+ </optional>
+ <optional>
+ <attribute name="syslog_facility" rha:description="same as global"/>
+ </optional>
+ <optional>
+ <attribute name="syslog_priority" rha:description="same as global"/>
+ </optional>
+ <optional>
+ <attribute name="logfile_priority" rha:description="same as global"/>
+ </optional>
+ <optional>
+ <attribute name="logfile" rha:description="same as global"/>
+ </optional>
+ <optional>
+ <attribute name="debug" rha:description="same as global"/>
+ </optional>
+ </element>
+ </optional>
+ </element>
+ </optional>
+<!-- end logging block -->
+
+<!-- clusternode block -->
+ <element name="clusternodes" rha:description="This element defines the
+ cluster nodes configuration; it contains one clusternode element
+ per node.">
+ <zeroOrMore>
+ <element name="clusternode" rha:description="This element and its
+ attributes define a cluster node, specifying node name, node ID,
+ number of quorum votes, and fencing method for that node. There
+ is one clusernode element per node in a cluster.">
+ <attribute name="name" rha:description="The hostname or the IP
+ address of the node." rha:sample="node-01">
+ <data type="ID"/>
+ </attribute>
+ <optional>
+ <attribute name="votes" rha:description="The number of votes a
+ node can cast" rha:sample="2" rha:default="1">
+ <data type="positiveInteger"/>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="nodeid" rha:description="Each node requires
+ a unique integer value as its node ID." rha:sample="1">
+ <data type="positiveInteger"/>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="weight" rha:description="" rha:sample=""/>
+ </optional>
+ <optional>
+ <element name="altname" rha:description="">
+ <optional>
+ <attribute name="name" rha:description="" rha:sample=""/>
+ </optional>
+ <optional>
+ <attribute name="port" rha:description="" rha:sample=""/>
+ </optional>
+ <optional>
+ <attribute name="mcast" rha:description="" rha:sample=""/>
+ </optional>
+ </element>
+ </optional>
+ <interleave>
+ <optional>
+ <ref name="FENCE"/>
+ </optional>
+ <optional>
+ <ref name="UNFENCE"/>
+ </optional>
+ </interleave>
+ </element>
+ </zeroOrMore>
+ </element>
+<!-- end clusternode block -->
+
+<!-- fencedevices block -->
+ <optional>
+ <element name="fencedevices" rha:description="This element and its
+ attributes define the fence devices in the cluster. Parameters
+ vary according to the type of fence device. For example, for a
+ power controller used as a fence device, the cluster configuration
+ defines the name of the power controller, its IP address, login,
+ and password.">
+ <zeroOrMore>
+ <element name="fencedevice" rha:description="The fencedevice element
+ and its attributes define each fence device in a
+ cluster. Parameters for each fence device vary according to the
+ type of fence device.">
+ <attribute name="name" rha:description="This is a reference
+ name that you assign to a fence device. It is specific to a
+ cluster configuration file. It is required
+ when configuring a fence method for a node (refer
+ to the method and device elements in the clusternode
+ element)." rha:sample="apc_123">
+ <data type="ID"/>
+ </attribute>
+ <attribute name="agent" rha:description="Specifies a fence agent to
+ be used." rha:sample="fence_apc"/>
+ <optional>
+ <choice>
+ <!-- begin specific fence devices -->
+
+ <!-- begin non-generated device definitions -->
+ <!-- RPS10 -->
+ <group rha:description="RPS10 Serial Switch" >
+ <attribute name="device" rha:description="The device the switch
+ is connected to on the controlling host."
+ rha:sample="/dev/ttys2"/>
+ <attribute name="port" rha:description="The switch outlet
+ number." rha:sample="2"/>
+ </group>
+ <!--FIXME: Determine if the following group should exclude
+ the auth and lanplus attributes. Those attributes apply only to
+ the impilan fence device.-->
+ <!-- Brocade, McData, SANBox2, Bladecenter,bullpap, ipmilan -->
+ <group>
+ <attribute name="ipaddr" rha:description="IP address or the name
+ of the device." rha:sample="rack007"/>
+ <optional>
+ <attribute name="login" rha:description="The login name used to
+ access the device. " rha:sample="admin"/>
+ </optional>
+ <optional>
+ <attribute name="passwd" rha:description="The password used to
+ authenticate the connection to the
+ device." rha:sample="pa$$word"/>
+ </optional>
+ <optional>
+ <attribute name="passwd_script" rha:description="The script that
+ supplies a password for access to the fence device. Using
+ this supersedes the Password parameter." rha:sample=""/>
+ </optional>
+ <optional>
+ <attribute name="auth" rha:description="For IPMI LAN
+ only. Authentication Type: none, password,
+ md2, or md5" rha:sample=""/>
+ </optional>
+ <optional>
+ <attribute name="lanplus" rha:description="For IPMI LAN only.
+ Set value to either True or 1; leave out for false."
+ rha:sample="True"/>
+ </optional>
+ </group>
+ <!-- Vixel -->
+ <group>
+ <optional>
+ <attribute name="ipaddr" rha:description="IP address or the
+ name of the device." rha:sample="10.1.0.1"/>
+ </optional>
+ <optional>
+ <attribute name="passwd" rha:description="The password used to
+ authenticate the connection to the
+ device." rha:sample="pa$$word"/>
+ </optional>
+ <optional>
+ <attribute name="passwd_script" rha:description="The script
+ that supplies a password for access to the
+ fence device. Using this supersedes the Password
+ parameter." rha:sample=""/>
+ </optional>
+ </group>
+ <!-- scsi reservations -->
+ <group>
+ <attribute name="nodename" rha:description="Name of the node to
+ be fenced. Refer to fence_scsi(8) for more
+ information." rha:sample=""/>
+ <attribute name="self" rha:description="" rha:sample=""/>
+ </group>
+ <!-- GNBD -->
+ <group>
+ <attribute name="servers" rha:description="The hostname of each
+ GNBD to disable. For multiple hostnames, separate each
+ hostname with a space." rha:sample=""/>
+ </group>
+ <!-- Egenera -->
+ <!-- FIXME: Note that in the schema web page each is listed as a
+ parameter. Likewise for Conga. In addition, Conga shows Ipan
+ and pserver parameters. Also, in Conga, the esh parameter is
+ an optional ESH path. Presumably those should be attributes in
+ the schema. We need more invormation on this. -->
+ <group>
+ <attribute name="cserver" rha:description="The hostname (and
+ optionally the username in the form of username@hostname)
+ assigned to the device. Refer to the fence_egenera(8) man
+ page for more information." rha:sample=""/>
+ </group>
+ <!-- FIXME: It appears that xCat is no longer supported. Found no
+ fence agents for x Cat in RHEL 5.3. -->
+ <!-- xCAT -->
+ <group>
+ <attribute name="rpowerpath" rha:description="" rha:sample=""/>
+ </group>
+ <!-- end non-generated device definitions -->
+
+ <!-- begin auto-generated device definitions -->
+ <!-- fence_alom -->
+ <group>
+ <optional>
+ <attribute name="action"/>
+ </optional>
+ <optional> <!-- lhh - compat -->
+ <attribute name="option"/>
+ </optional>
+ <attribute name="ipaddr"/>
+ <attribute name="login"/>
+ <optional>
+ <attribute name="passwd"/>
+ </optional>
+ <optional>
+ <attribute name="passwd_script"/>
+ </optional>
+ <optional>
+ <attribute name="secure"/>
+ </optional>
+ <optional>
+ <attribute name="verbose"/>
+ </optional>
+ </group>
+
+ <!-- fence_apc -->
+ <group>
+ <optional>
+ <attribute name="action"/>
+ </optional>
+ <optional> <!-- lhh - compat -->
+ <attribute name="option"/>
+ </optional>
+ <attribute name="ipaddr"/>
+ <attribute name="login"/>
+ <optional>
+ <attribute name="passwd"/>
+ </optional>
+ <optional>
+ <attribute name="passwd_script"/>
+ </optional>
+ <optional>
+ <attribute name="secure"/>
+ </optional>
+ <optional>
+ <attribute name="switch"/>
+ </optional>
+ <optional>
+ <attribute name="verbose"/>
+ </optional>
+ </group>
+
+ <!-- fence_bladecenter -->
+ <group>
+ <optional>
+ <attribute name="action"/>
+ </optional>
+ <optional> <!-- lhh - compat -->
+ <attribute name="option"/>
+ </optional>
+ <attribute name="ipaddr"/>
+ <attribute name="login"/>
+ <optional>
+ <attribute name="passwd"/>
+ </optional>
+ <optional>
+ <attribute name="passwd_script"/>
+ </optional>
+ <optional>
+ <attribute name="secure"/>
+ </optional>
+ <optional>
+ <attribute name="identity_file"/>
+ </optional>
+ <optional>
+ <attribute name="verbose"/>
+ </optional>
+ </group>
+
+ <!-- fence_drac5 -->
+ <group>
+ <optional>
+ <attribute name="action"/>
+ </optional>
+ <optional> <!-- lhh - compat -->
+ <attribute name="option"/>
+ </optional>
+ <attribute name="ipaddr"/>
+ <attribute name="login"/>
+ <optional>
+ <attribute name="passwd"/>
+ </optional>
+ <optional>
+ <attribute name="passwd_script"/>
+ </optional>
+ <optional>
+ <attribute name="secure"/>
+ </optional>
+ <optional>
+ <attribute name="verbose"/>
+ </optional>
+ </group>
+
+ <!-- fence_eps -->
+ <group>
+ <optional>
+ <attribute name="action"/>
+ </optional>
+ <optional> <!-- lhh - compat -->
+ <attribute name="option"/>
+ </optional>
+ <attribute name="ipaddr"/>
+ <optional>
+ <attribute name="login"/>
+ </optional>
+ <optional>
+ <attribute name="passwd"/>
+ </optional>
+ <optional>
+ <attribute name="passwd_script"/>
+ </optional>
+ <optional>
+ <attribute name="verbose"/>
+ </optional>
+ </group>
+
+ <!-- fence_ilo -->
+ <group>
+ <optional>
+ <attribute name="action"/>
+ </optional>
+ <optional> <!-- lhh - compat -->
+ <attribute name="option"/>
+ </optional>
+ <attribute name="ipaddr"/>
+ <attribute name="login"/>
+ <optional>
+ <attribute name="passwd"/>
+ </optional>
+ <optional>
+ <attribute name="passwd_script"/>
+ </optional>
+ <optional>
+ <attribute name="ssl"/>
+ </optional>
+ <optional>
+ <attribute name="verbose"/>
+ </optional>
+ </group>
+
+ <!-- fence_ldom -->
+ <group>
+ <optional>
+ <attribute name="action"/>
+ </optional>
+ <optional> <!-- lhh - compat -->
+ <attribute name="option"/>
+ </optional>
+ <attribute name="ipaddr"/>
+ <attribute name="login"/>
+ <optional>
+ <attribute name="passwd"/>
+ </optional>
+ <optional>
+ <attribute name="passwd_script"/>
+ </optional>
+ <optional>
+ <attribute name="secure"/>
+ </optional>
+ <optional>
+ <attribute name="identity_file"/>
+ </optional>
+ <optional>
+ <attribute name="verbose"/>
+ </optional>
+ </group>
+
+ <!-- fence_lpar -->
+ <group>
+ <optional>
+ <attribute name="action"/>
+ </optional>
+ <optional> <!-- lhh - compat -->
+ <attribute name="option"/>
+ </optional>
+ <attribute name="ipaddr"/>
+ <attribute name="login"/>
+ <optional>
+ <attribute name="passwd"/>
+ </optional>
+ <optional>
+ <attribute name="passwd_script"/>
+ </optional>
+ <optional>
+ <attribute name="secure"/>
+ </optional>
+ <optional>
+ <attribute name="partition"/>
+ </optional>
+ <optional>
+ <attribute name="managed"/>
+ </optional>
+ <optional>
+ <attribute name="verbose"/>
+ </optional>
+ </group>
+
+ <!-- fence_virsh -->
+ <group>
+ <optional>
+ <attribute name="action"/>
+ </optional>
+ <optional> <!-- lhh - compat -->
+ <attribute name="option"/>
+ </optional>
+ <attribute name="ipaddr"/>
+ <attribute name="login"/>
+ <optional>
+ <attribute name="passwd"/>
+ </optional>
+ <optional>
+ <attribute name="passwd_script"/>
+ </optional>
+ <optional>
+ <attribute name="secure"/>
+ </optional>
+ <optional>
+ <attribute name="identity_file"/>
+ </optional>
+ <optional>
+ <attribute name="verbose"/>
+ </optional>
+ </group>
+
+ <!-- fence_vmware -->
+ <group>
+ <optional>
+ <attribute name="action"/>
+ </optional>
+ <optional> <!-- lhh - compat -->
+ <attribute name="option"/>
+ </optional>
+ <attribute name="ipaddr"/>
+ <attribute name="login"/>
+ <optional>
+ <attribute name="passwd"/>
+ </optional>
+ <optional>
+ <attribute name="passwd_script"/>
+ </optional>
+ <optional>
+ <attribute name="exec"/>
+ </optional>
+ <optional>
+ <attribute name="vmware_type"/>
+ </optional>
+ <optional>
+ <attribute name="secure"/>
+ </optional>
+ <optional>
+ <attribute name="vmware_datacenter"/>
+ </optional>
+ <optional>
+ <attribute name="verbose"/>
+ </optional>
+ </group>
+
+ <!-- fence_wti -->
+ <group>
+ <optional>
+ <attribute name="action"/>
+ </optional>
+ <optional> <!-- lhh - compat -->
+ <attribute name="option"/>
+ </optional>
+ <attribute name="ipaddr"/>
+ <optional>
+ <attribute name="login"/>
+ </optional>
+ <optional>
+ <attribute name="passwd"/>
+ </optional>
+ <optional>
+ <attribute name="passwd_script"/>
+ </optional>
+ <optional>
+ <attribute name="secure"/>
+ </optional>
+ <optional>
+ <attribute name="verbose"/>
+ </optional>
+ </group>
+
+ <!-- fence_xvm -->
+ <group>
+ <optional>
+ <attribute name="debug"/>
+ </optional>
+ <optional>
+ <attribute name="ip_family"/>
+ </optional>
+ <optional>
+ <attribute name="multicast_address"/>
+ </optional>
+ <optional>
+ <attribute name="port"/>
+ </optional>
+ <optional>
+ <attribute name="multicast_ttl"/>
+ </optional>
+ <optional>
+ <attribute name="retrans"/>
+ </optional>
+ <optional>
+ <attribute name="auth"/>
+ </optional>
+ <optional>
+ <attribute name="hash"/>
+ </optional>
+ <optional>
+ <attribute name="key_file"/>
+ </optional>
+ <optional>
+ <attribute name="domain"/>
+ </optional>
+ <optional>
+ <attribute name="use_uuid"/>
+ </optional>
+ <optional>
+ <attribute name="option"/>
+ </optional>
+ <optional>
+ <attribute name="timeout"/>
+ </optional>
+ </group>
+ <!-- end auto-generated device definitions -->
+
+ <group>
+ <optional>
+ <empty/>
+ </optional>
+ </group>
+
+ <!-- end specific fence devices -->
+ </choice>
+ </optional>
+ </element>
+ </zeroOrMore>
+ </element>
+ </optional>
+<!-- end fencedevices block -->
+
+<!-- rm block -->
+ <optional>
+ <element name="rm" rha:description="This element and its attributes
+ define resources (for example an IP address) required to create HA
+ cluster services, the HA cluster services themselves, and failover
+ domains for the HA cluster services.">
+ <optional>
+ <!-- FIXME: The following text needs clarifying. What is meant by
+ "...for all levels less than the selected."? -->
+ <attribute name="log_level" rha:description="An integer 0-7,
+ inclusive, for all levels less than the selected.
+ 0, system is unusable, emergency;
+ 1, action must be taken immediately;
+ 2, critical conditions;
+ 3, error conditions;
+ 4, warning conditions;
+ 5, normal but significant condition;
+ 6, informational;
+ 7, debug-level messages." rha:sample="6">
+ <data type="integer"/>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="status_child_max" rha:description="" rha:sample="">
+ <data type="integer"/>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="status_poll_interval" rha:description=""
+ rha:sample="">
+ <data type="integer"/>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="transition_throttling" rha:description=""
+ rha:sample="">
+ <data type="integer"/>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="central_processing" rha:description=""
+ rha:sample="">
+ <data type="integer"/>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="log_facility" rha:description="The facility is one
+ of the following keywords: auth, authpriv, cron, daemon, kern,
+ lpr, mail, news, syslog, user, uucp and local0 through local7"
+ rha:sample="local4">
+ <data type="string"/>
+ </attribute>
+ </optional>
+ <interleave>
+ <optional>
+ <element name="failoverdomains" rha:description="">
+ <zeroOrMore>
+ <element name="failoverdomain" rha:description="Specifies
+ properties of a specific failover domain">
+ <attribute name="name" rha:description="The name of the failover
+ domain." rha:sample="foo"/>
+ <optional>
+ <attribute name="ordered" rha:description="Set value to 1 if
+ the failover domain is ordered; set value to 0 if
+ unordered." rha:default="0" rha:sample="1"/>
+ </optional>
+ <optional>
+ <attribute name="restricted" rha:description="Set value to 1 if
+ the failover domain is restricted; set value to 0 if
+ unrestricted." rha:default="0" rha:sample="1"/>
+ </optional>
+ <optional>
+ <attribute name="nofailback" rha:description="" rha:sample=""/>
+ </optional>
+ <zeroOrMore>
+ <element name="failoverdomainnode" rha:description="A node in
+ a failover domain">
+ <optional>
+ <attribute name="priority" rha:description="A number
+ specifying the priority; lower numbers having higher
+ priority"
+ rha:sample="1"/>
+ </optional>
+ <attribute name="name" rha:description="Name of the node."
+ rha:sample="member2"/>
+ </element>
+ </zeroOrMore>
+ </element>
+ </zeroOrMore>
+ </element>
+ </optional> <!-- End of failoverdomains block -->
+ <optional>
+ <element name="events" rha:description="">
+ <zeroOrMore>
+ <element name="event" rha:description="">
+ <attribute name="name" rha:description="" rha:sample=""/>
+ <optional>
+ <text/>
+ </optional>
+ <optional>
+ <attribute name="file" rha:description="" rha:sample=""/>
+ </optional>
+ <optional>
+ <attribute name="priority" rha:description="" rha:sample=""/>
+ </optional>
+ <optional>
+ <attribute name="class" rha:description="" rha:sample=""/>
+ </optional>
+ <!-- Service event class attributes -->
+ <optional>
+ <attribute name="service" rha:description="" rha:sample=""/>
+ </optional>
+ <optional>
+ <attribute name="service_state" rha:description="" rha:sample=""/>
+ </optional>
+ <optional>
+ <attribute name="service_owner" rha:description="" rha:sample=""/>
+ </optional>
+ <!-- Node event -->
+ <optional>
+ <attribute name="node" rha:description="" rha:sample=""/>
+ </optional>
+ <optional>
+ <attribute name="node_id" rha:description="" rha:sample=""/>
+ </optional>
+ <optional>
+ <attribute name="node_state" rha:description="" rha:sample=""/>
+ </optional>
+ <optional>
+ <attribute name="node_clean" rha:description="" rha:sample=""/>
+ </optional>
+ <optional>
+ <attribute name="node_local" rha:description="" rha:sample=""/>
+ </optional>
+ <!-- Config event attributes -->
+ <!-- NOT USED -->
+ </element>
+ </zeroOrMore>
+ </element>
+ </optional> <!-- End of events block -->
+ <optional>
+ <element name="resources" rha:description="">
+ <zeroOrMore>
+ <ref name="CHILDREN"/>
+ </zeroOrMore>
+ </element>
+ </optional>
+ <zeroOrMore>
+ <ref name="SERVICE"/>
+ </zeroOrMore>
+ <zeroOrMore>
+ <ref name="VM"/>
+ </zeroOrMore>
+ </interleave>
+ </element>
+ </optional>
+
+ </interleave>
+</element> <!-- cluster end -->
+</start>
+
+
+<!--Beginning of resource definitions-->
+<!-- Autogenerated. Paste in to cluster.ng in the 'resources' section -->
+
+ <define name="SERVICE">
+ <element name="service">
+ <!-- Defines a services. -->
+ <choice>
+ <group>
+ <!-- rgmanager specific stuff -->
+ <attribute name="ref"/>
+ </group>
+ <group>
+ <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="nfslock"/>
+ </optional>
+ <optional>
+ <attribute name="nfs_client_cache"/>
+ </optional>
+ <optional>
+ <attribute name="recovery"/>
+ </optional>
+ <optional>
+ <attribute name="depend"/>
+ </optional>
+ <optional>
+ <attribute name="depend_mode"/>
+ </optional>
+ <optional>
+ <attribute name="max_restarts"/>
+ </optional>
+ <optional>
+ <attribute name="restart_expire_time"/>
+ </optional>
+ <optional>
+ <attribute name="priority"/>
+ </optional>
+ </group>
+ </choice>
+ <optional>
+ <attribute name="__independent_subtree"/>
+ </optional>
+ <optional>
+ <attribute name="__enforce_timeouts"/>
+ </optional>
+ <optional>
+ <ref name="CHILDREN"/>
+ </optional>
+ </element>
+ </define>
+
+
+ <define name="IP">
+ <element name="ip">
+ <!-- This is an IP address. -->
+ <choice>
+ <group>
+ <!-- rgmanager specific stuff -->
+ <attribute name="ref"/>
+ </group>
+ <group>
+ <attribute name="address"/>
+ <optional>
+ <attribute name="family"/>
+ </optional>
+ <optional>
+ <attribute name="monitor_link"/>
+ </optional>
+ <optional>
+ <attribute name="nfslock"/>
+ </optional>
+ <optional>
+ <attribute name="sleeptime"/>
+ </optional>
+ </group>
+ </choice>
+ <optional>
+ <attribute name="__independent_subtree"/>
+ </optional>
+ <optional>
+ <attribute name="__enforce_timeouts"/>
+ </optional>
+ <optional>
+ <ref name="CHILDREN"/>
+ </optional>
+ </element>
+ </define>
+
+
+ <define name="NFSCLIENT">
+ <element name="nfsclient">
+ <!-- Defines an NFS client. -->
+ <choice>
+ <group>
+ <!-- rgmanager specific stuff -->
+ <attribute name="ref"/>
+ </group>
+ <group>
+ <attribute name="name"/>
+ <attribute name="target"/>
+ <optional>
+ <attribute name="path"/>
+ </optional>
+ <optional>
+ <attribute name="svcname"/>
+ </optional>
+ <optional>
+ <attribute name="fsid"/>
+ </optional>
+ <optional>
+ <attribute name="options"/>
+ </optional>
+ <optional>
+ <attribute name="allow_recover"/>
+ </optional>
+ <optional>
+ <attribute name="service_name"/>
+ </optional>
+ <optional>
+ <attribute name="use_cache"/>
+ </optional>
+ </group>
+ </choice>
+ <optional>
+ <attribute name="__independent_subtree"/>
+ </optional>
+ <optional>
+ <attribute name="__enforce_timeouts"/>
+ </optional>
+ <optional>
+ <ref name="CHILDREN"/>
+ </optional>
+ </element>
+ </define>
+
+
+ <define name="NFSEXPORT">
+ <element name="nfsexport">
+ <!-- This defines an NFS export. -->
+ <choice>
+ <group>
+ <!-- rgmanager specific stuff -->
+ <attribute name="ref"/>
+ </group>
+ <group>
+ <attribute name="name"/>
+ <optional>
+ <attribute name="device"/>
+ </optional>
+ <optional>
+ <attribute name="path"/>
+ </optional>
+ <optional>
+ <attribute name="fsid"/>
+ </optional>
+ </group>
+ </choice>
+ <optional>
+ <attribute name="__independent_subtree"/>
+ </optional>
+ <optional>
+ <attribute name="__enforce_timeouts"/>
+ </optional>
+ <optional>
+ <ref name="CHILDREN"/>
+ </optional>
+ </element>
+ </define>
+
+
+ <define name="SCRIPT">
+ <element name="script">
+ <!-- LSB-compliant init script as a clustered resource. -->
+ <choice>
+ <group>
+ <!-- rgmanager specific stuff -->
+ <attribute name="ref"/>
+ </group>
+ <group>
+ <attribute name="name"/>
+ <attribute name="file"/>
+ <optional>
+ <attribute name="service_name"/>
+ </optional>
+ </group>
+ </choice>
+ <optional>
+ <attribute name="__independent_subtree"/>
+ </optional>
+ <optional>
+ <attribute name="__enforce_timeouts"/>
+ </optional>
+ <optional>
+ <ref name="CHILDREN"/>
+ </optional>
+ </element>
+ </define>
+
+
+ <define name="NETFS">
+ <element name="netfs">
+ <!-- Defines an NFS/CIFS file system mount. -->
+ <choice>
+ <group>
+ <!-- rgmanager specific stuff -->
+ <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="no_unmount"/>
+ </optional>
+ <optional>
+ <attribute name="force_unmount"/>
+ </optional>
+ <optional>
+ <attribute name="options"/>
+ </optional>
+ </group>
+ </choice>
+ <optional>
+ <attribute name="__independent_subtree"/>
+ </optional>
+ <optional>
+ <attribute name="__enforce_timeouts"/>
+ </optional>
+ <optional>
+ <ref name="CHILDREN"/>
+ </optional>
+ </element>
+ </define>
+
+
+ <define name="CLUSTERFS">
+ <element name="clusterfs">
+ <!-- Defines a cluster file system mount. -->
+ <choice>
+ <group>
+ <!-- rgmanager specific stuff -->
+ <attribute name="ref"/>
+ </group>
+ <group>
+ <attribute name="name"/>
+ <attribute name="mountpoint"/>
+ <attribute name="device"/>
+ <optional>
+ <attribute name="fstype"/>
+ </optional>
+ <optional>
+ <attribute name="force_unmount"/>
+ </optional>
+ <optional>
+ <attribute name="options"/>
+ </optional>
+ <optional>
+ <attribute name="self_fence"/>
+ </optional>
+ <optional>
+ <attribute name="fsid"/>
+ </optional>
+ <optional>
+ <attribute name="nfslock"/>
+ </optional>
+ </group>
+ </choice>
+ <optional>
+ <attribute name="__independent_subtree"/>
+ </optional>
+ <optional>
+ <attribute name="__enforce_timeouts"/>
+ </optional>
+ <optional>
+ <ref name="CHILDREN"/>
+ </optional>
+ </element>
+ </define>
+
+
+ <define name="SMB">
+ <element name="smb">
+ <!-- Dynamic smbd/nmbd resource agent -->
+ <choice>
+ <group>
+ <!-- rgmanager specific stuff -->
+ <attribute name="ref"/>
+ </group>
+ <group>
+ <attribute name="name"/>
+ <optional>
+ <attribute name="workgroup"/>
+ </optional>
+ <optional>
+ <attribute name="service_name"/>
+ </optional>
+ </group>
+ </choice>
+ <optional>
+ <attribute name="__independent_subtree"/>
+ </optional>
+ <optional>
+ <attribute name="__enforce_timeouts"/>
+ </optional>
+ <optional>
+ <ref name="CHILDREN"/>
+ </optional>
+ </element>
+ </define>
+
+
+ <define name="APACHE">
+ <element name="apache">
+ <!-- Defines an Apache web server -->
+ <choice>
+ <group>
+ <!-- rgmanager specific stuff -->
+ <attribute name="ref"/>
+ </group>
+ <group>
+ <attribute name="name"/>
+ <optional>
+ <attribute name="server_root"/>
+ </optional>
+ <optional>
+ <attribute name="config_file"/>
+ </optional>
+ <optional>
+ <attribute name="httpd_options"/>
+ </optional>
+ <optional>
+ <attribute name="shutdown_wait"/>
+ </optional>
+ <optional>
+ <attribute name="service_name"/>
+ </optional>
+ </group>
+ </choice>
+ <optional>
+ <attribute name="__independent_subtree"/>
+ </optional>
+ <optional>
+ <attribute name="__enforce_timeouts"/>
+ </optional>
+ <optional>
+ <ref name="CHILDREN"/>
+ </optional>
+ </element>
+ </define>
+
+
+ <define name="OPENLDAP">
+ <element name="openldap">
+ <!-- Defines an Open LDAP server -->
+ <choice>
+ <group>
+ <!-- rgmanager specific stuff -->
+ <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="service_name"/>
+ </optional>
+ </group>
+ </choice>
+ <optional>
+ <attribute name="__independent_subtree"/>
+ </optional>
+ <optional>
+ <attribute name="__enforce_timeouts"/>
+ </optional>
+ <optional>
+ <ref name="CHILDREN"/>
+ </optional>
+ </element>
+ </define>
+
+
+ <define name="SAMBA">
+ <element name="samba">
+ <!-- Dynamic smbd/nmbd resource agent -->
+ <choice>
+ <group>
+ <!-- rgmanager specific stuff -->
+ <attribute name="ref"/>
+ </group>
+ <group>
+ <attribute name="name"/>
+ <optional>
+ <attribute name="config_file"/>
+ </optional>
+ <optional>
+ <attribute name="smbd_options"/>
+ </optional>
+ <optional>
+ <attribute name="nmbd_options"/>
+ </optional>
+ <optional>
+ <attribute name="shutdown_wait"/>
+ </optional>
+ <optional>
+ <attribute name="service_name"/>
+ </optional>
+ </group>
+ </choice>
+ <optional>
+ <attribute name="__independent_subtree"/>
+ </optional>
+ <optional>
+ <attribute name="__enforce_timeouts"/>
+ </optional>
+ <optional>
+ <ref name="CHILDREN"/>
+ </optional>
+ </element>
+ </define>
+
+
+ <define name="MYSQL">
+ <element name="mysql">
+ <!-- Defines a MySQL database server -->
+ <choice>
+ <group>
+ <!-- rgmanager specific stuff -->
+ <attribute name="ref"/>
+ </group>
+ <group>
+ <attribute name="name"/>
+ <optional>
+ <attribute name="config_file"/>
+ </optional>
+ <optional>
+ <attribute name="listen_address"/>
+ </optional>
+ <optional>
+ <attribute name="mysqld_options"/>
+ </optional>
+ <optional>
+ <attribute name="startup_wait"/>
+ </optional>
+ <optional>
+ <attribute name="shutdown_wait"/>
+ </optional>
+ <optional>
+ <attribute name="service_name"/>
+ </optional>
+ </group>
+ </choice>
+ <optional>
+ <attribute name="__independent_subtree"/>
+ </optional>
+ <optional>
+ <attribute name="__enforce_timeouts"/>
+ </optional>
+ <optional>
+ <ref name="CHILDREN"/>
+ </optional>
+ </element>
+ </define>
+
+
+ <define name="POSTGRES-8">
+ <element name="postgres-8">
+ <!-- Defines a PostgreSQL server -->
+ <choice>
+ <group>
+ <!-- rgmanager specific stuff -->
+ <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="service_name"/>
+ </optional>
+ </group>
+ </choice>
+ <optional>
+ <attribute name="__independent_subtree"/>
+ </optional>
+ <optional>
+ <attribute name="__enforce_timeouts"/>
+ </optional>
+ <optional>
+ <ref name="CHILDREN"/>
+ </optional>
+ </element>
+ </define>
+
+
+ <define name="TOMCAT-5">
+ <element name="tomcat-5">
+ <!-- Defines a Tomcat server -->
+ <choice>
+ <group>
+ <!-- rgmanager specific stuff -->
+ <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="service_name"/>
+ </optional>
+ </group>
+ </choice>
+ <optional>
+ <attribute name="__independent_subtree"/>
+ </optional>
+ <optional>
+ <attribute name="__enforce_timeouts"/>
+ </optional>
+ <optional>
+ <ref name="CHILDREN"/>
+ </optional>
+ </element>
+ </define>
+
+
+ <define name="LVM">
+ <element name="lvm">
+ <!-- LVM Failover script -->
+ <choice>
+ <group>
+ <!-- rgmanager specific stuff -->
+ <attribute name="ref"/>
+ </group>
+ <group>
+ <attribute name="name"/>
+ <attribute name="vg_name"/>
+ <optional>
+ <attribute name="lv_name"/>
+ </optional>
+ <optional>
+ <attribute name="self_fence"/>
+ </optional>
+ <optional>
+ <attribute name="nfslock"/>
+ </optional>
+ </group>
+ </choice>
+ <optional>
+ <attribute name="__independent_subtree"/>
+ </optional>
+ <optional>
+ <attribute name="__enforce_timeouts"/>
+ </optional>
+ <optional>
+ <ref name="CHILDREN"/>
+ </optional>
+ </element>
+ </define>
+
+
+ <define name="VM">
+ <element name="vm">
+ <!-- Defines a Virtual Machine -->
+ <choice>
+ <group>
+ <!-- rgmanager specific stuff -->
+ <attribute name="ref"/>
+ </group>
+ <group>
+ <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="migration_mapping"/>
+ </optional>
+ <optional>
+ <attribute name="use_virsh"/>
+ </optional>
+ <optional>
+ <attribute name="xmlfile"/>
+ </optional>
+ <optional>
+ <attribute name="migrate"/>
+ </optional>
+ <optional>
+ <attribute name="snapshot"/>
+ </optional>
+ <optional>
+ <attribute name="depend"/>
+ </optional>
+ <optional>
+ <attribute name="depend_mode"/>
+ </optional>
+ <optional>
+ <attribute name="max_restarts"/>
+ </optional>
+ <optional>
+ <attribute name="restart_expire_time"/>
+ </optional>
+ <optional>
+ <attribute name="hypervisor"/>
+ </optional>
+ <optional>
+ <attribute name="hypervisor_uri"/>
+ </optional>
+ <optional>
+ <attribute name="migration_uri"/>
+ </optional>
+ </group>
+ </choice>
+ <optional>
+ <attribute name="__independent_subtree"/>
+ </optional>
+ <optional>
+ <attribute name="__enforce_timeouts"/>
+ </optional>
+ <optional>
+ <ref name="CHILDREN"/>
+ </optional>
+ </element>
+ </define>
+
+
+ <define name="SAPINSTANCE">
+ <element name="SAPInstance">
+ <!-- SAP instance resource agent -->
+ <choice>
+ <group>
+ <!-- rgmanager specific stuff -->
+ <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="START_WAITTIME"/>
+ </optional>
+ <optional>
+ <attribute name="AUTOMATIC_RECOVER"/>
+ </optional>
+ <optional>
+ <attribute name="PRE_START_USEREXIT"/>
+ </optional>
+ <optional>
+ <attribute name="POST_START_USEREXIT"/>
+ </optional>
+ <optional>
+ <attribute name="PRE_STOP_USEREXIT"/>
+ </optional>
+ <optional>
+ <attribute name="POST_STOP_USEREXIT"/>
+ </optional>
+ </group>
+ </choice>
+ <optional>
+ <attribute name="__independent_subtree"/>
+ </optional>
+ <optional>
+ <attribute name="__enforce_timeouts"/>
+ </optional>
+ <optional>
+ <ref name="CHILDREN"/>
+ </optional>
+ </element>
+ </define>
+
+
+ <define name="SAPDATABASE">
+ <element name="SAPDatabase">
+ <!-- SAP database resource agent -->
+ <choice>
+ <group>
+ <!-- rgmanager specific stuff -->
+ <attribute name="ref"/>
+ </group>
+ <group>
+ <attribute name="SID"/>
+ <optional>
+ <attribute name="DIR_EXECUTABLE"/>
+ </optional>
+ <attribute name="DBTYPE"/>
+ <optional>
+ <attribute name="NETSERVICENAME"/>
+ </optional>
+ <optional>
+ <attribute name="DBJ2EE_ONLY"/>
+ </optional>
+ <optional>
+ <attribute name="JAVA_HOME"/>
+ </optional>
+ <optional>
+ <attribute name="STRICT_MONITORING"/>
+ </optional>
+ <optional>
+ <attribute name="AUTOMATIC_RECOVER"/>
+ </optional>
+ <optional>
+ <attribute name="DIR_BOOTSTRAP"/>
+ </optional>
+ <optional>
+ <attribute name="DIR_SECSTORE"/>
+ </optional>
+ <optional>
+ <attribute name="DB_JARS"/>
+ </optional>
+ <optional>
+ <attribute name="PRE_START_USEREXIT"/>
+ </optional>
+ <optional>
+ <attribute name="POST_START_USEREXIT"/>
+ </optional>
+ <optional>
+ <attribute name="PRE_STOP_USEREXIT"/>
+ </optional>
+ <optional>
+ <attribute name="POST_STOP_USEREXIT"/>
+ </optional>
+ </group>
+ </choice>
+ <optional>
+ <attribute name="__independent_subtree"/>
+ </optional>
+ <optional>
+ <attribute name="__enforce_timeouts"/>
+ </optional>
+ <optional>
+ <ref name="CHILDREN"/>
+ </optional>
+ </element>
+ </define>
+
+
+ <define name="NAMED">
+ <element name="named">
+ <!-- Defines an instance of named server -->
+ <choice>
+ <group>
+ <!-- rgmanager specific stuff -->
+ <attribute name="ref"/>
+ </group>
+ <group>
+ <attribute name="name"/>
+ <optional>
+ <attribute name="config_file"/>
+ </optional>
+ <optional>
+ <attribute name="named_sdb"/>
+ </optional>
+ <optional>
+ <attribute name="named_working_dir"/>
+ </optional>
+ <optional>
+ <attribute name="named_options"/>
+ </optional>
+ <optional>
+ <attribute name="shutdown_wait"/>
+ </optional>
+ <optional>
+ <attribute name="service_name"/>
+ </optional>
+ </group>
+ </choice>
+ <optional>
+ <attribute name="__independent_subtree"/>
+ </optional>
+ <optional>
+ <attribute name="__enforce_timeouts"/>
+ </optional>
+ <optional>
+ <ref name="CHILDREN"/>
+ </optional>
+ </element>
+ </define>
+
+
+ <define name="ASEHAAGENT">
+ <element name="ASEHAagent">
+ <!-- Sybase ASE Failover Instance -->
+ <choice>
+ <group>
+ <!-- rgmanager specific stuff -->
+ <attribute name="ref"/>
+ </group>
+ <group>
+ <attribute name="name"/>
+ <attribute name="sybase_home"/>
+ <attribute name="sybase_ase"/>
+ <attribute name="sybase_ocs"/>
+ <attribute name="server_name"/>
+ <attribute name="login_file"/>
+ <attribute name="interfaces_file"/>
+ <attribute name="sybase_user"/>
+ <attribute name="shutdown_timeout"/>
+ <attribute name="start_timeout"/>
+ <attribute name="deep_probe_timeout"/>
+ </group>
+ </choice>
+ <optional>
+ <attribute name="__independent_subtree"/>
+ </optional>
+ <optional>
+ <attribute name="__enforce_timeouts"/>
+ </optional>
+ <optional>
+ <ref name="CHILDREN"/>
+ </optional>
+ </element>
+ </define>
+
+
+ <define name="FS">
+ <element name="fs">
+ <!-- Defines a file system mount. -->
+ <choice>
+ <group>
+ <!-- rgmanager specific stuff -->
+ <attribute name="ref"/>
+ </group>
+ <group>
+ <attribute name="name"/>
+ <attribute name="mountpoint"/>
+ <attribute name="device"/>
+ <optional>
+ <attribute name="fstype"/>
+ </optional>
+ <optional>
+ <attribute name="force_unmount"/>
+ </optional>
+ <optional>
+ <attribute name="quick_status"/>
+ </optional>
+ <optional>
+ <attribute name="self_fence"/>
+ </optional>
+ <optional>
+ <attribute name="nfslock"/>
+ </optional>
+ <optional>
+ <attribute name="fsid"/>
+ </optional>
+ <optional>
+ <attribute name="force_fsck"/>
+ </optional>
+ <optional>
+ <attribute name="options"/>
+ </optional>
+ </group>
+ </choice>
+ <optional>
+ <attribute name="__independent_subtree"/>
+ </optional>
+ <optional>
+ <attribute name="__enforce_timeouts"/>
+ </optional>
+ <optional>
+ <ref name="CHILDREN"/>
+ </optional>
+ </element>
+ </define>
+
+
+ <define name="ORACLEDB">
+ <element name="oracledb">
+ <!-- Oracle 10g Failover Instance -->
+ <choice>
+ <group>
+ <!-- rgmanager specific stuff -->
+ <attribute name="ref"/>
+ </group>
+ <group>
+ <attribute name="name"/>
+ <optional>
+ <attribute name="listener_name"/>
+ </optional>
+ <attribute name="user"/>
+ <attribute name="home"/>
+ <optional>
+ <attribute name="type"/>
+ </optional>
+ <optional>
+ <attribute name="vhost"/>
+ </optional>
+ </group>
+ </choice>
+ <optional>
+ <attribute name="__independent_subtree"/>
+ </optional>
+ <optional>
+ <attribute name="__enforce_timeouts"/>
+ </optional>
+ <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="SERVICE"/>
+ <ref name="IP"/>
+ <ref name="NFSCLIENT"/>
+ <ref name="NFSEXPORT"/>
+ <ref name="SCRIPT"/>
+ <ref name="NETFS"/>
+ <ref name="CLUSTERFS"/>
+ <ref name="SMB"/>
+ <ref name="APACHE"/>
+ <ref name="OPENLDAP"/>
+ <ref name="SAMBA"/>
+ <ref name="MYSQL"/>
+ <ref name="POSTGRES-8"/>
+ <ref name="TOMCAT-5"/>
+ <ref name="LVM"/>
+ <ref name="VM"/>
+ <ref name="SAPINSTANCE"/>
+ <ref name="SAPDATABASE"/>
+ <ref name="NAMED"/>
+ <ref name="ASEHAAGENT"/>
+ <ref name="FS"/>
+ <ref name="ORACLEDB"/>
+ <ref name="RESOURCEACTION"/>
+ </choice>
+ </zeroOrMore>
+ </define>
+
+ <define name="CHILDREN">
+ <zeroOrMore>
+ <choice>
+ <ref name="CHILD"/>
+ </choice>
+ </zeroOrMore>
+ </define>
+
+ <define name="RESOURCEACTION">
+ <zeroOrMore>
+ <element name="action">
+ <attribute name="name"/>
+ <optional>
+ <attribute name="depth"/>
+ </optional>
+ <optional>
+ <attribute name="interval"/>
+ </optional>
+ <optional>
+ <attribute name="timeout"/>
+ </optional>
+ </element>
+ </zeroOrMore>
+ </define>
+
+<!-- End autogenerated resources definitions -->
+<!--End of resource definitions-->
+
+<!-- begin node fence definitions -->
+
+ <define name="FENCE">
+ <element name="fence" rha:description="The fence element specifies how
+ a node is fenced. Its elements and attributes identify fence device
+ (or devices) to use and the parameters specific to each fence device
+ (for example, IP address and port number in an APC fence device)">
+ <zeroOrMore>
+ <element name="method" rha:description="Typically, there is a single
+ method used to fence each node (the name given to the method is
+ not significant). A method refers to a specific device listed in
+ the fencedevices section (a separate section from the clusternode
+ section), and then lists any node-specific parameters related
+ to using the device.">
+ <attribute name="name" rha:description="" rha:sample="apc123"/>
+ <zeroOrMore>
+ <ref name="DEVICE"/>
+ </zeroOrMore>
+ </element>
+ </zeroOrMore>
+ </element>
+ </define>
+
+ <define name="UNFENCE">
+ <element name="unfence" rha:description="">
+ <zeroOrMore>
+ <ref name="DEVICE"/>
+ </zeroOrMore>
+ </element>
+ </define>
+
+ <define name="DEVICE">
+ <element name="device" rha:description="">
+ <attribute name="name" rha:description="" rha:sample="">
+ <data type="IDREF"/>
+ </attribute>
+ <choice>
+ <!-- begin node fence specific devices -->
+
+ <!-- begin auto-generated device definitions -->
+ <!-- fence_alom -->
+ <group>
+ <optional>
+ <attribute name="action"/>
+ </optional>
+ <optional> <!-- lhh - compat -->
+ <attribute name="option"/>
+ </optional>
+ <attribute name="login"/>
+ <optional>
+ <attribute name="passwd"/>
+ </optional>
+ <optional>
+ <attribute name="passwd_script"/>
+ </optional>
+ <optional>
+ <attribute name="secure"/>
+ </optional>
+ <optional>
+ <attribute name="verbose"/>
+ </optional>
+ </group>
+
+ <!-- fence_apc -->
+ <group>
+ <optional>
+ <attribute name="action"/>
+ </optional>
+ <optional> <!-- lhh - compat -->
+ <attribute name="option"/>
+ </optional>
+ <optional>
+ <attribute name="passwd"/>
+ </optional>
+ <optional>
+ <attribute name="passwd_script"/>
+ </optional>
+ <optional>
+ <attribute name="secure"/>
+ </optional>
+ <attribute name="port"/>
+ <optional>
+ <attribute name="switch"/>
+ </optional>
+ <optional>
+ <attribute name="verbose"/>
+ </optional>
+ </group>
+
+ <!-- fence_bladecenter -->
+ <group>
+ <optional>
+ <attribute name="action"/>
+ </optional>
+ <optional> <!-- lhh - compat -->
+ <attribute name="option"/>
+ </optional>
+ <optional>
+ <attribute name="passwd"/>
+ </optional>
+ <optional>
+ <attribute name="passwd_script"/>
+ </optional>
+ <optional>
+ <attribute name="secure"/>
+ </optional>
+ <attribute name="port"/>
+ <optional>
+ <attribute name="identity_file"/>
+ </optional>
+ <optional>
+ <attribute name="verbose"/>
+ </optional>
+ </group>
+
+ <!-- fence_drac5 -->
+ <group>
+ <optional>
+ <attribute name="action"/>
+ </optional>
+ <optional> <!-- lhh - compat -->
+ <attribute name="option"/>
+ </optional>
+ <optional>
+ <attribute name="passwd"/>
+ </optional>
+ <optional>
+ <attribute name="passwd_script"/>
+ </optional>
+ <optional>
+ <attribute name="secure"/>
+ </optional>
+ <optional>
+ <attribute name="verbose"/>
+ </optional>
+ </group>
+
+ <!-- fence_eps -->
+ <group>
+ <optional>
+ <attribute name="action"/>
+ </optional>
+ <optional> <!-- lhh - compat -->
+ <attribute name="option"/>
+ </optional>
+ <optional>
+ <attribute name="login"/>
+ </optional>
+ <optional>
+ <attribute name="passwd"/>
+ </optional>
+ <optional>
+ <attribute name="passwd_script"/>
+ </optional>
+ <attribute name="port"/>
+ <optional>
+ <attribute name="verbose"/>
+ </optional>
+ </group>
+
+ <!-- fence_ilo -->
+ <group>
+ <optional>
+ <attribute name="action"/>
+ </optional>
+ <optional> <!-- lhh - compat -->
+ <attribute name="option"/>
+ </optional>
+ <optional>
+ <attribute name="passwd"/>
+ </optional>
+ <optional>
+ <attribute name="passwd_script"/>
+ </optional>
+ <optional>
+ <attribute name="ssl"/>
+ </optional>
+ <optional>
+ <attribute name="verbose"/>
+ </optional>
+ </group>
+
+ <!-- fence_ldom -->
+ <group>
+ <optional>
+ <attribute name="action"/>
+ </optional>
+ <optional> <!-- lhh - compat -->
+ <attribute name="option"/>
+ </optional>
+ <optional>
+ <attribute name="passwd"/>
+ </optional>
+ <optional>
+ <attribute name="passwd_script"/>
+ </optional>
+ <optional>
+ <attribute name="secure"/>
+ </optional>
+ <optional>
+ <attribute name="identity_file"/>
+ </optional>
+ <attribute name="port"/>
+ <optional>
+ <attribute name="verbose"/>
+ </optional>
+ </group>
+
+ <!-- fence_lpar -->
+ <group>
+ <optional>
+ <attribute name="action"/>
+ </optional>
+ <optional> <!-- lhh - compat -->
+ <attribute name="option"/>
+ </optional>
+ <optional>
+ <attribute name="passwd"/>
+ </optional>
+ <optional>
+ <attribute name="passwd_script"/>
+ </optional>
+ <optional>
+ <attribute name="secure"/>
+ </optional>
+ <optional>
+ <attribute name="partition"/>
+ </optional>
+ <optional>
+ <attribute name="managed"/>
+ </optional>
+ <optional>
+ <attribute name="verbose"/>
+ </optional>
+ </group>
+
+ <!-- fence_virsh -->
+ <group>
+ <optional>
+ <attribute name="action"/>
+ </optional>
+ <optional> <!-- lhh - compat -->
+ <attribute name="option"/>
+ </optional>
+ <optional>
+ <attribute name="passwd"/>
+ </optional>
+ <optional>
+ <attribute name="passwd_script"/>
+ </optional>
+ <optional>
+ <attribute name="secure"/>
+ </optional>
+ <optional>
+ <attribute name="identity_file"/>
+ </optional>
+ <attribute name="port"/>
+ <optional>
+ <attribute name="verbose"/>
+ </optional>
+ </group>
+
+ <!-- fence_vmware -->
+ <group>
+ <optional>
+ <attribute name="action"/>
+ </optional>
+ <optional> <!-- lhh - compat -->
+ <attribute name="option"/>
+ </optional>
+ <optional>
+ <attribute name="passwd"/>
+ </optional>
+ <optional>
+ <attribute name="passwd_script"/>
+ </optional>
+ <attribute name="port"/>
+ <optional>
+ <attribute name="exec"/>
+ </optional>
+ <optional>
+ <attribute name="vmware_type"/>
+ </optional>
+ <optional>
+ <attribute name="secure"/>
+ </optional>
+ <optional>
+ <attribute name="vmware_datacenter"/>
+ </optional>
+ <optional>
+ <attribute name="verbose"/>
+ </optional>
+ </group>
+
+ <!-- fence_wti -->
+ <group>
+ <optional>
+ <attribute name="action"/>
+ </optional>
+ <optional> <!-- lhh - compat -->
+ <attribute name="option"/>
+ </optional>
+ <optional>
+ <attribute name="login"/>
+ </optional>
+ <optional>
+ <attribute name="passwd"/>
+ </optional>
+ <optional>
+ <attribute name="passwd_script"/>
+ </optional>
+ <optional>
+ <attribute name="secure"/>
+ </optional>
+ <attribute name="port"/>
+ <optional>
+ <attribute name="verbose"/>
+ </optional>
+ </group>
+
+ <!-- fence_xvm -->
+ <group>
+ <optional>
+ <attribute name="debug"/>
+ </optional>
+ <optional>
+ <attribute name="ip_family"/>
+ </optional>
+ <optional>
+ <attribute name="multicast_address"/>
+ </optional>
+ <optional>
+ <attribute name="port"/>
+ </optional>
+ <optional>
+ <attribute name="multicast_ttl"/>
+ </optional>
+ <optional>
+ <attribute name="retrans"/>
+ </optional>
+ <optional>
+ <attribute name="auth"/>
+ </optional>
+ <optional>
+ <attribute name="hash"/>
+ </optional>
+ <optional>
+ <attribute name="key_file"/>
+ </optional>
+ <optional>
+ <attribute name="domain"/>
+ </optional>
+ <optional>
+ <attribute name="use_uuid"/>
+ </optional>
+ <optional>
+ <attribute name="option"/>
+ </optional>
+ <optional>
+ <attribute name="timeout"/>
+ </optional>
+ </group>
+ <!-- end auto-generated device definitions -->
+
+ <!-- begin non-generated device definitions -->
+ <!-- Brocade, Vixel, McData, SANBox2 -->
+ <group>
+ <attribute name="port"/>
+ <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>
+ <!-- end non-generated device definitions -->
+
+ <!-- end node fence specific devices -->
+ </choice>
+ </element>
+ </define>
+<!-- end node fence definitions -->
+
+</grammar>
diff --git a/make/install.mk b/make/install.mk
index f493f07..5bd30d6 100644
--- a/make/install.mk
+++ b/make/install.mk
@@ -78,3 +78,7 @@ ifdef PKGCONF
install -d ${pkgconfigdir}
install -m644 ${PKGCONF} ${pkgconfigdir}
endif
+ifdef SHAREDIRT
+ install -d ${sharedir}
+ install -m644 ${SHAREDIRT} ${sharedir}
+endif
diff --git a/make/uninstall.mk b/make/uninstall.mk
index 49e47bb..396e61f 100644
--- a/make/uninstall.mk
+++ b/make/uninstall.mk
@@ -47,3 +47,6 @@ endif
ifdef PKGCONF
${UNINSTALL} ${PKGCONF} ${pkgconfigdir}
endif
+ifdef SHAREDIRT
+ ${UNINSTALL} ${SHAREDIRT} ${sharedir}
+endif
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2009-09-03 12:34 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-09-03 12:34 cluster: STABLE3 - config: preliminary support for config validation Fabio M. Di Nitto
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).