File zfcp_disk_configure of Package s390-tools.10760

#!/bin/sh
#
# zfcp_disk_configure
#
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# Configures a zfcp SCSI disk by calling the IBM-provided chzdev command.
# Whereas this script used to validate the parameters provided to it,
# we now rely on chzdev to do that instead. The script is intended only
# as a "translation layer" to provide backward compatability for older
# scripts and tools that invoke it.
#
# Usage:
#   zfcp_disk_configure <ccwid> <wwpn> <lun> <online>
#
#	ccwid = x.y.ssss where
#		x is always 0 until IBM creates something that uses that number
#		y is the logical channel subsystem (lcss) number. Most often
#                 this is 0, but it could be non-zero
#		ssss is the four digit subchannel address of the device, in
#                    hexidecimal, with leading zeros.
#	online = 0 to take the device offline
#		 1 to bring the device online
#
# Return values:
#   Return codes are determined by the chzdev command.
#

mesg () {
    echo "$@"
}

debug_mesg () {
    case "${DEBUG}" in
	yes) mesg "$@" ;;
	*) ;;
    esac
}

usage(){
  echo "Usage: ${0}  <ccwid> <wwpn> <lun> <online>"
  echo "	ccwid = x.y.ssss where"
  echo "		x is always 0 until IBM creates something that uses that number"
  echo "		y is the logical channel subsystem (lcss) number. Most often"
  echo "                this is 0, but it could be non-zero"
  echo "		ssss is the four digit subchannel address of the device, in"
  echo "                   hexidecimal, with leading zeros."
  echo "	online = 0 to take the device offline"
  echo "		 1 to bring the device online"
}

if [ "${DEBUG}" != "yes" ]; then
  DEBUG="no"
fi

CCW_CHAN_ID=${1}
FCP_WWPN="${2}"
FCP_LUN="${3}"
ON_OFF=${4}
# normalise to lower case
FCP_WWPN=$(echo ${FCP_WWPN} | tr "A-Z" "a-z")
FCP_LUN=$(echo ${FCP_LUN} | tr "A-Z" "a-z")

if [ "${ON_OFF}" == 0 ]; then
  debug_mesg "chzdev -d zfcp-lun --no-root-update ${CCW_CHAN_ID}:${FCP_WWPN}:${FCP_LUN}"
  chzdev -d zfcp-lun --no-root-update ${CCW_CHAN_ID}:${FCP_WWPN}:${FCP_LUN}
elif [ "${ON_OFF}" == 1 ]; then
  debug_mesg "chzdev -e zfcp-lun --no-root-update ${CCW_CHAN_ID}:${FCP_WWPN}:${FCP_LUN}"
  chzdev -e zfcp-lun --no-root-update ${CCW_CHAN_ID}:${FCP_WWPN}:${FCP_LUN}
else mesg "You must specify a 0 or a 1 for the online/offline attribute."
     usage
     exit 1
fi