#!/bin/bash

IQN=$1
HOST=$2

if [[ -z "${IQN}" ]]; then
	echo "usage: $0 TargetIQN [Host]"
        echo ""

	exit
fi

iscsiadm -m discovery -t sendtargets -o update -p ${HOST} &> /dev/null

if [[ ! -z "${HOST}" ]]; then
	iscsiadm -m node -T ${IQN} -p ${HOST} -l
else
	iscsiadm -m node -T ${IQN} -l
fi

sleep 0.5

SESSIONID=$(iscsiadm -m session | grep "${IQN}" | head -n 1 | sed -e 's/.*\[\(.*\)\].*/\1/g')
DEVICE=$(iscsiadm -m session -r ${SESSIONID} -P 3 | grep "Attached scsi disk" | sed -e 's/.*Attached scsi disk \([^\t]*\).*/\/dev\/\1/g')
BLOCKDEVICE=${DEVICE}

MULTIPATHDEVICE=$(multipath -l ${DEVICE} | grep 'mpath' | sed -e 's/^\([a-z]*\) .*/\1/g')
if [[ ! -z "${MULTIPATHDEVICE}" ]]; then
	BLOCKDEVICE="/dev/mapper/${MULTIPATHDEVICE}"
fi

mkdir -p /mnt/iSCSI_${IQN}

FILESYSTEM=$(blkid ${BLOCKDEVICE})
if [ -z "${FILESYSTEM}" ]; then
	echo "No Filesystem found, initialize using following command:"
	echo "mkfs.ext4 ${BLOCKDEVICE}"
	echo ""
	echo "And mount afterwards using:"
	echo "mount ${BLOCKDEVICE} /mnt/iSCSI_${IQN}"
else
	mount -o discard ${BLOCKDEVICE} /mnt/iSCSI_${IQN}
fi

