public inbox for cluster-cvs@sourceware.org help / color / mirror / Atom feed
From: "Fabio M. Di Nitto" <fabbione@fedoraproject.org> To: cluster-cvs-relay@redhat.com Subject: cluster: STABLE3 - config: preliminary support for config validation Date: Thu, 03 Sep 2009 12:34:00 -0000 [thread overview] Message-ID: <20090903123309.0AF9A1201A8@lists.fedorahosted.org> (raw) 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
reply other threads:[~2009-09-03 12:34 UTC|newest] Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20090903123309.0AF9A1201A8@lists.fedorahosted.org \ --to=fabbione@fedoraproject.org \ --cc=cluster-cvs-relay@redhat.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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).