commit c4dbd04e08080515c797258f561453acc4bbefb8 Author: Ryan O'Hara <rohara@redhat.com> Date: Mon Oct 12 09:30:08 2009 -0500 CMAN: scsi_reserve init script correctly report failures This patch adds the use of the 'failure' function to the common code (portions of script run for every operation) such that it correctly reports failures. rhbz#514260 diff --git a/fence/agents/scsi/scsi_reserve b/fence/agents/scsi/scsi_reserve index 3662b02..2f10abc 100755 --- a/fence/agents/scsi/scsi_reserve +++ b/fence/agents/scsi/scsi_reserve @@ -8,17 +8,53 @@ . /etc/init.d/functions +case $1 in + + start) + echo -n "Starting scsi_reserve:" + ;; + + stop) + echo -n "Stopping scsi_reserve:" + ;; + + restart) + echo -n "Restarting scsi_reserve:" + ;; + + status) + ;; + + *) + echo $"Usage: $0 {start|stop|restart|status}" + exit 1 + ;; + +esac + # read in config file if it exists # if [ -f /etc/sysconfig/scsi_reserve ] ; then . /etc/sysconfig/scsi_reserve fi +# check for sg_persist command provided by sg3_utils package +# +if ! sg_persist -V &> /dev/null ; then + logger -t scsi_reserve \ + "[error] unable to exec sg_persist" + failure + echo + 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" + failure + echo exit 1 fi @@ -27,14 +63,8 @@ fi if ! fence_scsi_test -t nodes ; then logger -t scsi_reserve \ "[error] cluster must define nodeid for all nodes" - exit 1 -fi - -# check for sg_persist command provided by sg3_utils package -# -if ! sg_persist -V &> /dev/null ; then - logger -t scsi_reserve \ - "[error] unable to exec sg_persist" + failure + echo exit 1 fi @@ -43,6 +73,8 @@ fi if ! cman_tool status &> /dev/null ; then logger -t scsi_reserve \ "[error] cman does not appear to be running" + failure + echo exit 1 fi @@ -56,6 +88,7 @@ pv_devices=$( vgs --noheadings --options vg_attr,pv_name \ if [ -z "$pv_devices" ] ; then logger -t scsi_reserve \ "[error] did not find devices in cluster volumes" + failure exit 1 fi @@ -78,8 +111,9 @@ do dm_devices="$dm_devices $( ls /sys/block/${pv_dev:5}/slaves/ )" else logger -t scsi_reserve \ - "[error] $dev is not a multipath device" - exit 1 + "[error] $dev is not a multipath device" + failure + exit 1 fi else sg_devices="$sg_devices $pv_dev" @@ -99,6 +133,7 @@ cluster_id=$( cman_tool status | grep -i "Cluster ID" \ if [ -z "$cluster_id" ] ; then logger -s -t scsi_reserve \ "[error] unable to determine cluster id" + failure exit 1 fi @@ -110,6 +145,7 @@ node_id=$( cman_tool status | grep -i "Node ID" \ if [ -z "$node_id" ] ; then logger -t scsi_reserve \ "[error] unable to determine node id" + failure exit 1 fi @@ -120,6 +156,7 @@ key=$( printf "%x%.4x" $cluster_id $node_id ) if [ -z "$key" ] ; then logger -t scsi_reserve \ "[error] unable to generate key" + failure exit 1 fi @@ -132,7 +169,7 @@ case $1 in error=0 count=0 - echo -n "Starting scsi_reserve:" + # echo -n "Starting scsi_reserve:" for dev in $sg_devices do @@ -194,7 +231,7 @@ case $1 in error=0 count=0 - echo -n "Stopping scsi_reserve:" + # echo -n "Stopping scsi_reserve:" for dev in $sg_devices do @@ -242,7 +279,7 @@ case $1 in error=0 count=0 - echo -n "Retarting scsi_reserve:" + # echo -n "Restarting scsi_reserve:" for dev in $sg_devices do