#!/sbin/sh -
# $Id: vxasldebug.sh,v 1.1.45.6 2002/10/28 05:20:00 hhorn Exp $
#ident	"@(#)vxvm:$Source: /project/unixvm-cvs/src/sol/cmd/vxvm/support/vxasldebug.sh,v $"

# Copyright (c) 2002 VERITAS Software Corporation.  ALL RIGHTS RESERVED.
# UNPUBLISHED -- RIGHTS RESERVED UNDER THE COPYRIGHT
# LAWS OF THE UNITED STATES.  USE OF A COPYRIGHT NOTICE
# IS PRECAUTIONARY ONLY AND DOES NOT IMPLY PUBLICATION
# OR DISCLOSURE.
# 
# THIS SOFTWARE CONTAINS CONFIDENTIAL INFORMATION AND
# TRADE SECRETS OF VERITAS SOFTWARE.  USE, DISCLOSURE,
# OR REPRODUCTION IS PROHIBITED WITHOUT THE PRIOR
# EXPRESS WRITTEN PERMISSION OF VERITAS SOFTWARE.
# 
#               RESTRICTED RIGHTS LEGEND
# USE, DUPLICATION, OR DISCLOSURE BY THE GOVERNMENT IS
# SUBJECT TO RESTRICTIONS AS SET FORTH IN SUBPARAGRAPH
# (C) (1) (ii) OF THE RIGHTS IN TECHNICAL DATA AND
# COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013.
#               VERITAS SOFTWARE
# 1600 PLYMOUTH STREET, MOUNTAIN VIEW, CA 94043

VXDIAGDIR=/etc/vx/diag.d
VXASLLIBDIR=/etc/vx/lib
VXASLKEYDIR=/etc/vx/aslkey.d
VXBINDIR=/usr/lib/vxvm/bin
OSVERSION=`uname -r`
ARCHDIR=

if [ "X$OSVERSION" = "X5.7" ]
then
	if /bin/isainfo | grep sparcv9 >/dev/null 2>&1
	then
		ARCHDIR=sparcv9
	fi
fi

ADB=/usr/bin/$ARCHDIR/adb
VXDMPMDIR=$VXDIAGDIR/macros.d/$ARCHDIR
DATE=`date '+%m%d%H'``date '+%M'``date '+%S'`
HOST=`/usr/bin/uname -n`
HOST=`/usr/bin/expr "$HOST" : '^\([^.]*\)'`
DESTBASE=/tmp
ASLDEBUGDIR=asldebug
DESTDIR=$DESTBASE/$ASLDEBUGDIR
OUTFILE=$DESTDIR/$HOST.info.$DATE.$$.log
DEVWALK=$DESTDIR/$HOST.devwalk.$DATE.$$.log
TARFILE=$DESTBASE/$HOST.aslconf.$DATE.$$.tar
ASLLIB=$DESTDIR/lib
ASLKEY=$DESTDIR/aslkey.d

login_id=`id |  cut -f2 -d "(" | cut -f1 -d")"`
if [ "$login_id" != "root" ]
then
	echo "\nvxvm: vxasldebug: ERROR: must be super-user to execute."
	exit 1
fi

rm -rf $OUTFILE > /dev/null
rm  -rf $ASLLIB > /dev/null
rm  -rf $ASLKEY > /dev/null

mkdir -p $ASLLIB > /dev/null
mkdir -p $ASLKEY > /dev/null
		
OS=`uname -s`
DATE=`date +%m/%d/%y`
echo "			=======================" >> $OUTFILE
uname -a >> $OUTFILE
echo "			VxVM System Information" >> $OUTFILE
echo "			       $DATE" >> $OUTFILE
echo "			=======================" >> $OUTFILE
echo "=============================================================" >> $OUTFILE
if [ "$OS" = "HP-UX" ]
then
	swlist VRTS*
        ioscan -kfnC disk >> $OUTFILE
fi
if [ "$OS" = "SunOS" ]
then
	pkginfo -l VRTSvxvm >> $OUTFILE
fi

echo "output of vxddladm listsupport all ...\c"
echo "output of vxddladm listsupport all" >> $OUTFILE
echo "-------------------------------------" >> $OUTFILE
echo >> $OUTFILE
/usr/sbin/vxddladm listsupport all >> $OUTFILE 2>&1
echo >> $OUTFILE
echo >> $OUTFILE
echo "done"

echo "output of vxddladm listversion ...\c"
echo "output of vxddladm listversion " >> $OUTFILE
echo "-------------------------------------" >> $OUTFILE
echo >> $OUTFILE
/usr/sbin/vxddladm listversion >> $OUTFILE 2>&1
echo >> $OUTFILE
echo >> $OUTFILE
echo "done"

echo "output of vxddladm listjbod ...\c"
echo "output of vxddladm listjbod" >> $OUTFILE
echo "-------------------------------------" >> $OUTFILE
echo >> $OUTFILE
/usr/sbin/vxddladm listjbod >> $OUTFILE 2>&1
echo >> $OUTFILE
echo >> $OUTFILE
echo "done"

echo "output of vxdmpadm listenclosure all ...\c"
echo "output of vxdmpadm listenclosure all" >> $OUTFILE
echo "-------------------------------------" >> $OUTFILE
echo >> $OUTFILE
/usr/sbin/vxdmpadm listenclosure all >> $OUTFILE 2>&1
echo >> $OUTFILE
echo >> $OUTFILE
echo "done"

echo "output of vxdmpadm getctlr all ...\c"
echo "output of vxdmpadm getctlr all" >> $OUTFILE
echo "-------------------------------------" >> $OUTFILE
echo >> $OUTFILE
/usr/sbin/vxdmpadm getctlr all >> $OUTFILE 2>&1
echo >> $OUTFILE
echo >> $OUTFILE
echo "done"

echo "output of vxdmpadm listctlr all ...\c"
echo "output of vxdmpadm listctlr all" >> $OUTFILE
echo "-------------------------------------" >> $OUTFILE
echo >> $OUTFILE
/usr/sbin/vxdmpadm listctlr all >> $OUTFILE 2>&1
echo >> $OUTFILE
echo >> $OUTFILE

for i in `/usr/sbin/vxdmpadm listctlr all | /usr/bin/awk '{ print $1 }'`
do
	[ "$i" = "CTLR-NAME" ] && continue
	[ "$i" = "ctlr" ] && continue
	[ "$i" = "=====================================================" ] && continue
	echo "output of vxdmpadm getsubpaths ctlr=$i" >> $OUTFILE
	echo "-------------------------------------" >> $OUTFILE
	echo >> $OUTFILE
	/usr/sbin/vxdmpadm getsubpaths ctlr=$i >> $OUTFILE 2> /dev/null
	if [ $? -eq 0 ]
	then
		echo >> $OUTFILE
	fi
done
echo >> $OUTFILE
echo >> $OUTFILE
echo "done"

echo "vxdisk list ...\c"
echo "vxdisk list " >> $OUTFILE
echo "----------------------------------------------------------" >> $OUTFILE
echo >> $OUTFILE
/usr/sbin/vxdisk list >> $OUTFILE 2>&1
echo >> $OUTFILE
echo >> $OUTFILE

echo "per device vxdisk list" >> $OUTFILE
echo "----------------------------------------------------------" >> $OUTFILE
echo >> $OUTFILE
for i in `/usr/sbin/vxdisk list | /usr/bin/awk '{ print $1 }'`
do
	[ "$i" = "DEVICE" ] && continue
	[ "$i" = "-" ] && continue
	/usr/sbin/vxdisk list $i >> $OUTFILE 2>&1
	echo >> $OUTFILE
done
echo >> $OUTFILE

echo "per device path state" >> $OUTFILE
echo "----------------------------------------------------------" >> $OUTFILE
echo >> $OUTFILE
for i in `/usr/sbin/vxdisk list | /usr/bin/awk '{ print $1 }'`
do
	[ "$i" = "DEVICE" ] && continue
	[ "$i" = "-" ] && continue
	echo "================= $i =================================" >> $OUTFILE
	/usr/sbin/vxdisk list $i | grep "state=" >> $OUTFILE 2>&1
	echo >> $OUTFILE
done
echo "done"
echo >> $OUTFILE

echo "Inquiry commands ...\c" 
echo "scsi inquiry command outputs" >> $OUTFILE
echo "----------------------------------------------------------" >> $OUTFILE
echo >> $OUTFILE
for i in `ls /dev/rdsk/*s2`
do
	$VXDIAGDIR/vxdmpinq -d $i >> $OUTFILE 2>/dev/null 
	$VXDIAGDIR/vxdmpinq -d -e 1 -p 128 $i >> $OUTFILE 2>/dev/null 
	$VXDIAGDIR/vxdmpinq -d -e 1 -p 131 $i >> $OUTFILE 2>/dev/null 
	echo >> $OUTFILE
done 
echo "done"
echo >> $OUTFILE
	
echo "check ASL library ...\c" 
echo "checking ASL library outputs" >> $OUTFILE
echo "----------------------------------------------------------" >> $OUTFILE
echo >> $OUTFILE
for i in `ls /etc/vx/lib/discovery.d/`
do
	echo "**********************************************************" >> $OUTFILE
	echo "                   $i                                     " >> $OUTFILE
	echo "**********************************************************" >> $OUTFILE
	echo >> $OUTFILE
	$VXDIAGDIR/vxcheckasl $i `ls /dev/rdsk/*s2 | awk '{ print $1 }'` >> $OUTFILE 2>/dev/null
	echo >> $OUTFILE
done 
echo "done"
echo >> $OUTFILE

echo "Device Walk ...\c" 
echo "Device Walk " > $DEVWALK
echo "----------------------------------------------------------" >> $DEVWALK
echo >> $DEVWALK
$VXDIAGDIR/vxdevwalk >> $DEVWALK 
echo >> $OUTFILE
echo "done"

echo "Coping ASL files ...\c" 
cp -rp $VXASLLIBDIR/* $ASLLIB
cp -rp $VXASLKEYDIR/* $ASLKEY
echo "done"

echo "Creating $TARFILE ...\c"
CPATH=`pwd`
cd $DESTBASE
tar -cvf $TARFILE $ASLDEBUGDIR 1> /dev/null
rm  -rf $ASLDEBUGDIR
cd $CPATH
echo "done"

echo " "
echo "----------------------------------------------------------" 
echo " "
echo "Please forward file : $TARFILE to Veritas"
echo " "
echo "----------------------------------------------------------" 
exit 0
