/usr/lib/stonith/plugins/external/xen0-ha is in cluster-glue 1.0.12-5.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | #!/bin/bash
#
# This STONITH script integrates a cluster running within DomUs
# with the CRM/Pacemaker cluster running in Dom0.
#
# Author: Lars Marowsky-Bree
# Copyright: 2008 Lars Marowsky-Bree
# License: GNU General Public License (GPL)
#
SSH_COMMAND="/usr/bin/ssh -q -x -n"
HVM_HELPER="/usr/lib/stonith/plugins/xen0-ha-dom0-stonith-helper"
# Rewrite the hostlist to accept "," as a delimeter for hostnames too.
hostlist=`echo $hostlist | tr ',' ' '`
# Runs a command on the host, waiting for it to return
RunHVMCommand() {
$SSH_COMMAND $dom0_cluster_ip "$HVM_HELPER $1 $2 $stop_timeout"
}
# Main code
case $1 in
gethosts)
echo $hostlist
exit 0
;;
on|off|reset|status)
RunHVMCommand $1 $2
exit $?
;;
getconfignames)
echo "hostlist dom0_cluster_ip timeout"
exit 0
;;
getinfo-devid)
echo "xen0-ha DomU/Dom0 device"
exit 0
;;
getinfo-devname)
echo "xen0-ha DomU/Dom0 external device"
exit 0
;;
getinfo-devdescr)
echo "Allows STONITH to control DomUs managed by a CRM/Pacemaker Dom0."
echo "Requires Xen + CRM/Pacemaker at both layers."
echo "Proof-of-concept code!"
exit 0
;;
getinfo-devurl)
echo "http://linux-ha.org/wiki/DomUClusters"
exit 0
;;
getinfo-xml)
cat << SSHXML
<parameters>
<parameter name="hostlist" unique="1" required="1">
<content type="string" />
<shortdesc lang="en">
Hostlist
</shortdesc>
<longdesc lang="en">
The list of controlled DomUs, separated by whitespace.
These must be configured as Xen RA resources with a name with a matching
id.
For example: "xen-1 xen-2 xen-3"
</longdesc>
</parameter>
<parameter name="dom0_cluster_ip" unique="1" required="1">
<content type="string" />
<shortdesc lang="en">
Dom0 cluster ip
</shortdesc>
<longdesc lang="en">
The cluster IP address associated with Dom0.
Root user must be able to ssh to that node.
</longdesc>
</parameter>
<parameter name="stop_timeout">
<content type="integer" />
<shortdesc lang="en">
Stop timeout
</shortdesc>
<longdesc lang="en">
The timeout, in seconds, for which to wait for Dom0 to report that the
DomU has been stopped, before aborting with a failure.
</longdesc>
</parameter>
</parameters>
SSHXML
exit 0
;;
*)
exit 1
;;
esac
|