We have some news to share for the request index beta feature. We’ve added more options to sort your requests, counters to the individual filters and documentation for the search functionality. Checkout the blog post for more details.

File block-npiv-vport of Package xen

#!/bin/bash

# Usage: block-npiv-vport [create npivargs | delete vportwwpn | status]

dir=$(dirname "$0")
. "$dir/block-npiv-common.sh"

#set -x
command=$1
params=$2

case "$command" in
  create)
    # Params is one big arg, with fields separated by hyphens:
    #   FABRIC-VPWWPN-VPWWNN-TGTWWPN-LUN#
    #    arg 2 - Fabric Name
    #    arg 3 - VPORT's WWPN
    #    arg 4 - VPORT's WWNN
    #    arg 5 - Target's WWPN
    #    arg 6 - LUN # on Target
    # no wwn contains a leading 0x - it is a 16 character hex value
    # You may want to optionally pick a specific adapter ?
    NPIVARGS=$params;
    LUN=${NPIVARGS##*-*-*-*-}; NPIVARGS=${NPIVARGS%-*}
    if test $LUN = $NPIVARGS ; then exit 1; fi
    TGTWWPN=${NPIVARGS##*-*-*-}; NPIVARGS=${NPIVARGS%-*}
    if test $TGTWWPN = $NPIVARGS ; then exit 1; fi
    VPORTWWNN=${NPIVARGS##*-*-}; NPIVARGS=${NPIVARGS%-*}
    if test $VPORTWWNN = $NPIVARGS ; then exit 1; fi
    VPORTWWPN=${NPIVARGS##*-}; NPIVARGS=${NPIVARGS%-*}
    if test $VPORTWWPN = $NPIVARGS ; then exit 1; fi
    FABRICNM=$NPIVARGS

    # Ensure we compare everything using lower-case hex characters
    TGTWWPN=`echo $TGTWWPN | tr A-Z a-z`
    VPORTWWPN=`echo $VPORTWWPN | tr A-Z a-z`
    VPORTWWNN=`echo $VPORTWWNN | tr A-Z a-z`
    FABRICNM=`echo $FABRICNM | tr A-Z a-z`

    find_vhost $VPORTWWPN $FABRICNM
    if test -z "$vhost" ; then
      create_vport $FABRICNM $VPORTWWPN $VPORTWWNN
      if [ $? -ne 0 ] ; then exit 2; fi
      sleep 8
      find_vhost $VPORTWWPN $FABRICNM
      if test -z "$vhost" ; then exit 3; fi
    fi

    exit 0
    ;;

  delete)
    # Params is VPORT's WWPN
    # no wwn contains a leading 0x - it is a 16 character hex value
    VPORTWWPN=$params

    # Ensure we compare everything using lower-case hex characters
    VPORTWWPN=`echo $VPORTWWPN | tr A-Z a-z`

    find_vhost $VPORTWWPN $FABRICNM
    if test -z "$vhost" ; then exit 4; fi
    delete_vhost $vhost

    exit 0
    ;;

  status)
    vport_status

    exit 0
    ;;

  *)
    echo "Usage: block-npiv-vport [create npivargs | delete vportwwpn | status]"

    exit 1
    ;;
esac

openSUSE Build Service is sponsored by