#!/bin/ksh # IBM_PROLOG_BEGIN_TAG # This is an automatically generated prolog. # # 61haes_r714 src/43haes/usr/sbin/cluster/events/utils/cl_tape_resource_release.sh 1.13 # # Licensed Materials - Property of IBM # # COPYRIGHT International Business Machines Corp. 1999,2008 # All Rights Reserved # # US Government Users Restricted Rights - Use, duplication or # disclosure restricted by GSA ADP Schedule Contract with IBM Corp. # # IBM_PROLOG_END_TAG # @(#)84 1.13 src/43haes/usr/sbin/cluster/events/utils/cl_tape_resource_release.sh, hacmp.sharedtape, 61haes_r714 4/24/08 19:21:51 ######################################################################### # # COMPONENT_NAME: EVENTS # # FUNCTIONS: none # ######################################################################### ######################################################################### # # # Name: cl_tape_resource_release # # # # Description: This script is called in order to # # execute a 'stop' script (if specified) # # and perform a SCSI 'release' # # on a specified tape device # # for a given tape resource. # # # # Called by: cl_tape_resource_release_multi # # # # Calls to: cltape_resource_release # # tape-stop script specified on command line # # # # Arguments: tape_resource_list # # tape_stop_script # # # # Returns: 0 success # # 1 failure # # 2 bad argument # # # ######################################################################### ######################################################################### # # Main Starts Here # ######################################################################### [ "$VERBOSE_LOGGING" = "high" ] && set -x PROGNAME=$(basename ${0}) PATH="$($(dirname ${0})/../../utilities/cl_get_path all)" HA_DIR="$(cl_get_path)" export PATH STATUS=0 if [ $# -ne 1 -a $# -ne 2 ] then cl_echo 6221 "Usage: $PROGNAME tape_device_name [tape_stop_script]\n" $PROGNAME exit 2 fi PROC_RES=false # if JOB_TYPE is set, and it doesn't equal to "GROUP", then # we are processing for process_resources if [[ ${JOB_TYPE:-0} != 0 && $JOB_TYPE != "GROUP" ]]; then PROC_RES=true fi set -u TAPE_DEVICE_NAME=$1 if [ $# -eq 2 ] then TAPE_STOP_SCRIPT=$2 else TAPE_STOP_SCRIPT= fi # IFF there is a tape-stop script, # execute # If unsuccessful, # log an error and return status. # if [ ! -z "${TAPE_STOP_SCRIPT}" ] then $TAPE_STOP_SCRIPT $TAPE_DEVICE_NAME STATUS=$? if [ $STATUS -ne 0 ] then cl_log 6222 \ "Tape stop script '${TAPE_STOP_SCRIPT}' for '${TAPE_DEVICE_NAME}' returned ${STATUS}" \ $TAPE_STOP_SCRIPT $TAPE_DEVICE_NAME $STATUS cl_RMupdate resource_error $TAPE_DEVICE_NAME $PROGNAME if [[ $PROC_RES = true ]]; then STATUS=11 fi exit $STATUS fi fi # Execute cltape_resource_release -f -d # i.e. do a forced release of the tape device. # If unsuccessful, # log an error and return status. # cltime cltape_resource_release -f -d $TAPE_DEVICE_NAME STATUS=$? if [ $STATUS -ne 0 ] then cl_log 6223 \ "cltape_resource_release returned ${STATUS}" $STATUS cl_RMupdate resource_error $TAPE_DEVICE_NAME $PROGNAME if [[ $PROC_RES = true ]]; then STATUS=11 fi exit $STATUS fi # Return success. # exit 0