138494Sobrien#!/bin/sh
238494Sobrien
338494SobrienIBPATH=${IBPATH:-@IBSCRIPTPATH@}
438494Sobrien
538494Sobrienfunction usage() {
638494Sobrien	echo Usage: `basename $0` "[-h] [-v] [-N | -nocolor] [-G]" \
738494Sobrien	    "[-C ca_name] [-P ca_port] [-t(imeout) timeout_ms] <lid|guid>"
838494Sobrien	exit -1
938494Sobrien}
1038494Sobrien
1138494Sobrienfunction green() {
1238494Sobrien	if [ "$bw" = "yes" ]; then
1338494Sobrien		if [ "$verbose" = "yes" ]; then
1438494Sobrien			echo $1
1538494Sobrien		fi
1638494Sobrien		return
1738494Sobrien	fi
1838494Sobrien	if [ "$verbose" = "yes" ]; then
1938494Sobrien		echo -e "\\033[1;032m" $1 "\\033[0;39m"
2042629Sobrien	fi
2138494Sobrien}
2238494Sobrien
2338494Sobrienfunction red() {
2438494Sobrien	if [ "$bw" = "yes" ]; then
2538494Sobrien		echo $1
2638494Sobrien		return
2738494Sobrien	fi
2838494Sobrien	echo -e "\\033[1;031m" $1 "\\033[0;39m"
2938494Sobrien}
3038494Sobrien
3138494Sobrienguid_addr=""
3238494Sobrienbw=""
3338494Sobrienverbose=""
3438494Sobrienca_info=""
3538494Sobrien
3638494Sobrienwhile [ "$1" ]; do
3738494Sobrien	case $1 in
3838494Sobrien	-G)
3938494Sobrien		guid_addr=yes
4038494Sobrien		;;
4142629Sobrien	-nocolor|-N)
4238494Sobrien		bw=yes
4338494Sobrien		;;
4438494Sobrien	-v)
4538494Sobrien		verbose=yes
4638494Sobrien		;;
4738494Sobrien	-P | -C | -t | -timeout)
4838494Sobrien		case $2 in
4938494Sobrien		-*)
5038494Sobrien			usage
5138494Sobrien			;;
5238494Sobrien		esac
5338494Sobrien		if [ x$2 = x ] ; then
5438494Sobrien			usage
5538494Sobrien		fi
5638494Sobrien		ca_info="$ca_info $1 $2"
5738494Sobrien		shift
5838494Sobrien		;;
5938494Sobrien	-*)
6038494Sobrien		usage
6138494Sobrien		;;
6238494Sobrien	*)
6338494Sobrien		break
6438494Sobrien		;;
6538494Sobrien	esac
6638494Sobrien	shift
6738494Sobriendone
6838494Sobrien
6938494Sobrienif [ -z "$1" ]; then
7038494Sobrien	usage
7138494Sobrienfi
7238494Sobrien
7338494Sobrienif [ "$guid_addr" ]; then
7438494Sobrien	if ! lid=`$IBPATH/ibaddr $ca_info -G -L $1 | awk '/failed/{exit -1} {print $3}'`; then
7538494Sobrien		echo -n "guid $1 address resolution: "
7638494Sobrien		red "FAILED"
7738494Sobrien		exit -1
7838494Sobrien	fi
7938494Sobrienelse
8038494Sobrien	lid=$1
8138494Sobrien	if ! temp=`$IBPATH/ibaddr $ca_info -L $1 | awk '/failed/{exit -1} {print $1}'`; then
8238494Sobrien		echo -n "lid $1 address resolution: "
8338494Sobrien		red "FAILED"
8438494Sobrien		exit -1
8538494Sobrien	fi
8638494Sobrienfi
8738494Sobrien
8838494Sobrien## For now, check node only checks if node info is replied
8938494Sobrien
9038494Sobrienif $IBPATH/smpquery $ca_info nodeinfo $lid > /dev/null 2>&1 ; then
9138494Sobrien	if [ "$verbose" = "yes" ]; then
9238494Sobrien		echo -n "Node check lid $lid: "
9338494Sobrien		green OK
9438494Sobrien	fi
9538494Sobrien	exit 0
9638494Sobrienelse
97	echo -n "Node check lid $lid: "
98	red FAILED
99	exit -1
100fi
101