#!/bin/sh
. /etc/sargraph.conf
##SARGRAPH V3.0##
##addserver used to add server in to SARGRAPH inventory database##
server=$1
#Command check
if [ $# -eq 0 ]
then
echo "USAGE: addserver <servername>"
exit -1;
fi
if [ -f $SERVERSCONF ]
then
echo "Adding server......"
else
echo "Created $SERVERSCONF"
touch $SERVERSCONF 
fi

##Identify SSH 
SSH=`which ssh`
if [ "x${SSH}" = "x" ]
then
    if [ "x$silent" = "x" ]
then
     echo "SSH  not found! exiting.." 
fi
exit -1
fi


##SSH PORT SET##

if [ "x${SSH_PORT}" = "x" ]
then
SSH_PORT=22
fi

##check server in configuration

$EGREP $server $SERVERSCONF

if [ $? -eq 0 ]
then
echo "Server already Exist! exiting..."
exit -1;
fi

if [ -f $KEY ]
then
echo "$KEY exist"
else
echo "$KEY not found! Generating DSA key"
ssh-keygen -q -t dsa -N "" -f $KEY
fi

##Key push
#$SCP $KEY $SARUSER@$server:~$usr/
#base=`basename $KEY`
cat $KEY.pub|$SSH -i $KEY -p $SSH_PORT $SARUSER@$server 'mkdir .ssh;touch .ssh/authorized_keys;chmod -R 700 .ssh;cat>>.ssh/authorized_keys'

##Collect server info
$SSH -i $KEY -p $SSH_PORT $SARUSER@$server uname
if [ $? -eq 0 ]
then
echo "Server reachable"
else 
echo "Server not reachable!"
exit -1
fi
case "`$SSH -i $KEY -p $SSH_PORT $SARUSER@$server uname`" in
Linux)
OSTYP=`$SSH -i $KEY -p $SSH_PORT $SARUSER@$server uname`
OS=`$SSH -i $KEY -p $SSH_PORT $SARUSER@$server cat /etc/issue.net|head -1`
$SSH -i $KEY -p $SSH_PORT $SARUSER@$server cat /proc/meminfo > $WORKDIR/$server.meminfo
$SSH -i $KEY -p $SSH_PORT $SARUSER@$server cat /proc/cpuinfo > $WORKDIR/$server.cpuinfo
memtot=`$EGREP MemTotal $WORKDIR/$server.meminfo|sed s/"MemTotal:"//|sed s/kB//|sed -e 's/^[ \t]*//'`
swaptot=`$EGREP SwapTotal $WORKDIR/$server.meminfo|sed s/"SwapTotal:"//|sed s/kB//|sed -e 's/^[ \t]*//'`
cpu=`$EGREP "model name" $WORKDIR/$server.cpuinfo|tail -1|awk '{print $3 $4 $5 $7 $8 $9}'|sed 's/://'`
TZ=`$SSH -i $KEY -p $SSH_PORT $SARUSER@$server date|awk '{print $5}'`
;;
SunOS)
OSTYP=`$SSH -i $KEY -p $SSH_PORT $SARUSER@$server uname`
OS=`$SSH -i $KEY -p $SSH_PORT $SARUSER@$server uname -r`
HW=`$SSH -i $KEY -p $SSH_PORT $SARUSER@$server "uname -m"`
PFORM=`$SSH -i $KEY -p $SSH_PORT $SARUSER@$server uname -p`
$SSH -i $KEY -p $SSH_PORT $SARUSER@$server "/usr/platform/$HW/sbin/prtdiag -v" > $WORKDIR/$server.prtdiag
memtot=`$EGREP -i "Memory size" $WORKDIR/$server.prtdiag|awk '{print $3}'`
memtot=`echo $memtot*1024|bc`
swaptot=`$SSH -i $KEY -p $SSH_PORT $SARUSER@$server vmstat|grep -v memory|grep -v swap|awk '{print $4}'`
cpu=`$EGREP on-line $WORKDIR/$server.prtdiag|tail -1|awk '{print $2 $3 $4}'`
if [ "x${cpu}" = "x" ]
then
cpu=$PFORM
fi 
TZ=`$SSH -i $KEY -p $SSH_PORT $SARUSER@$server date|awk '{print $7}'`

;;
esac
echo "$server:$OSTYP:$OS:$memtot:$swaptot:$cpu:$TZ" >> $SERVERSCONF
echo "Collecting performance matrix.."
$ROOTDIR/scripts/updatesar.sh $server
