retire da-backup checks
[mirror/dsa-nagios.git] / dsa-nagios-checks / checks / dsa-check-mq-connection
1 #!/bin/bash
2
3 # Copyright 2014 Stephen Gran <sgran@debian.org>
4 #
5 # Permission is hereby granted, free of charge, to any person obtaining
6 # a copy of this software and associated documentation files (the
7 # "Software"), to deal in the Software without restriction, including
8 # without limitation the rights to use, copy, modify, merge, publish,
9 # distribute, sublicense, and/or sell copies of the Software, and to
10 # permit persons to whom the Software is furnished to do so, subject to
11 # the following conditions:
12 #
13 # The above copyright notice and this permission notice shall be
14 # included in all copies or substantial portions of the Software.
15 #
16 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17 # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18 # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19 # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20 # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21 # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
24 usage(){
25         ret=$1
26         if [ $ret -gt 0 ]; then
27                 echo "Usage: $0 <hostname> <prefix> [<vhost>]" >&2
28         else
29                 echo "Usage: $0 <hostname> <prefix> [<vhost>]"
30         fi
31         exit $ret
32 }
33
34 host=$1
35 prefix=$2
36 vhost=$3
37
38 if [ -z "$host" ] || [ "$host" = "-h" ] ||  [ "$host" = "--help" ]; then
39         usage 3
40 fi
41
42 if [ -z "$prefix" ] || [ "$prefix" = "-h" ] ||  [ "$prefix" = "--help" ]; then
43         usage 3
44 fi
45
46 if [ -z "$vhost" ]; then
47         vhost=dsa
48 fi
49
50 if [ "$vhost" = "-h" ] ||  [ "$vhost" = "--help" ]; then
51         usage 3
52 fi
53
54 if [ "${host/[^a-z0-9-]/}" != "$host" ]; then
55         echo >&2 "$0: Invalid hostname $1"
56         exit 3
57 fi
58
59 if [ "${prefix/[^a-z0-9-]/}" != "$prefix" ]; then
60         echo >&2 "$0: Invalid prefix $2"
61         exit 3
62 fi
63
64 check_output() {
65         found=0
66         while read name messages consumers; do
67                 found=1
68                 if [ "${name}" != "${prefix}-${host}.debian.org" ]; then
69                         echo "Unexpected output: ${name} ${messages} ${consumers}"
70                         return 3
71                 fi
72                 if [ "${messages}" -gt 0 ] ; then
73                         if [ "${consumers}" -eq 0 ]; then
74                                 echo "${host} not connected to MQ"
75                                 return 2
76                         fi
77                 fi
78                 return 0
79         done
80         if [ $found = 0 ]; then
81                 return 2
82         fi
83 }
84
85 check_conn () {
86         sudo -u rabbitmq rabbitmqctl list_queues -p ${vhost} name messages consumers \
87                 | grep "${prefix}-${host}.debian.org" \
88                 | check_output
89         ret=$?
90         if [ $ret != 0 ]; then
91                 echo "${host} not connected to MQ"
92                 return 2
93         fi
94         return 0
95 }
96 check_conn
97 ret=$?
98 if [ $ret -eq 0 ]; then
99         echo "${host} connected to ${prefix}-${host}.debian.org in ${vhost}"
100 fi
101 exit $ret