
#!/bin/sh
# File	: cdot_get-port-overview.sh
# By	: Maarten.deBoer@atos.net, 170102
# Subject	: Script to get port-overview
PGM="`basename $0|cut -d\. -f1`"
VER="0.1"
TMP="/tmp/${PGM}.$$.csv"
LOG="${HOME}/log/${PGM}.log"
SSH="/usr/bin/ssh -n"
MAILTO="maarten.deboer@atos.net"

FILE="/tmp/${PGM}.show"

CLUSTERS="${HOME}/etc/clusters"

echo "`date` ${PGM}. v${VER} started"|tee -a ${LOG}
touch ${TMP}

if [ ! -f ${FILE} ]; then
  echo "  Getting info ..."
  for CLUSTER in `cat ${CLUSTERS}|grep -v ^#|awk '{print $1}'`
  do
    echo "${CLUSTER} ..."
    ${SSH} ${CLUSTER}  "set -showseparator \";\" ; set -delimiter; ;network port show -fields node,port,link,type,ifgrp-node,ifgrp-port,vlan-node,vlan-port,vlan-tag,broadcast-domain" >> ${FILE}
  done  # CLUSTERS
fi  # FILE

#cat ${FILE}

echo "  Analyzing ..."

# ${FILE}
# node        port  link type     ifgrp-node ifgrp-port vlan-node vlan-port vlan-tag broadcast-domain


echo "# CLUSTER; NODE; PORT; LINK; IFGRP; VLANs; BDOMAIN;" > ${TMP}

for CLUSTER in `cat ${CLUSTERS}|grep -v ^#|awk '{print $1}'`
do
  grep ${CLUSTER} ${FILE}|awk -F\; '{print $1}'|sort -u|while read NODE REST
  do
    grep ${NODE} ${FILE}|grep physical|while read LINE
    do
      PORT="`echo ${LINE}|awk -F\; '{print $2}'`"
      LINK="`echo ${LINE}|awk -F\; '{print $3}'`"
      TYPE="`echo ${LINE}|awk -F\; '{print $4}'`"
      IFGRP="`echo ${LINE}|awk -F\; '{print $6}'`"
      BDOMAIN="`echo ${LINE}|awk -F\; '{print $10}'`"
#      echo "${CLUSTER};${NODE};${PORT};${IFGRP};"
      if [ "${IFGRP}" != "-" ]; then
        VLANS="`grep ${NODE} ${FILE}|grep vlan|grep ${IFGRP}|awk -F\; '{print $9}'`"
        VLANS2="`echo ${VLANS} |awk 'BEGIN {RS=""}; {; t=0; while (++t<=NF) {printf "%s ", $t}; printf "\n"; }'file `"

        echo "${CLUSTER};${NODE};${PORT};;${IFGRP};${VLANS2};${BDOMAIN};"|tee -a ${TMP}
      else  # IFGRP
        if [ "${LINK}" = "up" ]; then
          echo "${CLUSTER};${NODE};${PORT};${TYPE};;;${BDOMAIN};"|tee -a ${TMP}
        fi  # LINK
      fi  #  IFGRP
    done  # PORT
  done  # NODE
done  # CLUSTER

date | mailx -a ${TMP} -s "cDOT; IfGrp + VLANs overview [${PGM} v${VER}]" ${MAILTO}

rm ${TMP}
#rm ${FILE}
exit 0

