]> git.samba.org - samba.git/blob - ctdb/tests/eventscripts/stubs/rpcinfo
ctdb-tests: Switch some test stubs to use /bin/sh
[samba.git] / ctdb / tests / eventscripts / stubs / rpcinfo
1 #!/bin/sh
2
3 prog="rpcinfo"
4
5 usage ()
6 {
7     cat >&2 <<EOF
8 Usage: $prog -T tcp host program [version]
9
10 A fake rpcinfo stub that succeeds for items in FAKE_RPCINFO_SERVICES,
11 depending on command-line options.
12
13 EOF
14     exit 1
15 }
16
17 parse_options ()
18 {
19         while getopts "T:h?" opt ; do
20                 case "$opt" in
21                 T) netid="$OPTARG" ;;
22                 \?|h) usage ;;
23                 esac
24         done
25         shift $((OPTIND - 1))
26
27         [ "$netid" = "tcp" ] || usage
28
29         host="$1" ; shift
30         [ "$host" = "localhost" -o "$host" = "127.0.0.1" ] || usage
31
32         [ 1 -le $# -a $# -le 2 ] || usage
33
34         p="$1"
35         v="$2"
36 }
37
38 parse_options "$@"
39
40 for i in ${FAKE_RPCINFO_SERVICES} ; do
41     # This is stupidly cummulative, but needs to happen after the
42     # initial split of the list above.
43     IFS="${IFS}:"
44     set -- $i
45     # $1 = program, $2 = low version, $3 = high version
46
47     if [ "$1" = "$p" ] ; then
48         if [ -n "$v" ] ; then
49             if [ "$2" -le "$v" -a "$v" -le "$3" ] ; then
50                 echo "program ${p} version ${v} ready and waiting"
51                 exit 0
52             else
53                 echo "rpcinfo: RPC: Program/version mismatch; low version = ${2}, high version = ${3}" >&2
54                 echo "program ${p} version ${v} is not available"
55                 exit 1
56             fi
57         else
58             for j in $(seq $2 $3) ; do
59                 echo "program ${p} version ${j} ready and waiting"
60             done
61             exit 0
62         fi
63     fi
64 done
65
66 echo "rpcinfo: RPC: Program not registered" >&2
67 if [ -n "$v" ] ; then
68     echo "program ${p} version ${v} is not available"
69 else
70     echo "program ${p} is not available"
71 fi
72
73 exit 1