#!/bin/sh # # zfcp_host_configure # # Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # Configures a zfcp host adapter 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_host_configure # # ccwid = x.y.ssss where # x is always 0 until IBM creates something that uses that number # y is the subchannel set ID (SSID). Most often # this is 0, but it could be non-zero # ssss is the four digit device address of the subchannel, in # hexidecimal, with leading zeros. # online = 0 to take the device offline # 1 to bring the device online # # Return codes # Return codes are determined by the chzdev command. # mesg () { echo "$@" } debug_mesg () { case "${DEBUG}" in yes) mesg "$@" ;; *) ;; esac } add_cio_channel() { echo "$* # ${DATE}" >> /boot/zipl/active_devices.txt } remove_cio_channel() { [ -w /boot/zipl/active_devices.txt ] && sed -i -e "/^${1}/d" /boot/zipl/active_devices.txt } usage(){ echo "Usage: ${0} " echo " ccwid = x.y.ssss where" echo " x is always 0 until IBM creates something that uses that number" echo " y is the subchannel set ID (SSID). Most often" echo " this is 0, but it could be non-zero" echo " ssss is the four digit device address of the subchannel, 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 DATE=$(date) CCW_CHAN_ID=${1} ON_OFF=${2} if [ -z "${CCW_CHAN_ID}" ] || [ -z "${ON_OFF}" ]; then mesg "You didn't specify all the needed parameters." usage exit 1 fi if [ "${ON_OFF}" == 0 ]; then debug_mesg "chzdev -d zfcp-host --no-root-update ${CCW_CHAN_ID}" chzdev -d zfcp-host --no-root-update ${CCW_CHAN_ID} elif [ "${ON_OFF}" == 1 ]; then debug_mesg "chzdev -e zfcp-host --no-root-update ${CCW_CHAN_ID}" chzdev -e zfcp-host --no-root-update ${CCW_CHAN_ID} else mesg "You must specify a 0 or a 1 for the online/offline attribute." usage exit 1 fi RC=${?} if [ ${RC} -ne 0 ]; then exit ${RC} fi if [ ${ON_OFF} == 1 ]; then add_cio_channel "${CCW_CHAN_ID}" else remove_cio_channel "${CCW_CHAN_ID}" fi