1#!/bin/sh
2
3IBPATH=${IBPATH:-@IBSCRIPTPATH@}
4
5function usage() {
6	echo Usage: `basename $0` "[-h] [-v] [-N | -nocolor] [-G]" \
7	    "[-C ca_name] [-P ca_port] [-t(imeout) timeout_ms] <lid|guid>"
8	exit -1
9}
10
11function green() {
12	if [ "$bw" = "yes" ]; then
13		if [ "$verbose" = "yes" ]; then
14			echo $1
15		fi
16		return
17	fi
18	if [ "$verbose" = "yes" ]; then
19		echo -e "\\033[1;032m" $1 "\\033[0;39m"
20	fi
21}
22
23function red() {
24	if [ "$bw" = "yes" ]; then
25		echo $1
26		return
27	fi
28	echo -e "\\033[1;031m" $1 "\\033[0;39m"
29}
30
31guid_addr=""
32bw=""
33verbose=""
34ca_info=""
35
36while [ "$1" ]; do
37	case $1 in
38	-G)
39		guid_addr=yes
40		;;
41	-nocolor|-N)
42		bw=yes
43		;;
44	-v)
45		verbose=yes
46		;;
47	-P | -C | -t | -timeout)
48		case $2 in
49		-*)
50			usage
51			;;
52		esac
53		if [ x$2 = x ] ; then
54			usage
55		fi
56		ca_info="$ca_info $1 $2"
57		shift
58		;;
59	-*)
60		usage
61		;;
62	*)
63		break
64		;;
65	esac
66	shift
67done
68
69if [ -z "$1" ]; then
70	usage
71fi
72
73if [ "$guid_addr" ]; then
74	if ! lid=`$IBPATH/ibaddr $ca_info -G -L $1 | awk '/failed/{exit -1} {print $3}'`; then
75		echo -n "guid $1 address resolution: "
76		red "FAILED"
77		exit -1
78	fi
79else
80	lid=$1
81	if ! temp=`$IBPATH/ibaddr $ca_info -L $1 | awk '/failed/{exit -1} {print $1}'`; then
82		echo -n "lid $1 address resolution: "
83		red "FAILED"
84		exit -1
85	fi
86fi
87
88## For now, check node only checks if node info is replied
89
90if $IBPATH/smpquery $ca_info nodeinfo $lid > /dev/null 2>&1 ; then
91	if [ "$verbose" = "yes" ]; then
92		echo -n "Node check lid $lid: "
93		green OK
94	fi
95	exit 0
96else
97	echo -n "Node check lid $lid: "
98	red FAILED
99	exit -1
100fi
101