#!/usr/bin/bash

# multipath refresh devices on restart and reload

# Add this to /etc/sysconfig/multipatd
# if [ "$1" = "restart" -o "$1" = "reload" ]; then
#   /usr/bin/salpack-scsi-rescan
# fi

if [ "$1" = "-f" ]; then
  added_names=scan
fi

echo "Refreshing multipath devices ..."
sys=/sys/class/scsi_host
for host in `ls -1 $sys/`; do
  if [ -f $sys/$host/scan ]; then
    for name in model_name board_name $added_names; do
      if [ -f $sys/$host/$name ]; then
        name="`cat $sys/$host/$name`"
        if [ -f /sys/class/fc_host/$host/port_name ]; then
          wwn="`cat /sys/class/fc_host/$host/port_name`"
        else
          wwn=""
        fi
        echo "  $host ... $name [$wwn]"
        echo "- - -" > $sys/$host/scan
      fi
    done
  fi
done

sleep 1s

echo "Restarting multipath daemon ..."
systemctl restart multipathd.service
