#!/bin/ksh # IBM_PROLOG_BEGIN_TAG # This is an automatically generated prolog. # # 61haes_r714 src/43haes/lib/libHSS/HSS2107/rsRemoveTask.sh 1.1 # # Licensed Materials - Property of IBM # # COPYRIGHT International Business Machines Corp. 2011 # 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 # @(#)07 1.1 src/43haes/lib/libHSS/HSS2107/rsRemoveTask.sh, hacmp.sap, 61haes_r714 11/28/11 15:19:26 ##-------------------------------------------------------------------# ## %PS ## ## Licensed Internal Code - Property of IBM ## ## 2105/2107 Licensed Internal Code ## ## (C) Copyright IBM Corp. 1999, 2003 All Rights Reserved. ## ## US Government Users Restricted Rights - Use, duplication or ## disclosure restricted by GSA ADP Schedule Contract with IBM Corp. ## %EPS ## ## COMPONENT_NAME (RAS WUI) ## ##-------------------------------------------------------------------# ## ## Filename: rsRemoveTask.sh ## ## Subsystem: RAS WUI ## ## Input: rsRemoveTask.sh -v -P DSclipath -u username -p password -s serverName -b backup_server -d DS_dev_ID -S sequencenumber volumepair ## ## -v = verbose ## -P = DSclipath ## -u = username ## -p = password ## -s = name of copy services server ## -b = name of backup copy services server ## -d = DS 8000 storage image ID ## -S = sequencenumber ## volumepair = pair|pairs of volumes with fc relation ## ## Description: remove flash Copy relations on DS ## ##-------------------------------------------------------------------# OS=`uname | cut -c 1-3` ##--------------------------------------------------------------------# ## Set INSTALL system variable ##--------------------------------------------------------------------# export INSTALL=/usr/opt/ibm/ibmsap/connectors/HSS2107 ##-------------------------------------------------------------------# ## Set defaults ##-------------------------------------------------------------------# VERBOSE= DSCLIPATH= SERVERNAME= PRIMARY_SERVER= BACKUP_SERVER= USERNAME= PASSWORD= DS_DEV_ID= SEQNUMBER= VOLUMEPAIR= RC= OSVERSION= ##-------------------------------------------------------------------# ## Set up error message codes ##-------------------------------------------------------------------# NO_INSTALL_CODE=62 NO_CFG_FILE_CODE=63 ##-------------------------------------------------------------------# ## Assign COMMAND for messaging ##-------------------------------------------------------------------# RSCOMMAND=rsRemoveTask #-------------------------------------------------------------------# ## Set default BLANK values ##-------------------------------------------------------------------# CFGFILE=CLI.CFG CFGFILE=$INSTALL/$CFGFILE ##-------------------------------------------------------------------# ## Test for $INSTALL variable ##-------------------------------------------------------------------# if [[ -z $INSTALL ]];then echo "$RSCOMMAND: No value is specified for the system variable." exit $NO_INSTALL_CODE fi ##-------------------------------------------------------------------# ## Process arguments ##-------------------------------------------------------------------# USAGE='usage: rsRemoveTask.sh [-v] -P DSclipath -u username & -p password -s primaryserver -b backupserver -d DS_dev_ID -S sequencenumber volumepair' if [[ -z $1 ]]; then echo "rsRemoveTask: No paramaters specified" echo $USAGE exit 21 fi while getopts ":P:s:u:p:b:d:S:v" opt; do if [[ $OPTARG = -* ]]; then echo "$RSCOMMAND: Missing argument for -$opt" echo $USAGE exit 20 fi case $opt in P ) DSCLIPATH=$OPTARG;; u ) USERNAME=$OPTARG;; p ) PASSWORD=$OPTARG;; s ) PRIMARY_SERVER=$OPTARG;; b ) BACKUP_SERVER=$OPTARG;; d ) DS_DEV_ID=$OPTARG;; S ) SEQNUMBER=$OPTARG;; v ) VERBOSE=-v;; \? ) echo "$RSCOMMAND: Invalid parameter specified" echo $USAGE exit 19 esac done shift $(($OPTIND - 1)) while [[ ! -z $1 ]]; do if [[ $1 = - || $1 = v || $1 = P || $1 = u || $1 = p || $1 = s || $1 = b || $1 = d || $1 = S ]]; then echo "$RSCOMMAND: Invalid parameter specified" echo $USAGE exit 19 fi if [[ -z $VOLUMEPAIR ]]; then VOLUMEPAIR=$1 else VOLUMEPAIR="$VOLUMEPAIR $1" fi shift done if [[ -z $PRIMARY_SERVER && -z $BACKUP_SERVER ]]; then echo "$RSCOMMAND: No primary or backup server name specified" exit 3 fi if [[ -z $VOLUMEPAIR ]]; then echo "$RSCOMMAND: No volume pair specified" exit 4 fi ##-------------------------------------------------------------------# ## Set-up command options ##-------------------------------------------------------------------# ##-------------------------------------------------------------------# ## Test Connections if only Primary Server is given ##-------------------------------------------------------------------# if [[ ! -z $PRIMARY_SERVER && -z $BACKUP_SERVER ]];then SNAME="$PRIMARY_SERVER" $DSCLIPATH/dscli -user $USERNAME -passwd $PASSWORD -hmc1 $SNAME lssi 2>&1 > /dev/null RC=$? if [[ $RC -ne 0 ]];then echo "$RSCOMMAND: The primary server is down and there is no backup server specified." echo " The task is not completed." exit 41 elif [[ $RC -eq 0 ]]; then SERVERNAME=$PRIMARY_SERVER fi fi ##-------------------------------------------------------------------# ## Test Connections if only Backup Server is given ##-------------------------------------------------------------------# if [[ -z $PRIMARY_SERVER && ! -z $BACKUP_SERVER ]];then SNAME="$BACKUP_SERVER" $DSCLIPATH/dscli -user $USERNAME -passwd $PASSWORD -hmc1 $SNAME lssi 2>&1 > /dev/null RC=$? if [[ $RC -ne 0 ]];then echo "$RSCOMMAND: The backup server is down and there is no primary server specified." echo " The task is not completed." exit 45 elif [[ $RC -eq 0 ]]; then SERVERNAME=$BACKUP_SERVER fi fi ##-------------------------------------------------------------------# ## Test Connections if both of Primary and Backup Server is given ##-------------------------------------------------------------------# if [[ ! -z $PRIMARY_SERVER && ! -z $BACKUP_SERVER ]];then SNAME="$PRIMARY_SERVER" $DSCLIPATH/dscli -user $USERNAME -passwd $PASSWORD -hmc1 $SNAME lssi 2>&1 > /dev/null RC=$? if [[ $RC -ne 0 ]]; then if [[ ! -z $VERBOSE ]]; then echo "$RSCOMMAND: The primary server is down, trying the specified backup server ..." fi SNAME="$BACKUP_SERVER" $DSCLIPATH/dscli -user $USERNAME -passwd $PASSWORD -hmc1 $SNAME lssi 2>&1 > /dev/null RC=$? if [[ $RC -ne 0 ]]; then echo "$RSCOMMAND: The primary and backup server are down. The task is not completed." exit 42 elif [[ $RC -eq 0 ]]; then if [[ ! -z $VERBOSE ]]; then echo "$RSCOMMAND: The task will be run off the backup server." fi SERVERNAME=$BACKUP_SERVER fi elif [[ $RC -eq 0 ]]; then SERVERNAME=$PRIMARY_SERVER fi fi ##-------------------------------------------------------------------# ## execute DScli command and remove all volume pairs with sequence number ##-------------------------------------------------------------------# if [[ $VERBOSE != "-v" ]]; then $DSCLIPATH/dscli -user $USERNAME -passwd $PASSWORD -hmc1 $SERVERNAME rmflash -dev $DS_DEV_ID -quiet -seqnum $SEQNUMBER $VOLUMEPAIR else echo $RSCOMMAND: executing $DSCLIPATH/dscli -user $USERNAME -passwd $PASSWORD -hmc1 $SERVERNAME rmflash -dev $DS_DEV_ID -quiet -seqnum $SEQNUMBER $VOLUMEPAIR $DSCLIPATH/dscli -user $USERNAME -passwd $PASSWORD -hmc1 $SERVERNAME rmflash -dev $DS_DEV_ID -quiet -seqnum $SEQNUMBER $VOLUMEPAIR fi ##-------------------------------------------------------------------# ## Quit ##-------------------------------------------------------------------# RC=$? exit $RC