#!/bin/ksh
repdir=/export/home/san/capacity/reports
tmpdir=/export/home/san/capacity/tmp
export tmpdir repdir

clear
menu() {
unset sid
print "Please select a Symm to query:"
print "	1) 3544"
print "	2) 3564"
print "	3) 3810"
print "	4) 3943"
print "	5) 3550 (Star)"
print -n "Enter 1, 2, 3, 4, 5 or q to quit: "
read input

case $input in
        1) sid=3544;;
        2) sid=3564;;
        3) sid=3810;;
        4) sid=3943;;
        5) sid=3550;;
        q) exit;;
        *) print "Invalid selection"
           menu;;
esac

outfile=${repdir}/${sid}_FA_report.txt
print Symmetrix ${sid} > ${outfile}

createfiles
}

createfiles() {

pbrun symdev -sid ${sid} list > ${tmpdir}/${sid}_devlist.txt

pbrun symcfg -sid ${sid} list -FA ALL | grep FA- | awk '{print $1}'|sort -u > ${tmpdir}/${sid}_dirport.txt

queryport
}

queryport () {
typeset -i count=0
for fa in `cat ${tmpdir}/${sid}_dirport.txt`
do
count=count+1
echo ${count}
dir=`echo ${fa}| cut -d"-" -f2`
port=0
pbrun symmaskdb -sid ${sid} -dir ${dir} -p ${port} list no_assignment| sort -u | grep -v Symmetrix | grep -v Director | grep -v assigned > ${tmpdir}/${sid}_${dir}${port}_noassign.txt
countdevs

count=count+1
echo ${count}
port=1
pbrun symmaskdb -sid ${sid} -dir ${dir} -p ${port} list no_assignment| sort -u | grep -v Symmetrix | grep -v Director | grep -v assigned > ${tmpdir}/${sid}_${dir}${port}_noassign.txt

countdevs

done

freepool
}

freepool () {
dir=free
port=pool
fa="Free "

pbrun symdev -sid ${sid} -noport list | grep ? | grep -iv bcv | cut -c2-4 > ${tmpdir}/${sid}_${dir}${port}_noassign.txt

countdevs
}


countdevs () {
if [ ${sid} -eq 3544 -o ${sid} -eq 3810 -o ${sid} -eq 3550 ]
then
        typeset -i CapT3=0
        typeset -i CapT4=0
        typeset -i NumT3=0
        typeset -i NumT4=0
        typeset -i NumMetaT3=0
        typeset -i NumMetaT4=0
        typeset -i b=0
        for x in `cat ${tmpdir}/${sid}_${dir}${port}_noassign.txt | sed -e s/^M//`
        do
        if [ ! -z `grep ^0${x} ${tmpdir}/${sid}_devlist.txt` ]
        then
                grep ^0${x} ${tmpdir}/${sid}_devlist.txt |awk '{print $6,$NF}'|read a b
                if [ ${b} -eq 3 -o ${b} -eq 734 ]
                then
                        continue
                else
                        if [ ${b} -gt 34526 ]
                        then
                                NumMetaT3=NumMetaT3+1
                        fi
                CapT3=CapT3+b
                NumT3=NumT3+1
                fi
        fi
        done
        CapT3=CapT3/1024
        buildreport
elif [ ${sid} -eq  3564 -o ${sid} -eq 3943 ]
then

        typeset -i CapT3=0
        typeset -i CapT4=0
        typeset -i NumT3=0
        typeset -i NumT4=0
        typeset -i NumMetaT3=0
        typeset -i NumMetaT4=0
        typeset -i b=0

        for x in `cat ${tmpdir}/${sid}_${dir}${port}_noassign.txt | sed -e s/^M//`
        do
        if [ ! -z `grep ^0${x} ${tmpdir}/${sid}_devlist.txt` ]
        then
                grep ^0${x} ${tmpdir}/${sid}_devlist.txt |awk '{print $6,$NF}'|read a b
                if [ ${b} -eq 3 -o ${b} -eq 734 ]
                then
                        continue
                else
                        if [ ${b} -gt 34526 ]
                        then
                                NumMetaT4=NumMetaT4+1
                        fi
                CapT4=CapT4+b
                NumT4=NumT4+1
                fi

        fi
        done
        CapT3=CapT3/1024
        CapT4=CapT4/1024
        buildreport
fi
}

buildreport () {
if [ ${NumT3} -ne 0 ]
then
        echo ${fa}${port} has ${NumT3} free Tier3 devs with a total capacity of ${CapT3} GB >> ${outfile}
fi

if [ ${NumMetaT3} -ne 0 ]
then
        echo ${fa}${port} has ${NumMetaT3} unassigned Tier3 metas >> ${outfile}
fi

if [ ${NumT4} -ne 0 ]
then
        echo ${fa}${port} has ${NumT4} free Tier4 devs with a total capacity of ${CapT4} GB >> ${outfile}
fi

if [ ${NumMetaT4} -ne 0 ]
then
        echo ${fa}${port} has ${NumMetaT4} unassigned Tier4 metas >> ${outfile}
fi

if [ ${NumT3} -ne 0 -o ${NumT4} -ne 0 ]
then
        echo >> ${outfile}
fi
}

menu
clear
print FA Report is ${outfile}
print

# Cleanup temp files
rm ${tmpdir}/${sid}*.txt
