fence-agents: master - fence_scsi: remove scsi_reserve and scsi_reserve_notify
David Teigland
teigland@fedoraproject.org
Thu Mar 5 19:41:00 GMT 2009
Gitweb: http://git.fedorahosted.org/git/fence-agents.git?p=fence-agents.git;a=commitdiff;h=2366224b4607a5780d5ffe351c6dc4de289de7fd
Commit: 2366224b4607a5780d5ffe351c6dc4de289de7fd
Parent: 8d3128c05779304263e9e4e885610c49d2f61bc8
Author: David Teigland <teigland@redhat.com>
AuthorDate: Thu Mar 5 13:31:25 2009 -0600
Committer: David Teigland <teigland@redhat.com>
CommitterDate: Thu Mar 5 13:38:16 2009 -0600
fence_scsi: remove scsi_reserve and scsi_reserve_notify
The fence_scsi agent itself does this stuff now with unfencing.
Signed-off-by: David Teigland <teigland@redhat.com>
---
fence/agents/scsi/Makefile | 14 +--
fence/agents/scsi/scsi_reserve.in | 337 ------------------------------
fence/agents/scsi/scsi_reserve_notify.in | 5 -
3 files changed, 1 insertions(+), 355 deletions(-)
diff --git a/fence/agents/scsi/Makefile b/fence/agents/scsi/Makefile
index 40efe37..969e369 100644
--- a/fence/agents/scsi/Makefile
+++ b/fence/agents/scsi/Makefile
@@ -1,19 +1,7 @@
include ../../../make/defines.mk
-TARGET= fence_scsi fence_scsi_test scsi_reserve_notify scsi_reserve
+TARGET= fence_scsi fence_scsi_test
SBINDIRT=fence_scsi fence_scsi_test
-INITDT= scsi_reserve
-NOTIFYD= scsi_reserve_notify
include $(OBJDIR)/make/fencebuild.mk
-$(NOTIFYD): $(S)/$(NOTIFYD).in
- cat $(S)/$(NOTIFYD).in | sed \
- -e 's#@INITDT@#${initddir}#g' \
- > $(NOTIFYD)
-
-$(INITDT): $(S)/$(INITDT).in
- cat $(S)/$(INITDT).in | sed \
- -e 's#@SBINDIR@#${sbindir}#g' \
- -e 's#@INITDDIR@#${initddir}#g' \
- > $(INITDT)
diff --git a/fence/agents/scsi/scsi_reserve.in b/fence/agents/scsi/scsi_reserve.in
deleted file mode 100644
index cb30444..0000000
--- a/fence/agents/scsi/scsi_reserve.in
+++ /dev/null
@@ -1,337 +0,0 @@
-#!/bin/bash
-#
-# scsi_reserve persistent reservation service for lvm
-#
-# chkconfig: - 25 75
-# description: start/stop persistent reservation service for lvm
-
-### BEGIN INIT INFO
-# Provides: scsi_reserve
-# Required-Start: cman
-# Required-Stop: cman
-# Default-Start:
-# Default-Stop:
-# Short-Description: start/stop persistent reservation service for lvm
-# Description: start/stop persistent reservation service for lvm
-### END INIT INFO
-
-# set secure PATH
-PATH="/bin:/usr/bin:/sbin:/usr/sbin:@SBINDIR@"
-
-success()
-{
- echo -ne "[ OK ]\r"
-}
-
-failure()
-{
- echo -ne "[FAILED]\r"
-}
-
-# rpm based distros
-if [ -d /etc/sysconfig ]; then
- [ -f @INITDDIR@/functions ] && . @INITDDIR@/functions
- [ -f /etc/sysconfig/cluster ] && . /etc/sysconfig/cluster
- [ -f /etc/sysconfig/scsi_reserve ] && . /etc/sysconfig/scsi_reserve
- [ -z "$LOCK_FILE" ] && LOCK_FILE="/var/lock/subsys/scsi_reserve"
-fi
-
-# deb based distros
-if [ -d /etc/default ]; then
- [ -f /etc/default/cluster ] && . /etc/default/cluster
- [ -f /etc/default/scsi_reserve ] && . /etc/default/scsi_reserve
- [ -z "$LOCK_FILE" ] && LOCK_FILE="/var/lock/scsi_reserve"
-fi
-
-# check that cman is running
-#
-if ! cman_tool status > /dev/null 2>&1; then
- logger -t scsi_reserve \
- "[error] cman does not appear to be running"
- exit 1
-fi
-
-# check if cluster is configured for fence_scsi
-#
-if ! fence_scsi_test -t fence ; then
- logger -t scsi_reserve \
- "[error] cluster not configured for scsi reservations"
- exit 1
-fi
-
-# check for sg_persist command provided by sg3_utils package
-#
-if ! sg_persist -V > /dev/null 2>&1; then
- logger -t scsi_reserve \
- "[error] unable to exec sg_persist"
- exit 1
-fi
-
-# get physical volumes (devices) that are part of cluster volumes
-#
-scsi_devices=$( vgs --config 'global { locking_type = 0 }' \
- --noheadings -o vg_attr,pv_name 2> /dev/null \
- | awk ' $1 ~ /.*c$/ { print $2 } ' )
-
-if [ -z "$scsi_devices" ] ; then
- logger -t scsi_reserve \
- "[error] did not find devices in cluster volumes"
- exit 1
-fi
-
-# get the cluster id from cman
-#
-cluster_id=$( cman_tool status | grep -i "Cluster ID" \
- | awk -F": " '{ print $2 }' )
-
-if [ -z "$cluster_id" ] ; then
- logger -s -t scsi_reserve \
- "[error] unable to determine cluster id"
- exit 1
-fi
-
-# get the node id from cman
-#
-node_id=$( cman_tool status | grep -i "Node ID" \
- | awk -F": " '{ print $2 }' )
-
-if [ -z "$node_id" ] ; then
- logger -t scsi_reserve \
- "[error] unable to determine node id"
- exit 1
-fi
-
-# generate unique key using cluster_id and node_id
-#
-key=$( printf "%x%.4x" $cluster_id $node_id )
-
-if [ -z "$key" ] ; then
- logger -t scsi_reserve \
- "[error] unable to generate key"
- exit 1
-fi
-
-################################################################################
-
-case $1 in
-
- start)
-
- error=0
- count=0
-
- echo -n "Starting scsi_reserve:"
-
- for dev in $scsi_devices
- do
- # check if our key is already resgistered with this device
- #
- if sg_persist -n -d $dev -i -k | grep -qiE "^[[:space:]]*0x$key" ; then
- logger -t scsi_reserve \
- "[info] already registered with $dev (key=0x$key)"
- continue
- fi
-
- # create the scsi registration
- #
- if ! sg_persist -n -d $dev -o -I -S $key > /dev/null 2>&1; then
- logger -t scsi_reserve \
- "[error] unable to register device $dev (key=0x$key)"
- : $[ count = $count + 1 ]
- error=1
- else
- logger -t scsi_reserve \
- "[info] registered with device $dev (key=0x$key)"
- fi
-
- # check to see if reservation already exists
- #
- if sg_persist -n -d $dev -i -r | grep -qiE "^[[:space:]]*Key=0x" ; then
- logger -t scsi_reserve \
- "[info] reservation already exists on $dev"
- continue
- fi
-
- # create the scsi reservation
- #
- if ! sg_persist -n -d $dev -o -R -K $key -T 5 > /dev/null 2>&1; then
- logger -t scsi_reserver \
- "[error] unable to create reservation on $dev (key=0x$key)"
- : $[ count = $count + 1 ]
- error=1
- fi
- done
-
- # leave fence domain if any errors occured during registration
- #
- if [ $error -eq 0 ] ; then
- success
- else
- logger -t scsi_reserve \
- "[info] $count errors during registration"
- logger -t scsi_reserve \
- "[info] leaving the fence domain"
- fence_tool leave
- failure
- fi
-
- touch $LOCK_FILE
-
- echo
-
- ;; # end of start
-
- stop)
-
- error=0
- count=0
-
- echo -n "Stopping scsi_reserve:"
-
- for dev in $scsi_devices
- do
- # get list of keys registered with this device
- #
- key_list=$( sg_persist -n -d $dev -i -k | grep -iE "^[[:space:]]*0x" )
-
- # check that our key is registered with this device
- #
- if ! sg_persist -d $dev -i -k | grep -qiE "^[[:space:]]*0x$key" ; then
- logger -t scsi_reserve \
- "[info] not registered with $dev (key=0x$key)"
- continue
- fi
-
- # check if our key is the reservation holder
- #
- if sg_persist -n -d $dev -i -r 2>/dev/null | grep -qiE "$key" ; then
- if echo "$key_list" | grep -qivE "$key" ; then
- logger -t scsi_reserve \
- "[error] unable to remove registration on $dev (key=0x$key)"
- : $[ count = $count + 1 ]
- error=1
- continue
- fi
- fi
-
- # remove registration for this device
- #
- if ! sg_persist -n -d $dev -o -G -K $key -S 0 > /dev/null 2>&1; then
- logger -t scsi_reserve \
- "[error] failed to remove registration on $dev (key=0x$key)"
- : $[ count = $count + 1 ]
- error=1
- else
- logger -t scsi_reserve \
- "[info] removed registration on $dev (key=0x$key)"
- fi
-
- done
-
- # report success or failure
- #
- if [ $error -eq 0 ] ; then
- success
- else
- logger -t scsi_reserve \
- "[info] $count errors occured during unregistration"
- failure
- fi
-
- rm -f $LOCK_FILE
-
- echo
-
- ;; # end of stop
-
- restart)
-
- error=0
-
- echo -n "Retarting scsi_reserve:"
-
- for dev in $scsi_devices
- do
- # recreate the scsi registration
- #
- if ! sg_persist -n -d $dev -o -I -S $key > /dev/null 2>&1; then
- logger -t scsi_reserve \
- "[error] unable to register device $dev (key=0x$key)"
- : $[ count = $count + 1 ]
- error=1
- else
- logger -t scsi_reserve \
- "[info] registered with device $dev (key=0x$key)"
- fi
-
- # check to see if reservation already exists
- #
- if sg_persist -n -d $dev -i -r | grep -qiE "^[[:space:]]*Key=0x" ; then
- logger -t scsi_reserve \
- "[info] reservation already exists on $dev"
- continue
- fi
-
- # recreate the scsi reservation
- #
- if ! sg_persist -n -d $dev -o -R -K $key -T 5 > /dev/null 2>&1; then
- logger -t scsi_reserver \
- "[error] unable to create reservation on $dev (key=0x$key)"
- : $[ count = $count + 1 ]
- error=1
- fi
- done
-
- # leave fence domain if any errors occured during registration
- #
- if [ $error -eq 0 ] ; then
- success
- else
- logger -t scsi_reserve \
- "[info] $count errors during registration"
- logger -t scsi_reserve \
- "[info] leaving the fence domain"
- fence_tool leave
- failure
- fi
-
- echo
-
- ;; # end of restart
-
- status)
-
- error=0
-
- for dev in $scsi_devices
- do
- if sg_persist -n -d $dev -i -k | grep -qiE "$key" ; then
- devices[${#devices[@]}]=$dev
- fi
- done
-
- if [ -z "$devices" ] ; then
- echo "No registered devices found."
- else
- echo "Found ${#devices[@]} registered device(s):"
-
- for i in "${devices[@]}"
- do
- echo $i
- done
- fi
-
- ;; # end of status
-
- restart|reload)
- $0 stop
- $0 start
- ;;
-
- *)
- echo $"Usage: $0 {start|stop|restart|reload|status}"
- exit 1
-
-esac
-
-exit $error
diff --git a/fence/agents/scsi/scsi_reserve_notify.in b/fence/agents/scsi/scsi_reserve_notify.in
deleted file mode 100644
index ac6c3f4..0000000
--- a/fence/agents/scsi/scsi_reserve_notify.in
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/bash
-
-[ "$CMAN_NOTIFICATION" = "CMAN_REASON_CONFIG_UPDATE" ] && @INITDT@/scsi_reserve start
-
-exit 0
More information about the Cluster-cvs
mailing list