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