
#!/bin/sh
# File	cdot_test_interfaces.sh
# By	: Maarten.deBoer@Atos.net, 221206, 231009
# Subject	: Script to test interfaces
PGM=`basename $0|cut -d\. -f1`
VER="0.1"
LOG="${HOME}/log/${PGM}.log"
SSH="/usr/bin/ssh -n"
DATI=`date +%Y-%m-%d-%H-%M-%S`

VSERVER_PREFIX="nlnafs"

PINGDEST=""
DEST_CLUSTER=""

CLUSTER="nlnaf101"
LIF_SEL="uod01-tst"
NODE_SEL="\-1[56]" 
LOG="${HOME}/log/${PGM}_${CLUSTER}_${DATI}.log"
ERR="${HOME}/log/${PGM}_${CLUSTER}_${DATI}.err"


echo "`date` ${PGM} v${VER} started."|tee -a ${LOG}
echo "  CLUSTER=${CLUSTER} LIF_SEL=${LIF_SEL}"|tee -a ${LOG}
sleep 1

${SSH} ${CLUSTER} "set -showseparator \";\" ;network interface show -vserver * -lif ${LIF_SEL} -field vserver,lif,curr-port,address" |grep -E "${LIF_SEL}"| while read LINE1
do
  VSERVER=`echo ${LINE1}|awk -F\; '{print $1}'`
  LIF=`echo ${LINE1}|awk -F\; '{print $3}'`
  ADDRESS=`echo ${LINE1}|awk -F\; '{print $5}'`
  VLAN=`echo ${LINE1}|awk -F\; '{print $6}'|cut -d\- -f2`

  echo "    VSERVER=${VSERVER} LIF=${LIF} VLAN=${VLAN}"|tee -a ${LOG}
  
  ${SSH} ${CLUSTER} "set -showseparator \";\" ; network port show -vlan-tag ${VLAN} -field node,port,vlan-tag"|grep ${CLUSTER}|grep -E "${NODE_SEL}"|while read LINE2
  do
    NODE=`echo ${LINE2}|awk -F\; '{print $1}'`
    PORT=`echo ${LINE2}|awk -F\; '{print $2}'`

    ${SSH} ${CLUSTER} "network interface migrate -vserver ${VSERVER} -lif ${LIF} -destination-node ${NODE} -destination-port ${PORT}"

    ${SSH} ${CLUSTER} "network interface show -vserver ${VSERVER} -lif ${LIF} -field curr-node,curr-port,vserver,lif"

    if [ "${CLUSTER}" = "nlnaf100" ]; then
      DEST_CLUSTER="nlnaf101"
    fi
    if [ "${CLUSTER}" = "nlnaf101" ]; then
      DEST_CLUSTER="nlnaf100"
    fi



    if [ "${DEST_CLUSTER}" != "" ]; then
      PINGDEST=`${SSH} ${DEST_CLUSTER} "set -showseparator \";\" ;network interface show -vserver * -curr-port *${VLAN}  -field address,curr-node"|grep ${DEST_CLUSTER}|awk -F\; '{print $5}'|head -1`
      DESTHOST=`${SSH} ${DEST_CLUSTER} "network interface show -address ${PINGDEST} -field vserver,lif"| grep ${VSERVER_PREFIX}`
    fi  # PINGDEST
    echo "      ADDRESS=${ADDRESS} -> PINGDEST=${PINGDEST} (${DESTHOST})"

    if [ "${PINGDEST}" != "" ]; then
      ${SSH} ${CLUSTER} "ping -destination ${PINGDEST} -vserver ${VSERVER} -lif ${LIF}"
      EC=${?}
      if [ ${EC} -eq 0 ]; then
        EC_STR="OK"
      else
        EC_STR="NOT ok"
        echo "  PING of LIF=${LIF} (${ADDRESS}) from VSERVER=${VSERVER} via NODE=${NODE} PORT=${PORT} to ${PINGDEST} (${DESTHOST}) = ${EC_STR} (${EC})"|tee -a ${ERR}
      fi  # EC
      echo "  PING of LIF=${LIF} (${ADDRESS}) from VSERVER=${VSERVER} via NODE=${NODE} PORT=${PORT} to ${PINGDEST} = ${EC_STR} (${EC})"|tee -a ${LOG}
    fi  # PINGDEST <> ""

  done  #LINE2
done  # LINE1

if [ -s ${ERR} ]; then
  echo "  ERRor log in ${ERR}"
fi  # ERR
echo "  LOGing in ${LOG}"
  
echo "`date` ${PGM} v${VER} finished."|tee -a ${LOG}
exit 0

