ibchecknode.in revision 256281
1251876Speter#!/bin/sh
2251876Speter
3251876SpeterIBPATH=${IBPATH:-@IBSCRIPTPATH@}
4251876Speter
5251876Speterfunction usage() {
6251876Speter	echo Usage: `basename $0` "[-h] [-v] [-N | -nocolor] [-G]" \
7251876Speter	    "[-C ca_name] [-P ca_port] [-t(imeout) timeout_ms] <lid|guid>"
8251876Speter	exit -1
9251876Speter}
10251876Speter
11251876Speterfunction green() {
12251876Speter	if [ "$bw" = "yes" ]; then
13251876Speter		if [ "$verbose" = "yes" ]; then
14251876Speter			echo $1
15251876Speter		fi
16251876Speter		return
17251876Speter	fi
18251876Speter	if [ "$verbose" = "yes" ]; then
19251876Speter		echo -e "\\033[1;032m" $1 "\\033[0;39m"
20251876Speter	fi
21251876Speter}
22251876Speter
23251876Speterfunction red() {
24251876Speter	if [ "$bw" = "yes" ]; then
25251876Speter		echo $1
26251876Speter		return
27251876Speter	fi
28251876Speter	echo -e "\\033[1;031m" $1 "\\033[0;39m"
29251876Speter}
30251876Speter
31251876Speterguid_addr=""
32251876Speterbw=""
33251876Speterverbose=""
34251876Speterca_info=""
35251876Speter
36251876Speterwhile [ "$1" ]; do
37251876Speter	case $1 in
38251876Speter	-G)
39251876Speter		guid_addr=yes
40251876Speter		;;
41251876Speter	-nocolor|-N)
42251876Speter		bw=yes
43251876Speter		;;
44251876Speter	-v)
45251876Speter		verbose=yes
46251876Speter		;;
47251876Speter	-P | -C | -t | -timeout)
48251876Speter		case $2 in
49251876Speter		-*)
50251876Speter			usage
51251876Speter			;;
52251876Speter		esac
53251876Speter		if [ x$2 = x ] ; then
54251876Speter			usage
55251876Speter		fi
56251876Speter		ca_info="$ca_info $1 $2"
57251876Speter		shift
58251876Speter		;;
59251876Speter	-*)
60251876Speter		usage
61251876Speter		;;
62251876Speter	*)
63251876Speter		break
64251876Speter		;;
65251876Speter	esac
66251876Speter	shift
67251876Speterdone
68251876Speter
69251876Speterif [ -z "$1" ]; then
70251876Speter	usage
71251876Speterfi
72251876Speter
73251876Speterif [ "$guid_addr" ]; then
74251876Speter	if ! lid=`$IBPATH/ibaddr $ca_info -G -L $1 | awk '/failed/{exit -1} {print $3}'`; then
75251876Speter		echo -n "guid $1 address resolution: "
76251876Speter		red "FAILED"
77251876Speter		exit -1
78251876Speter	fi
79251876Speterelse
80251876Speter	lid=$1
81251876Speter	if ! temp=`$IBPATH/ibaddr $ca_info -L $1 | awk '/failed/{exit -1} {print $1}'`; then
82251876Speter		echo -n "lid $1 address resolution: "
83251876Speter		red "FAILED"
84251876Speter		exit -1
85251876Speter	fi
86251876Speterfi
87251876Speter
88251876Speter## For now, check node only checks if node info is replied
89251876Speter
90251876Speterif $IBPATH/smpquery $ca_info nodeinfo $lid > /dev/null 2>&1 ; then
91251876Speter	if [ "$verbose" = "yes" ]; then
92251876Speter		echo -n "Node check lid $lid: "
93251876Speter		green OK
94251876Speter	fi
95251876Speter	exit 0
96251876Speterelse
97251876Speter	echo -n "Node check lid $lid: "
98251876Speter	red FAILED
99251876Speter	exit -1
100251876Speterfi
101251876Speter