]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - contrib/ofed/management/infiniband-diags/scripts/ibchecknode.in
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / contrib / ofed / management / infiniband-diags / scripts / ibchecknode.in
1 #!/bin/sh
2
3 IBPATH=${IBPATH:-@IBSCRIPTPATH@}
4
5 function 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
11 function 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
23 function 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
31 guid_addr=""
32 bw=""
33 verbose=""
34 ca_info=""
35
36 while [ "$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
67 done
68
69 if [ -z "$1" ]; then
70         usage
71 fi
72
73 if [ "$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
79 else
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
86 fi
87
88 ## For now, check node only checks if node info is replied
89
90 if $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
96 else
97         echo -n "Node check lid $lid: "
98         red FAILED
99         exit -1
100 fi